Ещё один способ определения качества воздуха на arduino — с передачей данных в сеть

Ещё один способ определения качества воздуха на arduino — с передачей данных в сеть

Меня кличут Евгений, и я — веб разработчик. Уже имеется десятки постов о разных метеостанциях на ардуино, но мне хотелось написать о том, что в 2016 году возможно скоро, легко и без знания электротехники собрать нужный датчик на ардуино, что легко может трудиться с вашей инфраструктурой, написанной на чём угодно.
Смотрите кроме этого: Трекер Fitti Guard скажет об страшном уровне загрязнения воздуха

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

И нет, это не пульсометр и не GPS — такие функции также имеется у Fitti Guard, и они уже также являются стандартом. Новое, о чем идет обращение — это измерение уровня гамма-излучения, измерение уровня УФ излучения, качества уровня воздуха и определение шума.

В случае если вам весьма интересно, для чего по большому счету измерять СО2, то нужные ссылки вы имеете возможность отыскать в конце поста.Итак, отечественная цель — сделать датчик температуры, влажности и СО2 с отображением данных на дисплей и отсылкой на веб сервер. Что нам для этого пригодится:Компоненты1. Ардуино. Я забрал Wemos D1, основанный на микроконтроллере ESP-8266EX.

Он совместим с ардуино, у него имеется собственный Wi-Fi, и стоит он 6.3$.как выглядит2. Датчик СО2. Ранее я пробовал простой MQ-135, но кроме того по окончании прожига, учёта и калибровки поправок на влажность и температуру погрешности был достаточно заметные — около 300 ppm. Так что для гарантии правильных измерений я забрал MH-Z19 — самый дорогой компонент схемы, 27$.как выглядит3. влажности и Датчик температуры. Применял обычный и любимый всеми DHT11 за 1.44$:как выглядит4.

I2C совместимый дисплей. Я забрал самый недорогой hd44780 за 3.06$.как выглядит5. Дабы это смотрелось не весьма плохо, и было перемещаемо, так же хорошо иметь корпус.

Дабы не заморачиваться с выпиливанием, я забрал корпус за 8$ с дырками и креплениям под usb и дисплей. Внимание — в корпусе должны быть дырки для проветривания, в противном случае он будет измерять лишь собственную особенную воздух.как выглядит6. Отладочный USB кабель и около 10 проводков. Цену учитывать не буду.Итоговая цена — 44 американского доллара, в случае если брать на алиэкспресс. Подобные устройства без возможности что-то передавать в сеть на данный момент стоят у китайцев в районе 100$.

Аналог от Tion, каковые числом делают собственные посты на гиктаймс с рекламой бризеров, пока в разработке (не имею к ним отношения, а жаль).Заказал, обождал месяц — приступаем к сборке! Нет ничего несложнее.Сборка1. Подключаем влажности и датчик температуры. Почва к почва, прах к праху, плюс к пяти вольтам на ардуино, цифровой выход к цифровому выходу (я применял D5).2. Подключаем датчик СО2. У него имеется большой выбор интерфейсов — PWM, аналоговый и цифровой вывод.

Единственный элемент пайки — нужно приделать ножки на необходимые выходы. Контролировал лично — трудятся все. Остановился на получении цифровых данных — совершенно верно, красиво, кратко, и без того же имеется возможность отсылать команды на калибровку, что мне но не потребовалось. Снова же — почва к почва, плюс к вторым пяти вольтам, TX и RX выводы на цифровые пины — в моём случае, на D6 и D7.3.

Подключаем дисплей. И опять — почва к почва, плюс на последний оставшийся выход на пять вольт, SDA на дисплее к SDA на ардуино, SCL так же к SCL.И… Всё! Возможно закручивать оказавшееся добро в корпус, если вы само собой разумеется не умудрились сделать какую-нибудь неточность при подключении. Обратите внимание, дабы у датчика СО2 не были прижаты воздухозаборники (либо как это корректнее назвать, белые такие штуки).

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

Воспользуйтесь мини программой из ссылок для сканирования адресов i2c и поменяйте на необходимый, в случае если сходу не получит. Перед сканированием отключите остальные устройства, в противном случае возможно взять большое количество мусора.Да, Wemos D1 есть совместимым с Arduino, и вам необходимо в Arduino IDE соответствующую борду. Подключаем стандартным маленьким кабелем по micro USB и заливаем прошивку.

Если вы всё сделали правильно, то устройство сперва попытается подключиться к Wi-Fi (пароль и сеть берётся из файла настроек), после этого ожидает некое время для “разогрева” датчиков, и наконец продемонстрирует эти на дисплее. В случае если по сети эти послать не окажется, то будет об этом информировать.

В случае если уровень CO2 допустимый, то по окончании загрузки подсветка выключится, и включится лишь в случае если вам пора открыть форточку.РезультатУ меня это выглядит так:С опаской, трафикА как же сеть?Сейчас по поводу работы с сетью. Не мудрствуя лукаво, я собираю данные в JSON и отсылаю его на сервер простым POST запросом, где несложный скрипт на PHP кладёт его в MySQL базу.

