
Мазмұны:
- Жабдықтар
- 1 -қадам: Arduino ортасын ESP8266 үшін дайындаңыз
- 2 -қадам: Қажетті кітапханаларды қосыңыз
- 3 -қадам: Стандартты мысал эскизін теңшеңіз
- 4 -қадам: Интернеттің интерфейсін жүктеңіз
- 5 -қадам: BME680 датчигін қосыңыз
- 6 -қадам: PMS5003 датчигін қосыңыз
- 7 -қадам: Желінің кейбір мүмкіндіктерін қосу
- 8 -қадам: Кейбір журналдарды қосу
- 9 -қадам: Әрекеттер
- 10 -қадам: суреттер мен конфигурация файлдары
2025 Автор: John Day | [email protected]. Соңғы өзгертілген: 2025-01-23 14:51




Ішкі немесе сыртқы ауаның сапасы көптеген ластану көздеріне, сондай -ақ ауа райына байланысты.
Бұл құрылғы 2 сенсорлық чипті қолдана отырып, кейбір қарапайым және ең қызықты параметрлерді түсіреді.
- Температура
- Ылғалдылық
- Қысым
- Органикалық газ
- Микробөлшектер
Бұл жерде температураны, ылғалдылықты, қысымды және органикалық газды өлшеуге арналған BME680 датчиктері және микро бөлшектердің тығыздығын алу үшін PMS5003 қолданылады.
HomeDing кітапханасын пайдалану арқылы үйдегі желіге қосылған және оны желідегі кез келген шолғыш арқылы басқаруға болатын құрылғыны құру оңай. Ол ең көп таралған сенсорлық чиптерді, құрылғыларды және басқа қызметтерді пайдалануға мүмкіндік беретін элементтердің жиынтығымен бірге келеді.
Ол сонымен қатар сенсорлық мәліметтерді көрсету және құрылғымен өзара әрекеттесу үшін бұлтқа негізделген шешімді пайдаланудың орнына, құрылғы ішінде веб -жағын орналастырудың толық шешімін ұсынады.
Жабдықтар
Бұл жобаны құру үшін сізге nodemcu тақтасы мен ауа сапасын өлшейтін датчиктер жиынтығы сияқты ESP8266 негізіндегі тақта қажет. Бұл жобада қолданылатын HomeDing кітапханасы температура, ылғалдылық, қысым мен сапаға арналған сенсорлық микросхемалардың кейбірін қолдайды. Мұнда BMP680 чипі қолданылады.
- USB қосқышы мен қуат көзіне арналған микро-USB кабелі.
- ESP8266 процессоры бар 1 nodemcu тақтасы.
- 1 BME680 сенсорлық ажырату тақтасы.
- PMS5003 типті 1 PM2.5 ауа бөлшектерінің лазерлік датчигі
BME680 сенсорын DHT22 сенсорымен ауыстыру оңай, себебі оларды кітапхана көптеген басқа қолдау көрсетеді.
1 -қадам: Arduino ортасын ESP8266 үшін дайындаңыз

- Arduino IDE соңғы нұсқасын орнатыңыз (қазіргі уақытта 1.8.2 нұсқасы).
- Esp8266 қолдауын орнату үшін Board Manager бағдарламасын қолданыңыз. Толық нұсқаулықты мына жерден табуға болады:
- Скриншотта көрсетілгендей 1MByte SPIFFS файлдық жүйесі бар NodeMCU 1.0 тақтасының параметрлерін орнатыңыз.
2 -қадам: Қажетті кітапханаларды қосыңыз

