Pull to refresh

Comments 134

«Возможно, эти особенности передачи по радиоканалу связаны с уже большой загруженностью диапазона 2.4 ГГц и конкурентным доступом устройств, работающих на одном частотном канале.»
Я не претендую на истину в последней инстанции, но подозреваю что сие как-то связано с параметром Maximum Transmission Unit (MTU) и, как следствие, Preamble type (преамбулу можно попробовать поставить short).

Cмущает что даже мелкие пакеты в 130 байт фрагментируются. Это как-то слишком уж. Возможно дело в MIMO, тогда исправить это увы, никак не получится, разве что открутить у роутера все антенны, оставив одну. Хотя я думаю, что роутер должен это всё автоматом сшивать в один пакет, прозрачно для потребителя, но возможно я просто плохо представляю себе алгоритмы передачи.

По теме: устройство прикольное. Вам бы сделать верхнюю крышку сплошной из оргстекла, чтобы всё это аккуратно и «гиково» смотрелось, а датчики разместить уже по бокам. Жаль что тяжело это будет адаптировать к продаже, ибо дорого получится слишком, а идея интересная вообще-то.
Когда я отлаживал программу приема, то установил такие факты:

1. фрагментируется только при передаче по радио. по кабелю фрагментации нет.
2. количество фрагментов случайно. меняется от 3-х до 5-ти
3. эффект наблюдается для любой пары радиоустройств из набора Зайцел Кинетикс, ml3020, ml702 и hlkrm04

ПОэтому я сделал вывод про особенности передачи по радио.

ПОначалу я тоже думал, что канал передачи — как труба, сюда положил — туда приехало в неизменном виде. Оказалось — не так.
А какой протокол передачи используется? TCP/UDP? Ведь могут проявится идругие неочевидные вещи… например если пакет какой-то потеряется.
Протокол TCP\IP

Если пакеты теряются — то в дело вступает обработка в Visual Basic программе.
Строка анализируется на формальную допустимость, неправильный пишутся в лог, правильные уходят в обработку.
UFO just landed and posted this here
UFO just landed and posted this here
«их есть у меня» :)
О радиометре с Wi-Fi и Глонасс\GPS см. статью тут.

Фонит, да. вплотную — около 200 мкр
Поэтому живет в закрытой металлической банке.
Возможно, просмотрел в тексте, но во сколько получилась итоговая стоимость устройства?

P.S. Страница продолжения «не найдена»
Продолжение будет в понедельник :)

Суммарную стоимость не считал. Навскидку около 200 долл.

К30 — 65 долл
MQ — шесть штук по 6 долл — 36 долл
Ардуино Нано — 10 долл
плата с датчиками давления и пр. — 30 долл
корпус — около 1000 руб
Рассыпуха типа разъемов и пр. — ну пусть 1000 р.

Эхх, К30 уже по 85 долларов давно, а 65 были золотой ценой для него, особенно учитывая доллар в те давние времена(
А девайс отличный! Может стоит отверстия затянуть каким-нибудь чулком от пыли?
Девайс, согласен, великолепный.

Жалею, что только два купил по 65$ :)

Думаю, нет смысла в дополнительной защите. У К30 измерительная камера закрыта тканью.
можете сделать его герметичным, оставив на воздухе только необходимые датчики.
нет смысла. Куб активно использует воздушное охлаждение.
Жаль, полупромышленный образец(индивидуальный) мог бы очень пригодится в разных областях.
У меня есть мысли по переделке. Почти годичный опыт эксплуатации БК дает почву для изменений.
Но даже и в таком виде он полезен. Друзья\знакомые используют.
Можете попробовать сделать его модульным- основа одна, а вот нужные датчики человек выбирает под нужды своей профессии. Удачной разработки)
получил удовольствие и от статьи и от идеи и от самого устройства.
Поясните только вот какой момент:
вы применили очень качественный и очень дорогой (в отношении общего бюджета) датчик СО2, однако из всех анализируемых, опасных для здоровья параметров — уровень СО2 для человека имеет самое маленькое значение. Повышение (БОЛЬШОЕ повышение) уровня СО2 приведет только к чувству легкого удушья и сонливости. Кроме того у человека есть собственный датчик уровня СО2 (если задержать дыхание подольше, каждый поймет как он работает). даже спящий человек при повышении уровня СО2 не умрет во сне, а гарантированно проснется.
Однако при этом, самый опасный газ — СО (угарный газ) вы доверили недорогому датчику с большой погрешностью, а ведь именно угарный газ представляет наибольшую опасность — он не имеет запаха, он поглощается гемоглобином, на него у человека нет рецепторов… ну и т.д.

