Главная » Хабрахабр » [Из песочницы] Прибор для измерения СО2

[Из песочницы] Прибор для измерения СО2

Однажды, сидя на работе и чувствуя некомфортность в дыхании, решил собрать измеритель СО2.
Изучив несколько статей на эту тему сформулировал требования к прибору.

  1. Прибор должен быть с экраном, так как это должен быть переносной девайс.
  2. Прибор не должен зависеть от интернета по той же причине.
  3. Прибор должен уметь логировать значения во времени, которые удобно в любой момент просматривать. А это означает, что он должен иметь собственный веб сервер и свою вайфай точку.

Последний пункт неоднозначно привел к вводу, что прибор будет на ESP. Так как большой производительности мне не нужно, то выбираю дешевый вариант — ESP8266, 07 которая. Дома как раз завалялся экземпляр с 1 мб памятью.

Заказал недостающие запчасти на алиэкспресс, а ими были:

  1. Oled display 96x64 SSD1331.
  2. MH-Z19B CO2 sensor.
  3. DS1307 RTC module.

По получении деталей приступил к разработке схемы с помощью KiCad.

Сразу скажу — все исходники будут в конце статьи и собрав по схемам, залив прошивку, должны получить полностью рабочий прибор.

Схема вышла такой:

image

Модули решил делать съемными, поэтому на схеме самих модулей нет, а только разъёмы под них.
Развел плату:

image

После изготовления печатной платы и пайки вышло следующее:

image

image

В сборе и в работе выглядит так:

image

Теперь о программной части.

Код писался в Arduine IDE, так как я не программист, и разбираться с библиотеками в визуал студии или еще где — не хотелось.

Кто захочет — запросто разберется в скетче.
А вот реализовать просмотр и вывод статистики по времени получилось не так просто. В принципе, код для модулей в приборе я использовал из примеров библиотек и из просторов интернета, так что на нем останавливаться не буду.

Хотелось так: с мобильного телефона или ноутбука как можно проще подключится к прибору, через HTML броузер зайти на страничку с данными и просмотреть из в виде графика по времени.

Первое — на ESP создал точку доступа без паролей и аутентификаций.

Второе — создал массив данных, в которые записываю данные СО2 и время съёма данных (для этого, собственно, в прибор устанавливал часы.

Третье — настроил HTTP сервер и несколько HTML страничек, на одной из которых вывожу данные.

Четвертое — Java Script по отрисовке графика на страничке записал в файловую систему ESP.

Так как вывод графика оказался возможным только с помощью Java Script, то, после долгих экспериментов, четвертый пункт реализовал так: самый простой скрипт Chart.js в виде файла записал в файловую систему SPIFFS ESP, который, страничка, отображающая результат, и запрашивает.

В общем, включив прибор, на дисплее каждые 10 -15 секунд отображаются новые показания датчика, а каждые 8 минут текущие показания датчика записываются в массив данных.

10. Спустя какое то время, захотев проанализировать показания во времени, подключаетесь через телефон или ноутбук к вайфай точке «СО2», после подключения стартуете интернет браузер и в строке поиска вводите IP адрес «10. 1». 10. Попадаете на страничку:

image

Тут кнопка перехода на страницу просмотра данных и кнопка перехода на страницу задания времени (так как время иногда сбивается, и точно сбивается при замене батарейки).

Страничка с выводом данных выглядит так:

image

Архив с исходниками тут.

В архиве лежат скетч, Java Script, Kicad проект, печатка в фотошоповском формате в разрешении 600dpi, на случай если с Kicad возится не захочется.

Как настроить Adruino ide для прошивки ESP и как заливать файлы в SPIFS можно легко найти в интернете.

Так же, я на плате линии данных подписал наоборот, чтобы TX с прошивальщика подключить к TX на плате и т.д. Для прошивки ESP нужно будет отсоединять датчик СО2, так как он висит на TX0 и RX0, которые нужны для прошивки.


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

[Перевод] Как работают браузеры — введение в безопасность веб-приложений

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

[Перевод] Как мы две недели охотились на баг NFS в ядре Linux

Подробное описание поисков бага из задачи GitLab, которые привели к патчу для ядра Linux Они пытались клонировать некоторые репозитории через Git, и вдруг появлялось непонятное сообщение об устаревшем файле: Stale file error. 14 сентября служба поддержки GitLab сообщила о критической ...