HomeDing кітапханасы сенсорлар мен дисплейлердің жұмыс істеуі үшін кейбір қосымша кітапханаларға сүйенеді.
HomeDing кітапханасын орнатқан кезде сіз суретте көрсетілген автоматты түрде орнатылатын осы қажетті кітапханалары бар қалқымалы терезені көресіз және олардың барлығын орнату оңай.
Кейде (белгісіз себептермен) кітапханаларды орнату сәтсіз аяқталады, сондықтан барлық қажетті кітапханаларды қолмен орнату қажет.
Қажетті кітапханалар туралы толығырақ https://homeding.github.io/#page=/elements.md құжаттама веб -сайтынан табуға болады.
Бұл қазіргі қажет кітапханалардың тізімі:
- Adafruit NeoPixel
- LiquidCrystal_PCF8574.h
- SSD1306 дисплейі үшін ESP8266 және ESP32 Oled драйвері
- RotaryEncoder
- ESPx үшін DHT сенсорлық кітапханасы
- OneWire
PMS5003 ауа бөлшектерінің лазерлік датчигі 9600 Baud сериялық желі сигналының көмегімен байланысады. Бұл сигнал ESP8266 құралдарын орнатумен бірге келетін SoftwareSerial кітапханасының көмегімен түсіріледі. Кітапхана ретінде ескі нұсқасы орнатылмағанына көз жеткізіңіз.
3 -қадам: Стандартты мысал эскизін теңшеңіз

Стандартты мысалға кейбір кең таралған сенсорлар кіреді, сондықтан кейбір конфигурация қажет болады.
Бұл BME680 элементі қолдайтын BME680 сенсорына қатысты.
PMS5003 сенсоры сирек кездеседі және оны PMS элементін микробағдарламаға қосу арқылы белсендіру қажет. Бұл эскиздің элементтер тізілімі бөлімінде HOMEDING_INCLUDE_PMS анықтау арқылы анықталады.
#HOMEDING_INCLUDE_BME680 анықтаңыз#HOMEDING_INCLUDE_PMS анықтаңыз
Жаңа құрылғыны желіге қосудың қарапайымдылығы үшін SSD мен үй WiFi құпия сөзін standard.ino нобай файлының жанындағы secret.h файлына қосуға болады. Сонымен қатар, құрылғыны желіге осы қатаң кодталған конфигурациясыз қосу үшін кіріктірілген WiFi менеджерін пайдалануға болады.
Енді эскизді іске асыруға қатысты барлық нәрсе жасалды, микробағдарламаны құрастыруға және жүктеуге болады.
4 -қадам: Интернеттің интерфейсін жүктеңіз
Стандартты мысал интерфейс интерфейсіне арналған барлық файлдарды қамтитын деректер қалтасымен бірге келеді.
Бұл файлдарды жүктемес бұрын сіз осы мақаладан таба алатын env.json және config.json файлдарын қосқыңыз келуі мүмкін, себебі бұл жұмысты жеңілдетеді.
Бұл файлдардың мазмұны IoT құрылғысын ауа сапасының сенсоры ретінде ерекше етеді. Бұл әңгімеде егжей -тегжейлі түсіндірілген.
ESP8266 файлды жүктеу утилитасын қолданыңыз және барлық файлдарды жүктеңіз. Конфигурацияны іске қосу үшін оны қайта жүктеу қажет.
5 -қадам: BME680 датчигін қосыңыз



BME680 сенсоры I2C шинасы арқылы тақтамен байланысады.
Бұл басқа датчиктер немесе дисплейлер сияқты басқа кеңейтімдермен бөлісілетіндіктен, env.json ішіндегі құрылғы деңгейінде құрылғының желілік атауымен бірге конфигурацияланған. Міне, құрылғы мен I2C параметрлерінің шығарылған үлгісі:
«құрылғы»: {
«0»: {«name»: «airding», «description»: «Ауа сапасының сенсоры»,… «i2c-scl»: «D2», «i2c-sda»: «D1»}}
Тақтада сенсорға қосылатын кабельдерді көруге болады: 3.3V = қызыл, GND = қара, SCL = сары, SDA = көк
BME680 конфигурациясын config.json ішінде қолдануға болады:
«bme680»: {
«bd»: {«адрес»: «0x77», «оқу уақыты»: «10с»}}
Әрекеттерді кейін қосамыз.
Орнатуды тексеру үшін браузерді қолданыңыз және https://airding/board.htm ашыңыз, сіз сенсордың нақты мәндерін көресіз және олар әр 10 секунд сайын жаңартылып отырады:
6 -қадам: PMS5003 датчигін қосыңыз