Ни в коем случае не придираюсь, просто интересно чем обусловлен выбор датчиков.

Спасибо на добром слове!

Согласен с Вашей аргументацией. К сожалению, датчик СО на том же принципе поглощения спектральной линии стоит запредельных денег на сегодня. Поэтому пришлось ограничиться дешевым электрохимическим датчиком.

Промышленные датчики СО устроены точно так же — электрохимический аналоговый датчик и микропроцессорная обработка. Эти устройства сертифицированы и законно допущены для контроля уровня СО в воздухе.

Большая погрешность не мешает делать пороговые устройства на уровне «опасно — не опасно».
Как говорится — ваши аргументы ваши мне понятны и близки.
Но, зачем тогда такой дорогущий датчик углекислого газа?
Просто хотелось поиграться с неведомой прецизионной железячкой? (для меня кстати такой аргумент будет 100% понятным)

удачи в вашей работе.

С большим удовольствием стащу отсюда кое-какие умные мысли, когда длинными зимними вечерами сяду разрабатывать похожий контроллер для теплицы. там неактуален водород и этиловый спирт, зато СО2 и метан актуальны, правда еще очень актуален кислород.
Желание поиграть с новой железкой — есть конечно. Я любопытен :)

К30 на СО2 — долговечный, выдающий данные в правильном формате в ppm
цена приемлема.

А вот такой же на СО — стоит 899 долл и это для меня уже неприемлемо…
А какой CO2 сенсор порекомендуете?
Датчик паров спирта и водорода когда-нибудь что-то показал интересное?
Датчик на этиловый спирт бурно реагирует на ватку с этиловым спиртом.
Вообще чувствительности достаточно, чтобы реагировать на просто открытую бутылку со спиртом в комнате.

Датчик на водород реагирует на скажем лак для волос.

Есть у меня мысль сделать электролизер и посмотреть, будет ли специфическая реакция на водород.

А если бухой пришел, БК запалит?
Хороший вопрос! не проверял. возьму в баню, проверим :)
ПРомышленные аналоги чего?

Измерительных приборов на СО2, СО и т.п.? Море. Но цена совсем не радует.

Устройств «все в одном» для так сказать домашнего использования, обычно продают климатические комплексы, но без измерения качества воздуха
насколько я знаю — нет. Климатические установки имеют датчики температуры, влажности и нечто вроде «датчика загрязненности воздуха». Влиять на уровень СО2 им нечем — это уже другой класс устройств с исполнительными механизмами в вентиляции.
Ассортимент погодных станций со встроенным датчиком CO2 ничуть не меньше, чем без него. Только ценник начинается от 4000 руб.
1. за МГТФ — отедбльный плюс
2. Датчики газов не нуждаются в принудительном продуве?
Датчики расположены так, что за счет естественной конвекции продуваются. Они греются весьма прилично и поток нагретого воздуха от них обеспечивает отличную обдуваемость.

Например стоит включит на кухне газовую плиту — менее чем через минуту СО2 в комнате начнет расти.

Если жена использует лак для волос в ванной — всплеск показаний будет через минуту-две.
Я бы такой купил, если доработать интерфейс и сделать его более читабельным для неспециалиста.
Добавить еще аккумуляторное питание, чтобы прибор безболезненно переживал непродолжительные прерывания в питании электроэнергией. Ведь после этого, датчики газов «слепнут» на сутки-двое.
не слепнут. Им нужен «отжиг» один раз в жизни — первый.

Кратковременные отключения на пару часов и транспортировка в авто (типа квартира — дача) не влияет на показания.

