Съдържание:
- Консумативи
- Стъпка 1: Подгответе Arduino среда за ESP8266
- Стъпка 2: Включете необходимите библиотеки
- Стъпка 3: Персонализирайте стандартната примерна скица
- Стъпка 4: Качете уеб потребителския интерфейс
- Стъпка 5: Добавете сензора BME680
- Стъпка 6: Добавете сензора PMS5003
- Стъпка 7: Добавяне на някои мрежови функции
- Стъпка 8: Добавяне на малко регистриране
- Стъпка 9: Действия
- Стъпка 10: Снимки и конфигурационни файлове
Видео: Изградете вътрешен IoT сензор за качество на въздуха Не се изисква облак: 10 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Качеството на вътрешния или външния въздух зависи от много източници на замърсяване, а също и от времето.
Това устройство улавя някои от често срещаните и някои от най -интересните параметри, като използва 2 сензорни чипа.
- Температура
- Влажност
- Налягане
- Органичен газ
- Микрочастици
Използваните тук сензори са BME680 за получаване на стойности на температура, влажност, налягане и органичен газ и PMS5003 за получаване на плътност на микрочастиците.
С помощта на библиотеката HomeDing е лесно да се изгради устройство, което е свързано само с вашата домашна мрежа и може да бъде достигнато и контролирано от всеки браузър в мрежата. Той идва с подбор от елементи, които позволяват използването на най -често срещаните сензорни чипове, устройства и други услуги.
Той също така предлага цялостно решение за хостване на уеб страна вътре в устройството, вместо да използва облачно решение за показване на сензорните данни и взаимодействие с устройството.
Консумативи
Всичко, от което се нуждаете, за да изградите този проект, е платка, базирана на ESP8266, като платката nodemcu и набор от сензори за измерване на качеството на въздуха. Библиотеката HomeDing, използвана в този проект, поддържа някои от общите сензорни чипове за температура, влажност, налягане и качество. Тук се използва чипът BMP680.
- USB щепсел и микро-usb кабел за захранване.
- 1 nodemcu платка с процесор ESP8266.
- 1 BME680 сензорна платка.
- 1 PM2.5 лазерен сензор за въздушни частици тип PMS5003
Лесно е да смените BME680 сензора с DHT22 сензор, тъй като те също се поддържат от библиотеката сред много други.
Стъпка 1: Подгответе Arduino среда за ESP8266
- Инсталирайте последната версия на Arduino IDE (понастоящем версия 1.8.2).
- Използвайте Board Manager, за да инсталирате поддръжката за esp8266. Подробна инструкция можете да намерите тук:
- Настройте опциите на платката за NodeMCU 1.0 с 1MByte SPIFFS файлова система, както е показано на екрана
Стъпка 2: Включете необходимите библиотеки
Библиотеката HomeDing разчита на някои общи допълнителни библиотеки, за да работят сензорите и дисплеите.
Когато инсталирате библиотеката HomeDing, ще видите изскачащ прозорец с тези необходими библиотеки, които могат да бъдат инсталирани автоматично, както е показано на снимката и е лесно да ги инсталирате всички.
Понякога (с неизвестни причини) инсталирането на библиотеките се проваля, така че всички необходими библиотеки трябва да бъдат инсталирани ръчно.
Повече подробности за необходимите библиотеки могат да бъдат намерени на уебсайта за документация на адрес
Това е списъкът с настоящите необходими библиотеки:
- Adafruit NeoPixel
- LiquidCrystal_PCF8574.h
- ESP8266 и ESP32 Oled драйвер за SSD1306 дисплей
- Ротационен енкодер
- Библиотека DHT сензори за ESPx
- OneWire
Лазерният сензор за въздушни частици PMS5003 комуникира, използвайки сигнал от серийна линия от 9600 бода. Този сигнал се улавя с помощта на библиотеката SoftwareSerial, която се доставя с инсталирането на инструментите ESP8266. Уверете се, че нямате инсталирана по -стара версия като библиотека.
Стъпка 3: Персонализирайте стандартната примерна скица
Стандартният пример вече включва някои от по -често срещаните сензори като елементи, така че ще се изисква само някаква конфигурация.
Това се отнася за сензора BME680, който се поддържа от BME680 Element.
Сензорът PMS5003 е по -рядко срещан и трябва да бъде активиран чрез включване на PMS Element във фърмуера. Това става чрез дефиниране на #define HOMEDING_INCLUDE_PMS в раздела регистър на елементи на скицата
#define HOMEDING_INCLUDE_BME680#define HOMEDING_INCLUDE_PMS
За по -лесно добавяне на новото устройство към мрежата можете да добавите SSID и парола за вашия домашен WiFi във файла secrets.h до файла за скици standard.ino. Но можете също да използвате вградения WiFi Manager, за да добавите устройството към мрежата без тази твърдо кодирана конфигурация.
Сега всичко по изпълнението на скицата е направено и фърмуерът може да бъде компилиран и качен.
Стъпка 4: Качете уеб потребителския интерфейс
Стандартният пример идва с папка с данни, която съдържа всички файлове за уеб потребителския интерфейс.
Преди да качите тези файлове, може да искате да добавите файловете env.json и config.json, които можете да намерите в тази статия, защото това ще улесни нещата.
Съдържанието на тези файлове е това, което прави IoT устройството специално и се държи като сензор за качество на въздуха. Това е обяснено подробно в тази история.
Използвайте помощната програма за качване на файлове ESP8266 и качвайте всички файлове. За активиране на конфигурацията се нуждае от рестартиране.
Стъпка 5: Добавете сензора BME680
Сензорът BME680 комуникира с платката, използвайки I2C шината.
Тъй като това вероятно се споделя с други разширения, като други сензори или дисплеи, се конфигурира на ниво устройство в env.json заедно с мрежовото име на устройството. Ето извлечена извадка от настройки на устройството и I2C:
"устройство": {
"0": {"name": "airding", "description": "Sensor Quality Air Sensor",… "i2c-scl": "D2", "i2c-sda": "D1"}}
На чертежа можете да видите свързващите кабели към сензора: 3.3V = червено, GND = черно, SCL = жълто, SDA = синьо
Конфигурацията за BME680 може да се използва в config.json:
"bme680": {
"bd": {"address": "0x77", "readtime": "10s"}}
Ще добавим действията по -късно.
За да тествате настройката, просто използвайте браузър и отворете https://airding/board.htm и ще видите действителните стойности на сензора, показани и те ще се актуализират на всеки 10 секунди:
Стъпка 6: Добавете сензора PMS5003
Нямах сензор с подходящ за макет конектор, така че трябваше да отрежа един от конекторите на кабела, използвайки моето поялник, за да го прикрепя директно към платката nodemcu. Можете да го видите още на последните снимки.
Захранването на този сензор трябва да се вземе от Vin, който обикновено се захранва от USB шината. GND е същият, но също така се предлага до щифта Vin.
Данните от сензора се прехвърлят в стандартен сериен формат от 9600 бода, така че пиновете rx и tx и времето за четене трябва да бъдат конфигурирани:
"pms": {
"pm25": {"description": "pm25 сензор за частици", "pinrx": "D6", "pintx": "D5", "readtime": "10s"}}
Ще добавим действията по -късно.
За да тествате настройката отново, просто рестартирайте устройството и използвайте браузър и отворете https://airding/board.htm и ще видите действителната PM35 стойност на сензора, която се показва и те ще се актуализират на всеки 10 секунди, но тази стойност е нормално не се променя често.
Можете да получите по -високи стойности, като поставите свещ до сензора, тъй като свещта произвежда голяма част от тези частици.
Сега можете да поставите всичко в хубав корпус, защото всички останали конфигурации и дори актуализации на софтуера могат да се извършват от разстояние.
Стъпка 7: Добавяне на някои мрежови функции
Следният извлек от конфигурация в env.json се активира
- актуализиране на фърмуера по въздуха
- позволява откриване на мрежата с помощта на мрежовия протокол SSDP и извлича текущото време от ntp сървър.
{
… "Ota": {"0": {"port": 8266, "passwd": "123", "description": "Слушайте за" по въздуха "актуализации на OTA"}}, "ssdp": {"0 ": {" Производител ":" вашето име "}}," ntptime ": {" 0 ": {" readtime ":" 36h "," zone ": 2}}}
Трябва да настроите часовата зона за вашето местоположение. Ако се съмнявате, можете да използвате уебсайта https://www.timeanddate.com/, за да получите изместването от UTC/GMT. „2“е точно за лятното време на Германия.
Можете също да коригирате ota паролата, след като прочетете инструкциите относно режима на запазване в документацията на
След рестартиране може да намерите проветривото устройство в мрежата и след получаване на отговор от ntp сървъра е налично местното време.
Стъпка 8: Добавяне на малко регистриране
Само действителните стойности може да не дават достатъчно, така че могат да се използват още някои елементи.
За тази история елементът Log и NPTTime Element се използват за записване на историята на стойностите на сензора в лог файл и картата на уеб потребителския интерфейс за този елемент може да го покаже като графика.
Следната конфигурация създава двата елемента от дневник за газ и частици:
{
"log": {"pm": {"description": "Дневник на pm25", "filename": "/pmlog.txt", "filesize": "10000"}, "aq": {"description": " Дневник на качеството на газа "," име на файл ":" /aqlog.txt "," размер на файла ":" 10000 "}}}
Стъпка 9: Действия
Сега трябва да прехвърлим действителните стойности в лог елементите, като използваме действия. Действията използват URL нотация, за да предадат кай и стойност на целевия елемент. Много елементи поддържат излъчващи действия при определени събития, които се случват като улавяне на нова стойност на сензора.
Действията са конфигурирани в елемента, който излъчва действия Изискват се 2 записа:
- Събитието onvalue на pms/p25 изпраща действителната стойност на елемента log/pm, като използва действие за стойност.
- Събитието bme680/bd ongas изпраща действителната стойност до елемента log/pm, като използва действие за стойност.
{
"pms": {"pm25": {… "onvalue": "log/pm? value = $ v"}}, "bme680": {"bd": {… "ongas": "log/aq? value = $ v "}}}
Сега всички елементи са конфигурирани.
Стъпка 10: Снимки и конфигурационни файлове
Ето някои снимки на моя последен IoT сензор за качество на въздуха.
Конфигурационните файлове за изтегляне трябва да бъдат преименувани на *.json (no.txt), преди да бъдат качени.
Връзки и препратки
- Хранилище на изходния код на HomeDing:
- Документация:
- Стандартен пример:
- BME680 елемент:
- PMS елемент:
- Елемент на дневника:
- Елемент NtpTime:
Препоръчано:
AEROBOT сензор за качество на въздуха V1.0: 6 стъпки (със снимки)
AEROBOT сензор за качество на въздуха V1.0: Тази инструкция е за създаване на евтин и много точен сензор за качество на въздуха, наречен AEROBOT. Този проект показва температура, относителна влажност на въздуха, плътност на прах 2,5 и предупреждава за качеството на въздуха в околността. Той използва DHT11 sens
Сензор за качество на въздуха, използващ Arduino: 4 стъпки
Сензор за качество на въздуха с помощта на Arduino: В тази публикация ще научим как да изградим прост, но полезен сензор за качество на въздуха. Ще използваме сензора SGP30 заедно с Piksey Pico, въпреки че скицата ще работи с почти всяка съвместима с Arduino платка. Видеото по -горе ви говори чрез
Монитор за качество на въздуха с MQ135 и външен сензор за температура и влажност над MQTT: 4 стъпки
Монитор за качество на въздуха с MQ135 и външен сензор за температура и влажност над MQTT: Това е за тестови цели
Cubesat със сензор за качество на въздуха и Arduino: 4 стъпки
Cubesat със сензор за качество на въздуха и Arduino: Създатели на CubeSat: Reghan, Logan, Kate и Joan Въведение Чудили ли сте се някога как да създадете орбитален апарат на Марс за събиране на данни за атмосферата и качеството на въздуха на Марс? През тази година в нашия час по физика ние се научихме как да програмираме А
Сензор за качество на въздуха DIY + 3D отпечатан калъф: 6 стъпки
Сензор за качество на въздуха DIY + 3D отпечатан калъф: Това ръководство има цялата информация, от която се нуждаете, за да създадете много способен сензор с джобни размери