Менде тақтаға ыңғайлы қосқышы бар сенсор жоқ, сондықтан мен оны дәнекерлеу үтігімен nodemcu тақтасына тікелей бекіту үшін кабельдегі қосқыштардың бірін кесуге тура келді. Сіз мұны соңғы суреттерден көре аласыз.
Бұл сенсордың қуаты әдетте USB шинасы арқылы жұмыс істейтін Виннен алынуы керек. GND бірдей, бірақ сонымен бірге Vin түйреуішінің жанында қол жетімді.
Сенсордан алынған деректер стандартты 9600 Baud сериялық форматында тасымалданады, сондықтан rx және tx түйреуіштері мен оқу уақытын конфигурациялау қажет:
«pms»: {
«pm25»: {«description»: «pm25 бөлшектер сенсоры», «pinrx»: «D6», «pintx»: «D5», «оқу уақыты»: «10s»}}
Әрекеттерді кейін қосамыз.
Орнатуды қайта тексеру үшін құрылғыны қайта жүктеңіз және шолғышты қолданыңыз және https://airding/board.htm ашыңыз, сіз сенсордың нақты pm35 мәнін көресіз және олар әр 10 секунд сайын жаңартылып отырады, бірақ бұл мән әдетте жиі өзгермейді.
Сенсордың жанына шамды қою арқылы жоғары мәндерді алуға болады, себебі шам осы бөлшектердің көп бөлігін шығарады.
Енді сіз бәрін жақсы корпуста орналастыра аласыз, себебі барлық басқа конфигурациялар мен тіпті бағдарламалық жасақтаманы қашықтан жасауға болады.
7 -қадам: Желінің кейбір мүмкіндіктерін қосу
Env.json ішіндегі келесі конфигурация үзіндісі қосылуда
- микробағдарламаны ауада жаңарту
- SSDP желілік протоколы арқылы желіні анықтауға мүмкіндік береді және ntp серверінен ағымдағы уақытты шығарады.
{
… «Ota»: {«0»: {«порт»: 8266, «passwd»: «123», «description»: «OTA Жаңартуларын эфирде тыңдаңыз»}}, «ssdp»: {«0 «: {» Өндіруші «:» сіздің атыңыз «}},» ntptime «: {» 0 «: {» оқу уақыты «:» 36 сағ «,» аймақ «: 2}}}
Уақыт белдеуін орналасқан жеріңізге қарай реттеуіңіз керек. Егер сіз күмәндансаңыз, https://www.timeanddate.com/ веб -сайтын UTC/GMT бойынша есепке алу үшін пайдалана аласыз. «2» Германия үшін жаз мезгіліне сәйкес келеді.
Сіз сонымен қатар https://homeding.github.io/index.htm#page=/savemo… құжаттамасындағы сақтау режиміне қатысты нұсқауларды оқығаннан кейін ota құпия сөзін реттей аласыз.
Қайта іске қосқаннан кейін сіз желдеткішті таба аласыз және ntp серверінен жауап алғаннан кейін жергілікті уақыт бар.
8 -қадам: Кейбір журналдарды қосу
Тек нақты мәндер жеткіліксіз болуы мүмкін, сондықтан басқа элементтерді қолдануға болады.
Бұл оқиға үшін журнал элементі мен NPTTime элементі сенсор мәндерінің тарихын журнал файлына жазу үшін қолданылады және бұл элементтің Web UI картасы оны график түрінде көрсете алады.
Келесі конфигурация газ мен бөлшектер үшін 2 журнал элементтерін жасайды:
{
«log»: {«pm»: {«description»: «pm25 журналы», «файл атауы»: «/pmlog.txt», «filesize»: «10000»}, «aq»: {«description»: « Газ сапасының журналы «,» файл атауы «:» /aqlog.txt «,» файл өлшемі «:» 10000 «}}}
9 -қадам: Әрекеттер