Литиевый аккумулятор добавить можно. Но тогда я бы оставил только датчик на СО и применил бы его в малопотребляющем исполнении.
Как ни странно, подумал о том же, просто для здоровья посмотреть достаточно ли у меня комната проветривается. Я бы ещё эти датчики по комнатам разнёс
Датчик наличия сжиженного газа в воздухе — это круто :)
Это прям новый тренд на хабре, — брать стопку газовых датчиков, подключать к ардуино и выводить данные <подставить свое>. У меня если честно по этому поводу только один вопрос: «И что дальше?» Это как с фитнес трекерами — модно, но не понятно зачем.

Искренне надеюсь, что во второй части будет практическое применение.
будет, будет :) даже с практическими примерами :)
А чем вам фитнес трекеры не угодили? Полезная же штука.
Тем что не вижу в них никакого смысла. Ты либо занимаешься спортом, либо им не занимаешься. А знать свой пульс, или сколько ты пробежал нужно только профессиональным сортсменам, для которых каждый парамерт организма это важная штука.

Ноги фитнестрекеров растут из носимых медицинских мониторов, но до их уровня они не дотягивают вообще никак — слишком топорные.
А знать свой пульс, (...) нужно только профессиональным сортсменам
Тут я с вами не соглашусь: занимаясь в определенной зоне вы будете поддерживать одинаковую интенсивность тренировок. Т. е. мне пульсометр, как обычному человеку, нужен не для оптимизации тренировок и достижения пиковых результатов, а тупо чтобы тренировки были примерно на одном уровне.

Время и дистанция — для любопытства, ну и дают понять, что прогресс таки есть, счетчик калорий, ИМХО, что-то из разряда псевдонауки :)

P. S. У меня фитнес трекера нет, есть самый простой Polar FT1, как сядет батарейка, заменю его на Polar Bluetooth + телефон.
Да уж, псевдонаука… на велоспидометре калории считаются очень просто — к пройденному расстоянию добавляется нолик и говорится что это килокалории.
Проехал сотню километров — одна мегакалория…
У меня блютусная хрень и приложение на телефоне. Тяжело бегалось, решил узнать почему — оказалось бегу слишком быстро и пульс зашкаливал. Опять же расстояние и время полезно знать, а приложение эти данные говорит прямо в наушник.
ПС. Прикольно, за фитнес трекеры карму слили в минус ;) Хабр, я тя лю
UFO just landed and posted this here
Практическое применение таких датчиков:
— подключение к системе пожарного оповещения/пожаротушения
— подключение к системе оповещения об утечках метана
— подключение к системам кондиционирования воздуха
— подключение к системам увлажнения воздуха

На хабре пока только подключение к экранчикам. Может быть я просто мыслю очень масштабно, но как есть.
А чтобы проветривать помещение в котором живешь 2-3 часа в день не нужно быть семипядей во лбу.
Практика показывает, что проветривать забывают, пока топор не повиснет в воздухе. У меня например управляющая машина приятным женским голосом говорит сыну студенту, что мол надо проветрить! Работает — проветривает.
Согласитесь, что сын студент был бы рад, чтобы по мимо женского голоса, был бы еще механизм(можно тоже женский), который открывал бы форточку за него?
(вспоминая свои студенческие годы) я был бы рад, факт :)))
UFO just landed and posted this here
И да по поводу кислорода, растений в доме много?:)
Растения дома есть, но не сказать, чтобы много.

Я ходил вокруг датчика кислорода, но он дорогой и срок службы невелик.
Я это написал применимо к комментарию товарища ntfs1984 по поводу «исчезновения» кислорода. Растения в отсутствии солнечного света, особенно тропические, становятся очень прожорливыми, и потребляют значительный процент кислорода. Поэтому категорически не рекомендуется держать растения в спальных помещениях.
Я понял. Да, это известный факт, что растения в темноте кислород используют, а не производят.