Потом возможно взглянуть, как изменялись ваши условия судьбы в течении дня при помощи PHP и Гугл Charts — вся серверная часть также имеется в ссылках.В итоге по низкой цене, с нулевыми знаниями в электротехнике и с минимальными затратами времени мы может взять приблизительно такие красивые графики:С опаской, трафикНе сообщу, что это прям срывает покрова с несложной истины, что “меньше народу — больше кислороду”, и что необходимо иногда проветривать, да и про это неоднократно говорили — среди них и про вред пластиковых окон. Но на этом примере ясно, как легко, скоро, надёжно и красиво возможно сделать фактически любой датчик, что поставляет эти для какой-то более сложной совокупности.Да, показания я сравнивал с вот китайским датчиком Green Life — показания фактически аналогичные, лишь мой мало стремительнее реагирует на трансформацию обстановки:как выглядитВыводыКонечно, очень многое возможно было бы сделать лучше. Навскидку я вижу следующие минусы:

  1. Дисплей с отключённой владеет низкой контрастностью. Лучше брать второй, разорившись ещё центов на 10.
  2. При включенной подсветке экран мало мерцает. Не критично, но по всей видимости не нравится ему, что от ардуины запитывается сходу три устройства на пять вольт. Возможно, верно было бы сделать раздельное питание.
  3. Само собой разумеется, всё это возможно красиво спаять, а не просто покидать в коробку, кое как соединив.
  4. влажности и Датчик температуры время от времени возвращает левые огромные значения. Их я , но по большому счету не очень приятно. Быть может, отражается неспециализированная запитка либо некачественное соединение.
  5. Само собой разумеется, возможно было бы накапливать статистику и иногда её отсылать (и накапливать при неточностей) — никому не требуется знать собственное уровень качества воздуха с точностью до 5 секунд.
  6. Дабы не вбивать эти вайфайной точки при компиляции, возможно было бы сделать, дабы , если коннект не удался, устройство переходило в режим вайфай точки (да, Wemos это может), подцепившись к которой, возможно его перенастроить — а также ввести новое пароль и имя сети.
  7. Wemos D1 всем оптимален, но у меня время от времени вылетает (раз в 2-3 дня) по невыясненым обстоятельствам, и сам перегружается лишь через пара часов. Наподобие как не мой софт кривой, легко борда не весьма стабильная. Возможно с этим бороться подключением устройства к какой-нибудь ардуино нано, которая его перезапускает при необходимости, либо железку с таймером, которая будет раз в полчаса перезапускать устройство (благо у него имеется вход RESET).
  8. При возврате и выдёргивании обратно питания, датчик СО2 сходит с ума, что лечится перезагрузкой. Я это решил несложным методом — при накоплении некоего количества постоянных неточностей, устройство само себя перезапускает, по окончании чего всё приходит в норму. Возможно, возможно было бы решить это более верным методом на уровне железа.
  9. Температура измеряется с точностью до двух градусов, влажность — с точностью до десяти процентов. В бытовых целях достаточно, а для какого-либо другого применения пригодится датчик поточнее.
  10. В случае если вам требуется послать один маленький пакет данных, то библиотека для работы с JSON это убийство воробьёв из пушки. Значительно несложнее собрать JSON ручками, либо по большому счету передавать параметры при помощи GET/POST, что я сначала и делал. Но при наличии огромного количества оперативки на Wemos — из-за чего нет, так прекраснее. Но при портировании кода на маломощную ардуину вероятнее нужно будет переписать это.

СсылкиОсновное

  1. Код для ардуино
  2. Серверная часть
  3. взглянуть на воздушное пространство в моём офисе возможно тут
  4. Забрать меня на работу (да, я её ищу) возможно тут

Нужное

  1. Если вы ничего не понимаете про СО2 — geektimes.ru/company/tion/blog/269134
  2. О wemos d1
  3. Спецификации датчика MH-Z19
  4. Хорошая статья, приблизительно про то же самое, но без сети, с дисплеем от телефона и на Arduino nano
  5. Сканирование устройств на i2c
  6. Будущий аналог датчика от Tion (не имею к нему отношения)
  7. Ответ для перезапуска ESP8266 на уровне железа
  8. А тут студенты МАМИ занимаются всякой хорошей элетроникой. Кстати, им требуются учители. Не так долго осталось ждать буду в том месте вести лекции.

Использованные библиотеки

  1. Библиотека для работы с дисплеем
  2. Библиотека для JSON
  3. Библиотека для работы с семейством сенсоров DHT

Случайная статья:

Говорящий датчик качества воздуха MQ-2 на Arduino


Похожие статьи:

Комментирование и размещение ссылок запрещено.

Обсуждение закрыто.