Белый Куб на страже чистоты воздуха, часть 1

    Устройство для мониторинга параметров домашней среды с передачей данных по Wi-Fi.

    image

    В статье описывается устройство для измерения, индикации на встроенном дисплее и передачи в сеть по Wi-Fi параметров окружающей среды:

    • уровень СО2 (углекислый газ)
    • уровень СО (угарный газ)
    • содержание паров этилового спирта (С2Н5ОН)
    • уровень горючих газов (LPG)
    • уровень аммиака (NH3)
    • содержание водорода(H2)
    • значения атмосферного давления
    • влажности и температуры воздуха
    • уровня освещенности
    • уровня магнитного поля по трем осям
    • уровня гравитации по трем осям
    • уровня ускорений по трем осям
    • температуры произвольного количества цифровых датчиков температуры типа DS18B20.

    Изюминкой БК является способ смены экранов по двойному постукиванию по корпусу. Видео как это происходит:



    Подробное описание этого способа управления ниже.

    Белый Куб внешне представляет собой корпус белого цвета с ребром 10 см, купленный в Чипе и Дипе.

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

    В качестве центрального процессора БК я применил Ардуино Нано. Для меня удобство разработки и программирования перевесили недостатки. Учитывая также заметное энергопотребление датчиков газов, датчика СО2 и модуля Wi-Fi не имеет смысла бороться за низкое потребление ЦП. Плюс надо учесть и то, что БК – единичный прибор, не предназначенный для массового производства.

    Для передачи данных по Wi-Fi я использовал замечательное устройство «HI-LINK HLK-RM04 Serial Port-Ethernet-Wi-Fi Adapter Module» (http://dx.com/p/hi-link-hlk-rm04-serial-port-ethernet-wi-fi-adapter-module-blue-black-214540), которое представляет собой по сути мини-рутер с большими возможностями.

    image

    И с обратной стороны:

    image

    Я использовал режим прозрачной передачи данных Serial – Wi-Fi. Я не буду подробно останавливаться на этом устройстве – в сети достаточно описаний, опыта применения и форумов по этому мини-рутеру.

    Из любопытного следует упомянуть библиотеку github.com/chunlinhan/WiFiRM04

    В процессе отладки выяснились некоторые особенности передачи данных по Wi-Fi по сравнению с кабелем. Так, если по кабелю строка данных из например 130 байт из Ардуино так и приходит строкой в 130 байт, то при передаче этой же строки по Wi-Fi данные оказываются разбитыми на 4-5 частей и на приемном конце эти части требуется собрать и только потом передать строку на обработку. Углубленно с этим я не разбирался, учел при написании программы приема данных от Белого Куба. Возможно, эти особенности передачи по радиоканалу связаны с уже большой загруженностью диапазона 2.4 ГГц и конкурентным доступом устройств, работающих на одном частотном канале.
    Следует обратить внимание, что с DX модули приходят без внутренней антенны:

    image

    Я докупил внешние антенны в DESSY.RU и потребовал от продавца возмещения расходов.

    Для оценки присутствия в воздухе вредных веществ применены следующие датчики:

    Датчик CO2 типа K-30:



    Куплен отдельно у производителя на сайте. Это самый дорогой из примененных датчиков, но он стоит своих денег, поскольку очень долговечен и стабилен. Принцип действия заключается в измерении поглощения инфракрасного излучения в калиброванном тракте. Данные с этого датчика можно снимать как в аналоговом виде, так и двумя цифровыми интерфейсами – последовательным и I2C. Также этот датчик содержит механизм автокалибровки, который учитывает данные за прошедшие две недели (интервал времени программируется) и минимальный уровень в течение этого времени считает за 400 ррм. Таким образом учитывается долговременное смещение калибровки датчика. На сайте производителя имеется как подробная документация, так и примеры программы считывания данных, которыми я и воспользовался. Я купил два датчика, один через преобразователь сериал – USB на FT232 подключен к домашней управляющей машине, второй использован в БК. Датчик питается от 5 вольт, но уровни на сериал порту должны быть 3.3 в. Это для случая подключения по сериал порту. Если используется порт I2C – то преобразователь уровней не требуется.

    Остальные датчики – аналоговые:

    Пары этилового спирта (C2H5OH) – MQ5
    Угарный газ СО –MQ7
    Водород H2 – MQ8
    Сжиженный газ (LPG) – MQ6
    Аммиак (NH3)– MQ135
    Дым — MQ2

    Выглядят датчики вот так:

    image

    image

    image

    Несмотря на некоторое внешнее отличие, устроены датчики одинаково, содержат чувствительный элемент, меняющий проводимость под действием того или иного газа и компаратор на половинке LM393. Датчики имеют 4 внешних вывода – два для питания модуля (+5 и земля) и два выхода – один аналоговый и один цифровой с выхода компаратора.
    Чувствительные элементы нуждаются в подогреве и поэтому ток потребления довольно большой – около 200 мА.

    Рекомендуемая мануалом схема включения – последовательно с датчиком включается резистор и с него снимается полезный сигнал. По мануалу нагрузочный резистор можно ставить от 5 до 47 КОм, типичное значение – 10 КОм.
    Любопытно отметить, что сами датчики обладают малой избирательностью и одинаково хорошо реагируют на весь спектр веществ и газов. Это, впрочем, выяснилось уже в процессе испытаний и отладки БК.

    На печатной плате размещен собственно датчик, сдвоенный компаратор типа LM393, пара светодиодов и вспомогательная обвязка. Один светодиод – индикатор питания, второй – индикатор срабатывания компаратора. К счастью, на выходном разъеме имеется и вывод аналогового сигнала непосредственно от датчика, так что я смог использовать эти узлы без изменений, кроме датчика СО.
    Датчик CO (MQ7) пришлось модернизировать. Этот датчик требует особого режима питания в соответствии с мануалом. 90 секунд на нагревательный элемент следует подавать полное напряжение 5 вольт, а затем 60 секунд – 1.4 вольта. На плате питание подогревателя организовано иначе – +5 вольт подаются на один вывод нагревателя, а второй вывод через резистор 5 ом присоединен к земле.

    image

    На фото красными стрелками показаны элементы:
    1 – резистор 5 ом в цепи нагревателя
    2 – вывод нагревателя
    3 – компаратор LM393

    Я демонтировал резистор (1) и проводом МГТФ соединил вывод нагревателя (2) к ноге разъема, на которую был заведен выход компаратора. Компаратор (3) я также демонтировал с платы. Второй провод восстанавливает ошибочно разрушенную цепь индикаторного светодиода. Индикаторный светодиод включен параллельно нагревательному элементу. Это позволило при отладке программы визуально наблюдать за текущим режимом – нагрев или измерение по изменению яркости светодиода.

    image

    фото переделанного датчика CO MQ7

    Поскольку нагреватель датчика требует значительного тока (порядка 200 мА), то питать его напрямую от вывода Ардуино нельзя (максимум 40 мА). Я использовал промежуточный полевой транзистор в ключевом режиме. Транзистор вот такой: IRLU120NPBF, Nкан 100В 10А logic ТO251, куплен в Чипе и Дипе. Это транзистор Т1 на принципиальной схеме БК.

    Электрическая принципиальная схем Белого Куба:

    image

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

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

    Вид выходного сигнала по каналу измерения СО показан на графике:

    image

    На этом графике зеленый меандр – переключение напряжения на нагревательном элементе, красная линия – сигнал с датчика СО, желтая – сигнал, зафиксированный непосредственно перед сменой режима нагрева.

    Измерение сигнала от датчика СО производится непрерывно, в систему обработки поступают как текущий сигнал, измеряемый с периодом около 3-х секунд (период основного цикла скетча), так и измерение «по мануалу» с периодом 2.5 минуты (90+60 секунд). Из графиков видно, что сигнал внутри периода измерения также несет информацию о текущем уровне СО и скорости его изменения. Выделить и использовать ее можно путем сравнения (вычитания) запомненного массива значений на предыдущем такте измерений с текущими значениями. Разница с предыдущим циклом с возможно какой-то дополнительной обработкой (усреднением за 10-20 секунд) даст более-менее адекватную информацию о скорости увеличения вредного агента в воздухе. Это позволит увеличить скорость реакции на изменение СО с двух с половиной минут до нескольких секунд. Идею такой обработки я нашел тут.

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

    Измерение давления воздуха.

    Для измерения этого параметра я использовал модуль «L3G4200D ADXL345 HMC5883L BMP085 MWC Sensor Module for Arduino».

    image

    image

    Модуль содержит 4 датчика, изначально предназначен для летательных аппаратов типа мультикоптера. Модуль куплен на DX.com из соображений «оптом дешевле». Оказалось впрочем, что и для датчика ADXL345 нашлось свое применение. Об этом несколько ниже.

    BMP085 – цифровой датчик абсолютного давления воздуха с датчиком температуры.
    ADXL345 – трехосевой датчик ускорения
    HMC5883L – трехосевой датчик магнитного поля
    L3G4200D – трехосевой цифровой гироскоп.

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

    Датчик ADXL345 предназначен для измерения ускорения по трем осям с выдачей результатов по шине I2C. Датчик этот умеет измерять в частности ускорение свободного падения.

    А еще этот датчик умеет реагировать на воздействия “tap” и “double tap” – т.е. на одиночное и двойное постукивание. И это дает возможность оказывать на программу (скетч) БК управляющие воздействия. Я использовал этот механизм для переключения экранов на дисплее. Данных много и они на одном экране не помещаются. Поэтому я сгруппировал их по трем экранам и переключаю их по double tap по корпусу БК. Мне очень не хотелось делать какие-либо кнопки, я хотел оставить поверхность БК чистой, насколько это возможно.

    ADXL345 умеет выставлять аппаратное прерывание по факту детектирования double tap, его я подключил к выводу D3 Ардуино.

    К сожалению, из-за ограничений МК у меня не получилось организовать полноценную обработку аппаратных прерываний. Внутри прерывания я не могу опросить регистры ADXL345, так как если прерывание случилось внутри программы общения с другим устройством на той же шине I2C – я порушу этот обмен. Поэтому я сделал компромиссно – при обработке прерывания от ADXL345 я только ставлю флаг, что зарегистрирован double tap, а собственно опрос ADXL345 с целью сброса флага прерывания я делаю в подпрограмме вывода на экран. Решение не идеальное и иногда дающее артефакты на экране, но зато максимально быстрое. Если просто опрашивать в главном цикле ADXL345 на наличие события – то время реакции может быть около 3-х секунд при неудачном раскладе. Это раздражающе долго… Мой вариант дает максимальную задержку менее секунды и я счел его приемлемым.

    Видео переключения экрана по дабл тапу:



    Данные с датчиков магнитного поля и ускорений читаются, отображаются на дисплее (экран 2) и передаются по каналу связи без изменений. Их обработка – пока дело будущего.

    image

    Если повертеть Куб в руках – будут изменяться показания датчика ускорения, гравитации и магнитного поля. Есть и активная реакция при поднесении магнита.

    Какую практическую пользу извлечь из этих показаний – я пока не решил. Может быть анализ изменений магнитного поля даст какую-то полезную информацию для метеочувствительных людей? Впрочем, как электронный компас устройство можно использовать уже сейчас.

    Датчик освещенности.

    У меня осталась пара свободных выводов на Ардуине, одна из них – с аппаратным прерыванием. Я решил использовать этот вывод для измерения освещенности. В сети я нашел упоминания о методе измерения освещенности путем измерения времени разрядки обратно-включенного p-n перехода светодиода. Суть метода в следующем – на вывод процессора присоединяется обратно включенный светодиод. Вывод включается в режим OUTPUT и на него подается высокий уровень (+5 в). Паразитная емкость светодиода плюс емкость монтажа заряжается до высокого уровня. Далее вывод переключается в режим INPUT и к нему прикрепляется прерывание по изменению уровня или по отрицательному фронту. Входной импеданс процессора ATMEL328P в таком режиме весьма велик – десятки мегаом, поэтому разряд паразитной емкости фототоком занимает достаточно большое время – от единиц миллисекунд до единиц секунд. По срабатыванию прерывания достаточно зафиксировать текущее время. Разность между временем начала цикла и временем окончания цикла даст время в миллисекундах, обратно пропорциональное освещенности. В моем случае для темноты ночью время составляет примерно 3500 миллисекунд, а днем на Солнце – единицы миллисекунд. Я поставил дополнительный конденсатор параллельно светодиоду емкостью в десяток пикофарад, иначе днем разрядка была очень быстрой (менее 1 мс). Я получил 3-10 мс ярким солнечным днем. Собственная емкость светодиода составляет около 8 пикофарад. Дополнительная емкость привела к заметному увеличению времени разряда в темноте – более 4-х секунд. Тут я столкнулся с определенной трудностью. Основной цикл программы длится примерно 3.6 секунды. В начале цикла я запускаю измерение освещенности, выполняю все остальные операции и к концу цикла я ожидаю, что в глобальной переменной лежит значение освещенности, положенная туда в прерывании. Сначала у меня была мысль организовать автономный цикл измерения освещенности, так чтобы в самом прерывании опять запускался цикл. Но тогда при высоких уровнях освещенности (т.е. малом времени цикла – несколько миллисекунд) процессор будет занят только измерением освещенности. Если же делать запуск один раз в начале основного цикла –то при низких уровнях освещенности срабатывания еще не будет и значения будет равно 0… Вышел я из положения так – запускаю измерение в начале цикла, но проверяю – было срабатывание или нет. Если было – запускаю штатным образом. Если нет – ничего не делаю. Минус такого решения – при низких уровнях освещенности вдвое падает скорость измерения. Впрочем – меня все равно интересуют данные с характерным временем изменения в десятки секунд, так что этот минус неважен. Получился преобразователь освещенности в длину импульса с некоторыми особенностями и ценой в 20 рублей.

    Выбор светодиодов. Поскольку к моменту подключения датчика освещенности Белый Куб уже имел отверстия диаметром 8 мм – то я решил, что будет красиво использовать диод такого же диаметра. Я купил в Чипе и Дипе по паре штук светодиодов каждого имевшегося там цвета (красного, зеленого, желтого, белого и синего) диаметром 8 мм и поставил эксперимент с целью определения оптимального светодиода. Для исследования светодиодов я соорудил простейший стенд. Стенд состоит из Ардуино Нано, модуля Wi-Fi – serial и исследуемого светодиода на винтовых зажимах. Питание системы осуществлялось от литиевой батареи (power pack).

    Немного теории – освещенность в комнате меняется примерно в 1000 раз и более. Ночью освещенность составляет единицы и доли люмена, солнечным днем около внутри комнаты освещенность будет около 1000 люмен, а у окна — около 10 000 люмен.

    Для каждого светодиода искал максимум освещенности – наводил систему мелкими шагами на самое яркое пятно на улице и на самое темное в комнате и затем уносил систему в темное помещение.

    Результаты обработки измерений приведены в таблице.
    (цифры в таблице – время разрядки в миллисекундах)
    LED окно комната в темноте диапазон, раз
    зеленый 4 440 4524 1131
    белый 16 1028 10161 635
    красный 2 49 883 442
    желтый 4 25 287 72
    синий 5 53 53 11

    Получилось, что зеленый светодиод обладает максимальной шириной диапазона – более 1000 раз (от единиц мс до 4 секунд), за ним идет белый (635 раз), затем красный (442) и желтый (72) и замыкает список синий с диапазоном 11. Белый светодиод отличился еще и меньшей чувствительностью к свету.
    Подробная интерпретация полученных результатов лежит за рамками данной статьи, но ясно, что оптимально использовать в БК зеленый светодиод.

    Преобразование показаний датчика освещенности в люксы.

    Нормы на освещенность легко находятся в интернете (Санитарные правила и нормы СанПиН 2.2.1/2.1.1.1278-03). Из изучения этого документа следует, что освещенность нормируется в диапазоне 20 – 750 люкс (от кладовой до рабочего места для точных работ). Иначе говоря, калибровать датчик освещенности БК имеет практический смысл в диапазоне от единиц люкс до тысячи люкс.

    Для решения этой задачи я применил готовый калиброванный датчик BH1750. Датчик был подключен к отдельной Ардуино, подключенной к Wi-Fi модулю. Скетч читал показания датчика и транслировал их в сеть, откуда они забирались программой, усреднялись на интервале 1 минуты и записывались в лог файл. После нескольких дней я обработал эти первичные данные, сопоставив данные от БК и калиброванного датчика. В результате обработки данных я получил таблицу преобразования, по которой можно пересчитать время разрядки диода в люксы. Из таблицы можно вывести формулу, но я это оставил на When I'm sixty four.

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



    Напряжение питания меняется из-за циклов нагрева и измерения датчика CO MQ7. В цикле измерения на него подается 1.4В, а в цикле нагрева — 5в, ток потребления меняется, меняется напряжение питания и уплывает порог срабатывания входа D3. По измерениям получилось, что из-за фактора нестабильности питания изменение времени составляет от 10% при высоких уровнях освещенности до более 30% при низких.

    Это изменение можно скорректировать программно.

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



    Черная стрелка — момент выключения телевизора. Красная — восход Солнца (на сегодня 20 ноября 2014 это 8:13 по данным Гисметео).

    Датчик в виде диода сохраняет отзывчивость и на малые уровни освещенности в районе единиц и десятых долей люкса. Датчик BH1750 имеет минимальную чувствительность в 1 люкс. Так например BH1750 не реагирует на телевизор или настольную лампу мощностью в единицы ватт (светодиодную), а датчик в БК – уверенно реагирует. Есть впрочем и другие датчики освещенности с существенно большим диапазоном, например MAX44009 c заявленным диапазоном 0,045 — 188000 люкс, интерфейсом I2C, но и ценой порядка 200 р (в Чипе и Дипе — 250р). Впрочем, может быть в следующей версии БК я заменю датчик освещенности. Использование готовых модулей конечно правильнее с точки зрения качества оконечного изделия, но делать что-то своими руками интереснее на порядок.

    Использование светодиода и метода измерения длительности разряда в таком простейшем виде не обеспечивает достаточной точности, но может быть использовано например для выполнения подстройки яркости дисплея или каких-то еще задач, которым нужно знание освещенности грубо, с точностью до 30-40%. Скажем возможно уверенное различение дня и ночи.

    Дисплей

    В БК я использовал дисплей от Нокии 3510i. Единственным его плюсом является очень низкая цена в магазинах запчастей для сотовых. Я купил этот дисплей за 46 р. Минус – нет светодиодов подсветки, надо делать свои, небольшой размер, маленькая цветность – 4096 цветов и замороченное программирование обмена в режиме 4096 цветов. На текущий момент оптимальным видится использование готовых модулей типа такого. Этот модуль несколько дороже (около 300 р), но полный цвет, встроенная подсветка, простое программирование перевешивают незначительное увеличение цены. Я использовал этот модуль в радиометре и вполне доволен его качеством. О радиометре с Wi-Fi и Глонасс\GPS см. статью тут.

    Подсветку в дисплее Нокия 3510i я сделал в виде планки из двухстороннего фольгированного стеклотекстолита с равномерно размещенными тремя светодиодами. Высота планки около 3-х мм, ширина – соответствует ширине торца дисплея. На планке сделаны прорези в фольге и по месту напаяны светодиоды. Последовательно с каждым диодом включен резистор 20 ом, все секции соединены параллельно и последовательно включен еще один резистор для управления яркостью подсветки. Планка припаяна двумя медными проводами в торце дисплея. Подвеска подсветки на гибких медных проводах позволяют подобрать положение планки для достижения оптимальной яркости дисплея.

    Использованы светодиоды «BL-LS3014A0S1UW2C, Светодиод SMD 3014, Warm White, 120˚ 2300мКд», купленные в Чипе и Дипе по 26 р. С учетом светодиодов (3 использовал + 1 спалил) цена дисплея получается уже около 150 рублей, что всего лишь вдвое меньше готового.
    Дисплейный модуль смонтирован в крышке Куба и присоединен к основному модулю плоским шлейфом. Дополнительный провод – для подсоединения динамика, который есть на дисплее. Я его использовал в последний момент, когда остались и свободная нога на Ардуине и место в памяти для кода, генерирующего звуковые сигналы.

    image

    Странная форма дисплейного модуля получилась из-за ошибок проектирования. Я решил что отверстий по бокам Куба хватит для отвода тепла, но практически оказалось, что не хватает и необходимо сверху тоже сделать отверстия. Поскольку дисплейный модуль закрывал всю верхнюю крышку – пришлось удалить все возможное, чтобы дать максимальный проход для теплого воздуха. Ножницы по металлу и дремель прекрасно справились с задачей удаления ненужного :) Дополнительный провод МГТФ, обмотанный вокруг плоского шлейфа, добавлен в последний момент для подачи сигнала на пищалку.

    Встроенный дисплей БК, экран 1:

    image

    Слева направо, по строкам:
    Влажность, температура воздуха
    Уровень CO2, ppm, давление воздуха в миллиметрах рт ст, температура внутри БК
    Уровень CO текущий, измеренный, статус (N – нагрев, I – измерение)
    Уровень дыма, уровень горючих газов
    Уровень аммиака, паров этилового спирта

    Экран 2:

    image

    Слева направо, по строкам:
    Показания датчика магнитного поля по трем осям – X, Y, Z
    Показания датчика гравитации по трем осям – X, Y, Z
    Показания датчика ускорений поля по трем осям – X, Y, Z
    Уровень водорода, освещенность.

    Последнее значение в первой строке – фактически отклонение от направления на северный магнитный полюс 
    Вот любопытная фотография:

    image

    Как можно заметить – стрелка компаса и грань куба практически параллельны друг другу и направлению на магнитный север.
    Нуль оси Z – потому что датчик установлен вертикально и ось Z горизонтальна, ось Y вертикальна.

    Экран 3, температурные датчики:

    image

    К Кубу подключен шлейф из пяти датчиков Dallas 18B20, скетч при старте определяет число подключенных датчиков и опрашивает только их при дальнейшей работе.
    Вот видео запуска скетча, который плавно меняет яркость каждого их основных цветов дисплея при старте:



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

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

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

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

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

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

            Если пакеты теряются — то в дело вступает обработка в Visual Basic программе.
            Строка анализируется на формальную допустимость, неправильный пишутся в лог, правильные уходят в обработку.
            • НЛО прилетело и опубликовало эту надпись здесь
        +3
        Еще бы счётчик гейгера ибо компас на предпоследней фотографии может не хило фонить :)
          +3
          «их есть у меня» :)
          О радиометре с Wi-Fi и Глонасс\GPS см. статью тут.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                                        На хабре пока только подключение к экранчикам. Может быть я просто мыслю очень масштабно, но как есть.
                                        А чтобы проветривать помещение в котором живешь 2-3 часа в день не нужно быть семипядей во лбу.
                                          +1
                                          Практика показывает, что проветривать забывают, пока топор не повиснет в воздухе. У меня например управляющая машина приятным женским голосом говорит сыну студенту, что мол надо проветрить! Работает — проветривает.
                                            0
                                            Согласитесь, что сын студент был бы рад, чтобы по мимо женского голоса, был бы еще механизм(можно тоже женский), который открывал бы форточку за него?
                                              0
                                              (вспоминая свои студенческие годы) я был бы рад, факт :)))
                                          • НЛО прилетело и опубликовало эту надпись здесь
                                            0
                                            И да по поводу кислорода, растений в доме много?:)
                                              0
                                              Растения дома есть, но не сказать, чтобы много.

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                                                                  Не очень хотел писать сам, но ничего готового и близко не нашел.
                                                            0
                                                            С кукушкой.
                                                            +1
                                                            Наборы необходимых сенсоров для подобных девайсов на Амазоне

                                                            image

                                                            от 10-20 баксов на набор
                                                            ( в зависимости от комплектации и продавца).

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

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

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

                                                                        Вы — молодец!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                                                                                                        Я раздумывал о совмещении приборов, может в следующей версии сделаю универсальный измеритель всего :)
                                                                                                          0
                                                                                                          В том числе измеритель настроения на основе датчиков ускорения…
                                                                                                            0
                                                                                                            это будет не Белый Куб, а Белый Шар :))))
                                                                                                              0
                                                                                                              Шар даже лучше, не надо думать какой стороной его ставить.
                                                                                                            0
                                                                                                            Почитал — круто :)

                                                                                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                                        Самое читаемое