Материалы в инете обычно утверждают, что ощущение удушья и некомфорта связано с ростом уровня СО2, а не падением уровня кислорода. Утверждается, что уровень кислорода падает крайне незначительно.
Суть проблемы — падение уровня pH из-за накопления кислых продуктов обмена. Отсюда и проблемы с CO2
Никакое растение не способно сравниться с таким проглотом кислорода, как человек. Фотосинтез комнатных растений практически никак не влияет на соотношение CO2 в комнате в силу низкой интенсивности, а интенсивность процессов дыхания растений еще ниже.
Мне кажется еще было бы хорошо впихнуть туда датчики для метана (или других углеводородов, которые нам домой поступают как природный газ), чтобы знать есть ли протечка.
А нельзя ли что нибудь с датчиками для газов сделать, чтобы их совместить в один (вы написали что они практически одинаковы)?
А вообще девайс шикарный, я бы тоже купил. Не так давно искал похожий но с датчиками для углеводородов.
я покажу реакцию датчиков на газ из зажигалки, на лак для волос.

Действительно, избирательность датчиков невысока. В принципе достаточно оставить один — на СО, ну или два — на домашний газ.
Потрясающе!

Моя трудоспособность очень сильно зависит от свежести воздуха. Сначала я думал, что дело в концентрации кислорода, а потом вычитал, что дело в концентрации углекислого газа. И начал фантазировать о девайсе, который будет замерять концентрацию углекислого газа в помещении.

У меня идет ежедневная война с коллегами, особенно зимой. Я требую проветривать помещение, они же закрывают окно сразу после того, как я его открываю.

Потом появилась вот эта статья на Хабре: habrahabr.ru/post/187210/ Я в своем мнении укрепился, но на коллег это не действует.

Датчик углекислого газа помог бы определять моменты, когда помещение нуждается в проветривании. Или, например, он позволит понять, помогает ли кондиционер удалять углекислый газ из помещения. Ну и заодно проверить, не является ли моя чувствительность к избытку углекислого газа мнительностью и самовнушением.
Или, например, он позволит понять, помогает ли кондиционер удалять углекислый газ из помещения.


Не надо это проверять.
Нет, не помогает.
Кондиционер (если это не система с забором внешнего воздуха, а обычная сплит система) изменяет только температуру и влажность воздуха в помещении.
Причем влажность — только в сторону ее уменьшения, причем не контролируемо.
да, уровень кислорода практически не меняется, так написано в многочисленных источниках.

А вот уровень СО2 действительно влияет на самочувствие и работоспособность.

Вообще-то на работе в дело вступает САНПИН, по которому в помещении должно обеспечить 6-ти кратный обмен в час (точно не помню, но ищется без проблем). И если душно — то трясти работодателя на предмет обеспечить соответствие нормам. Зачем с коллегами конфликтовать?
Всё никак руки не доходят впендюрить такие датчики в свое домашнее облако. Настоящее облако, материальное :)
Хочу сделать режим, показывающий цветом качество воздуха.
Снимал на тапок:
www.youtube.com/watch?v=--1T7As-NOA
Весьма не однозначная статья. Вроде бы человек проделал большой труд, но по факту — просто куча газовых датчиков подключенных к ардуине и спорный интерфейс, понятный лишь самому разработчику. Изящной реализацией конструкция тоже не удивляет. В глаза бросается криво рассверленный корпус и жуткая, обклеенная изолентой текстолитовая платой внутри.
Спасибо за Ваше мнение!

Не совсем куча… я описываю способ преобразования измеренного сигнала от например датчика СО в показания в ppm, основываясь на мануале к датчику.

Это безусловно не рокет сайенс, но в инете я не нашел готового метода. Все прочитанные мной материалы заканчиваются на рассуждениях, что надо заказывать эталонные смеси.

Осторожно думаю, что я первый, кто выложил законченные рассуждения на эту тему.

Не хотите попробовать сделать более универсальный анализатор воздуха или еды на основе, например, хроматографии, спектроскопии? Думаю, на такой домашний анализатор будет спрос даже при значительной цене, здоровье-то дороже.
Я неторопливо размышляю над этим вопросом. Пока моя точка зрения такая — можно, вопрос цены. Если говорить об измерительном приборе — то сделать лучше промышленного вряд ли получится.