Енді біз нақты мәндерді журнал элементтеріне әрекеттерді қолдану арқылы беруіміз керек. Әрекеттер мақсатты элементке kay мен мәнді беру үшін URL белгісін қолданады. Көптеген элементтер сенсордың жаңа мәнін алу сияқты белгілі бір оқиғаларға әсер етуді қолдайды.
Әрекеттер әрекетті шығаратын элементте конфигурацияланған, 2 енгізу қажет:
- Pms/p25 onvalue оқиғасы мән әрекетін қолдана отырып, 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 элементі:
Ұсынылған:
RaspberryPi 4: 15 қадамына негізделген арзан IoT ауа сапасының мониторы (суреттермен)

RaspberryPi 4 негізіндегі арзан IoT ауа сапасының мониторы: Сантьяго, Чили қыста экологиялық төтенше жағдай кезінде әлемдегі ең әдемі елдердің бірінде өмір сүру мәртебесіне ие, бірақ, өкінішке орай, бұл раушан гүлдерінің бәрі емес. Қыс мезгілінде Чили ауаның ластануынан көп зардап шегеді
Смартфонға қарапайым бағдарлама жасаңыз (кодтау қажет емес): 10 қадам

Смартфонға қарапайым бағдарлама жасаңыз (кодтаудың қажеті жоқ): ЖАҢАРТУ: Бұл әдіс ескірген, енді қосымшаны жасаудың басқа әдістері бар .. бұл енді жұмыс істемеуі мүмкін. Менің бірінші жарияланған қосымшамды Android қосымшасында жүктеуге болады. Мұнда базар. Төменде іс жүзінде кез келгені туралы қысқаша нұсқаулық берілген
Raspberry 1 B көп тапсырмалы тапсырмасы (Жеке бұлт + ауа райы станциясы): 4 қадам

Көп тапсырмалы Raspberry 1 B (Жеке бұлт + ауа райы станциясы): Біраз уақыт бұрын мен жаңа нұсқаны сатып алғаннан кейін RPiB қосалқы запасы бар екенін есіме алдым. Сақтық көшірме файлдарын сақтау кезінде құпиялылық туралы ойлана отырып, мен өзімнің бұлтты серверімді құруды шештім. Жақсы нәтижеге риза, бірақ R -дан потенциалды жоғалтуға қанағаттанбады
Alexa дағдыларын Cloud9 көмегімен жасаңыз- несиелік карта немесе жабдық қажет емес: 7 қадам (суреттермен)

Alexa дағдыларын Cloud9 көмегімен жасаңыз- несиелік карта немесе аппараттық құрал қажет емес: Сәлеметсіз бе, мен бүгін сізге Cloud9 көмегімен Amazon Alexa-да өз дағдыларыңызды қалай жасау керектігін көрсетемін. Білмейтіндер үшін Cloud9 - бұл әр түрлі тілдерді қолдайтын онлайн IDE және ол жүз пайыз ақысыз - несие картасы қажет емес
Қажет емес заттардан кішкентай динамикалық шамды 2 қадаммен жасаңыз

Қажет емес заттардан кішкентай Динамо фонарикін жасаңыз: Қоқыстың күші! Мұнда таспа ойнатқышы/ немесе CD ойнатқышы мен светодиодтан жасалған керемет нәрсе бар. Кез келген ескі жарық диоды жұмыс істейді, бірақ егер сіз 5 мм ақ түсті шамдарды тапсаңыз, ол әлдеқайда жарқын болады. Шамамен барлық светодиодтар бақытты (және мәңгі) қосылады