Плюс калибровка, сертификаты и пр.
Присоединяюсь по поводу корпуса.
Сделать аккуратные отверстия вручную помогает предварительное сверление небольших углублений сверлом, диаметр которого чуть больше длины поперечной кромки того большого сверла, которыми будут делаться основные отверстия.
Самый же технологичный способ — использовать не сверло, а фрезу, и делать это на фрезерном станке, где деталь можно сдвигать на одинаковое расстояние каждый раз.
Также для повышения эстетичности можно заклеить решетку изнутри пластиковой крупноячеистой сеткой.
Фрезерный станок — мечта! Но пока нереализуемая. И дорого и держать негде.

С сожалением вспоминаю времена СССР, когда токарные\фрезерные\сверлильные станки и рукастые мужики были буквально в каждой школе, каждой лаборатории. Мне в те годы такой рукастый мастер сделал переднюю панель для 11 полосного эквалайзера со спектроанализатором тоже на 11 полос на светодиодах.

За технологический прием — спасибо, запомню и попробую.
Взять металлическую линейку и шило, или штангенциркуль. Нанести сетку под будущие отверстия. Сверлить не стразу максимальным диаметром, а сперва накернить тем же шилом, потом тонким сверлом, потом толстым. Края отверстий раззенковать еще большим сверлом. Будет как из магазина :)
Технически это несложно. Но противоречит концепции.

Идея в создании приборов, которые передают данные в одно место («управляющая машина»), где обрабатываются, логируются, рисуются красивые графики, считаются корреляции между разными типами данных и др. А выдается эта консолидированная информация на большой, красивый экран или экраны. Т.е. чтобы данные практически использовать их надо пропустить через «управляющую машину», в которой часы есть.

ЛОкальный дисплей — это скорее дань желанию сделать «красиво», добавить автономную функциональность. Например, едешь на новоселье к коллеге и берешь с собой БК. Если бы дисплея не было — надо брать и ноут.
Только сейчас понял…
Его же можно использовать как тестер «свежести утреннего дыхания».
С утра дыхнул на него, а он и говорит «человеческим голосом»: «нет, батенька, за руль вам, определенно, рановато, но зато температура и влажность в комнате — в пределах нормы» :)
«и вторая головка соленого чеснока вчера была лишней!» :)))
А можете поподробнее про «управляющую машину»? Какое ПО используете?
Управляющая машина — это самоделка на базе материнки Интел D2800MT .

Она специально спроектирована для безвентиляторной работы. Питание — от любого источника для ноута.

Диск использован SSD в формате mSATA.

Самодельный корпус из медного листа оптимизирован для пассивного воздушного охлаждения.

Операционка — Вин7.

На ней работают программы сбора данных от устройств типа БК, визуализации разнообразных параметров, web-server, управления водяными кранами.

А еще звонок домашний на сотню+ мелодий.

Года три — полет нормальный, проблем нет.

А что за «программы сбора данных от устройств»?:) Самописные или что-то порекомендуете?
Это программы, написанные самостоятельно под Visual Basic (Visual Studio 2012)

Во второй части, которая будет опубликована в понедельник, будет описание такой программы, скриншоты, ссылка на проект.

Не очень хотел писать сам, но ничего готового и близко не нашел.
Насколько я помню, в даташите на некоторые из этих датчиков MQ* указан некий preheat time в X часов. Т.е. точные показания с них сразу не снять.
ПО мануалу их надо один раз прогреть в течение 48 часов.

По опыту — будучи один раз прогретыми по мануалу, они прекрасно переносят отключение и перемещение в течение пары-тройки часов. Показания устаканиваются за 10-15 минут.
А зачем на индикаторе на всех скриншотах нижняя строка?
Не подумал, простите.

P.S. Вы знаете, я бы туда ваш ник написал. Добрее и сказочнее получится! )
(вздыхая) вот найду работу — стану опять сказочным Медведем :))) а пока — без паблисити нет просперити.
Ну как бы тогда экран — да, вместо резюме )

Вы — молодец!

Удачи в поисках!
Датчик пыли в воздухе от Sharp не думали поставить? www.sparkfun.com/products/9689
Очень важный параметр для оценки среды.

Есть еще т.н. Air Quality cенсоры, которые применяют в офисных системах кондиционирования. Насколько я понимаю, реагируют на некоторые пары органики, типа спиртов, формальдегида.
Я думал о таком

когда я начинал проектировать БК, эти датчики не были доступны. Или я о них не знал.

Air Quality в момент покупки (пару лет назад) стоили гораздо дороже, а чувствительны примерно к тому же набору веществ.

На текущий момент я бы набор датчиков изменил.
Прочитал от начала до конца. Было сложно но интересно )))
А главное познавательно.

Китайцы видимо параллельно с автором сделали подобный прибор и запустили в производство. Не такой продвинутый, но интересный. Broadlink A1 E-air.
Жена настояла на разделении на две части :)))) чтобы не случилось «не асилил многа букофф» :))))

Ну идеи-то носятся в воздухе.
На DX'е всё стоит просто конских денег…
Совершенно недавно брал упомянутый автором OLED экранчик на Алиэкспрессе за 4.96. Да, не 150р по нынешнему курсу, но избавляет от гемора с травлением/ковырянием текстолита.
А на ибее есть вообще за смешную цену (но более корявый).

С Wi-Fi модулем вопрос спорный. Я бы (тут чисто моё имхо и тараканы) прицепил LAN-модуль и задействовал какой-нибудь дешёвый Wi-Fi роутер (размером со спичечный коробок, которые тут периодически описываются/прошиваются/апгрейдятся целыми стаями). Профит в потенциальном расширении функционала, ну и как минимум в возможности одномоментно задействовать роутер как репитер, что тоже полезно бывает.
Я начинал с DX :) прошло какое-то время пока я научился пользоваться и другими магазинами.

У меня есть устройство, похожее на Ардуино, но с LAN, которое общается с миром через мост на TP-Link WR703N.
Третий год в таком режиме работает.

Вполне работоспособный вариант, но надежность линка на HLK-RM04 выше. 703 зависает раз в три-четыре месяца, а HLK-RM04 в количестве 3-х штук — ни разу за год не зависли. И по цене HLK-RM04 выигрывал — я штук пять купил по ~400 р, а TP-Link WR703N в тот момент стоил ~700 р.
Спасибо за статью!

Как найти шнурок с антенной для HLK-RM04? Название разъёма или ссылку.
Я так понял, нужен переходник UFL-F/RPSMA-F. На модуле, соответственно, разъём UFL-M.
Повезло вам с Dessy. Я вот владею таким же HLK-RM04, только они мне антенну продавать не спешат. Причем заказал, получил отбойник, что заказ принят. И тишина.

Не стал им больше звонить, так и работает у меня HLK-RM04 без антенны.
У меня проблем с Десси не было. НЕ хотят Десси продавать, закажите еще у кого-нибудь. Я сам давно ничего не заказывал из-за рубежа, но знакомые говорят, что посылки из Китая за 10 дней стали доходить.

Без антенны использовать модуль не стоит. Во-первых, резко падает дальность связи, во-вторых — есть опасность сжечь передатчик. Это не факт, я не знаю как устроены выходные каскады передатчика и есть ли защита и насколько она хороша. Но работа передатчика на несогласованную нагрузку (без антенны) — аварийный режим.
Из Китая крайне редко что за 10 дней приходит. Т.е. достаточно, чтобы периодически появлялся такой восторг, но в целом ничего не поменялось — до Москвы 30 дней в среднем.

А наши магазины из меня всю душу вынимают. Десси — ближайшее из далеких мест, где более-менее разумные цены. И где дорога до офиса на сайте выглядит лучше, чем их каталог товаров. Про остальные всем известно: Чип умножает цены на 10, до Кварца неделю на оленях, как и до Митинского (где я не был с момента его триумфального преображения), Компэл похож на Чип, только у них еще и с розницей совсем плохо.

Хотя, конечно, можно сказать, что это просто я такой капризный.

Что касается безантенного использования — то, да, я в курсе, что это плохо. Но решил, что сломается — значит, сломается. А пока что в статистике самого модуля сигнал считается «слабым», но сам линк — от «нормального» до «хорошего», что меня в целом успокаивает.
Переходник UFL-F/RPSMA-F с антенной RPSMA 2.4 ГГц в Китае выйдет чуть более $2 с доставкой, только внимательно смотрите описание и картинки, чтобы разъёмы были механически комплиментарны. Ну или найдите антенну UFL-M 2.4 ГГц (я не нашёл на ebay за адекватные деньги).
спасибо за названия разъемов — я в них вообще ничего не понимаю, и не представлял, как вычислить тот, что у HLK-RM04 (в даташите на эту тему молчок).
Этот белый куб действительно кому-то очень нужен?
Универсальный экспериментальный куб…
Сколько себя помню, никогда не видел столько датчиков в одном проекте. Прям проект-рекордсмен.
Похоже на фингербокс, если вы понимаете о чем я.
Спасибо, очень интересно! Уже давно «болею» подобным проктом — мониторинг самых разнообразных показателей окружающей среды (помимо перечисленных, у меня использовались газовые датчики Figaro, датчики дыма (два вида), шума, радиации (на СБМ-20); основа — на Raspberry Pi)
А Вы свой проект не публиковали? Обмен идеями интересен.

Идея такого прибора — померять то, что недоступно органам чувств человека.
Зачем Вы используете датчик шума?
Почему Вы выбрали СБМ20?
ПОчему основа — малинка?
Нет, не успел. Рассказывал только на семинаре питерского хакспейса (https://vk.com/topic-8370895_27924132) Я немного по другому формулировал цель: чувство времени тоже несовершенно, поэтому мы не реагируем на слишком медленные (лягушка в кипятке) и быстрые изменения параметров окружающей среды. Микроконтроллер мне нужен не столько для регистрации текущих показаний, сколько для записи и анализа изменений во времени.

Шум влияет на работоспособность.

Первый попавшийся датчик, нужно было проверить саму возможность.

Определилось целью — требовалось обеспечить обработку на борту (mrtg, rrd tools, etc.) при соблюдении автономии.

Идеями обменяться — с удовольствием! Я в Питере, www.linkedin.com/in/cherkasov
Датчик шума калиброванный? Какова кривая чувствительности? Белый шум? РОзовый? Для open space залов интересно может быть.

Мне кажется распберри с одной стороны слишком дорог для чисто устройства сбора данных, с другой недостаточно могуч для вменяемой обработки\накопления\отображения.

Думается мне, что для выполнения требования автономии ноут на атоме с дисплеем и полноценной ОС будет оптимален.

Да, я из Москвы :)

Датчик простейший, без калибровки. Да, к конструкции пришел именно из работы в open space; несколько раз уже меняли систему вентиляции по его показаниям.
Да, комбинация на TP-Link с Open WRT + Arduino c датчиками тоже реализовывалась.

Одно время цеплял к Raspberry Arduino через конвертор уровней или по USB serial в качестве АЦП, потом стали делать подходящие платы-расширения.

Разработка под Raspberry A (отладка делается на B), поэтому связь только по WiFi.
P.S. Плюс ещё на очереди под включение — спектрометр.
Продайте свою разработку «Амперке» — сделают какой-нибудь набор и вам и им профит.
А вообще я не люблю эти Ардруины, какое-то программирование из полуфабрикатов :(
Выбор инструмента идет от задачи. Самый дорогой ресурс — время. Поэтому оптимален тот инструмент, который позволит решить задачу за минимальное время с учетом граничных условий.
Например как Яндекс программирует на айпадах ;)
А вы разве не для себя как хобби этим кубом занялись?
Куб — это конечно для души. Но поскольку я профессиональный радиоинженер по образованию и опытный ИТ специалист — то естественно, что элементы профессиональной деятельности находят применение и в хобби-поделках. Думаешь о поделке, как об изделии и как о проекте :)
Прочитав про ваши трудности с организацией кода и шайтанство с длительностью циклов, обработкой прерываний и тд — захотелось порекомендовать вам почитать про автоматное программирование и событийно-ориентированное программирование. Если уж вы решили заниматься встроенным программированием — без этого никуда. Либо мультитред, либо автоматы. Причём мультитред — по сути частный случай автомата, где контекст треда является состоянием автомата. Поскольку операционки у вас нет, да и смысла в ней нет на такой простой системе и для такой простой задачи, то остаютсятся автоматы (оно и предпочтительнее в большинстве случаев, даже если мультитрединг поддерживается — чем кувыркаться с синхронизацией тредов, реентерабельностью, thread safety и прочими «радостями»).
Поначалу кажется, что это сложнее, чем «линейное» кодироваине, но это вопрос привычки.
Спасибо, почитаю.

Не сказал бы впрочем, что были серьезные трудности с организацией кода или длительностью циклов… Работа с прерываниями — и вовсе штатное явление.

Почитаю про автоматное программирование — подумаю о применении.

Я обычно встречаю такой подход — по прерываниям выставляются флаги событий, а они по мере возникновения обрабатываются в основном цикле без трудностей типа времени выполнения и т.п. Этот подход как можно классифицировать?
Псевдомногозадачность. Но тем не менее, но всеравно событийно-ориентированное. т.е. произошло собитие — обработали и ждем следующее.

Автомат — это когда программа может находится только в одном из состояний и все переходы из состояния в состояние строго описаны и отклонений быть не может. Получается что-то вроде сети соединений между узлами где узлы — это состояние программы.
В принципе, любая линейная программа — это автомат. А там где есть бесконечный цикл и чего-то ждем это уже событийно-ориентированное. В одной программе эти оба подхода могут использоваться одновременно на разных уровнях.
А вот автоматов я в МК не встречал. Чем они так удобны?
Подозреваю что они важны в специфических системах где нужны жёсткие приоритеты какие-то.
Удобством описания. Некоторые задачи проще описать в виде автомата а не алгоритма.
Меню, например. Каждый пункт меню реализован небольшим кодом который отображает выбранный пункт меню на экране и умеет перейти в другие состояния — следующий пункт, предыдущий, выход на уровень вверх, вход в нижний уровень/редактирование параметра.
Когда меню описано в программе как автомат состояний, тогда его легко модифицировать и вставлять нужные пункты в нужное место. Иначе для этого нужны были бы списки меню, для каждого узла еще и списки подменю и параметров и универсальный код который бы этим всем делом заведовал и как-то знал как редактировать каждый из параметров, их ограничения и реализацию редактора.
Если внутри самого обработчика вы уже не ждёте событий — то это нормальная практика event-driven приложения. Все ожидания тоже реализуются как события таймера (для совсем коротких можно делать исключения и реализовать программным циклом).
В принципе, как тут уже заметили, любая линейная программа (да и вообще любая программа) это автомат. Просто в атоматном программировании какая-то часть переменных состояния явно выделяется и называется таковыми, и алгоритм строится вокруг текущего состояния.
Вы в обработчике события вы так или иначе проверяете переменные, которые отражают текущее состояние программы, и выполняете какие-то действия в зависимости от этого, и меняете эти переменные — переключая ваш автомат в другое состояние.
Автоматному способу организации программы очень мешают «блокирующие» функции с ожиданием внешних событий. Пока такая функция выполняется (ничего, по сути, не делая — лишь ожидая внешнего события) — вы не можете обрабатывать другие события. К сожалению, иногда приходится использовать стороннее API с такими функциями. Тогда их можно вызывать в отдельном треде, тщательно изолируя от основного треда, и посылая события по завершении блокирующей функции. Объём кода в допонительном коде нужно при этом минимизировать, чтобы снизить усилия и вероятность ошибок синхронизации/thread safety. Ещё одна хорошая причина иметь более одного потока выполнения — это если приложение выполняется на многоядерном процессоре или многопроцессорной системе, и есть желание использовать воможности параллельной обработки для вычислительно сложных задач. Но в общем случае, «threads are evil».
Я упомянул про автоматное программирование, потому что у автора основной цикл занимает секунды. Скорее всего, он ожидает внешних событий непосредственно в этом цикле — ожидает сотни миллисекунд тут и там, вместо того, чтобы запомнить состояние «ждём следующий символ» или «ждём 100 мс перед тем, как проверить состояние линии» — и освободить процессор для других задач.
«их есть у меня» :)
О радиометре с Wi-Fi и Глонасс\GPS см. статью тут.

Я раздумывал о совмещении приборов, может в следующей версии сделаю универсальный измеритель всего :)
В том числе измеритель настроения на основе датчиков ускорения…
Шар даже лучше, не надо думать какой стороной его ставить.
Почитал — круто :)
Sign up to leave a comment.

Articles