
Мазмұны:
- 1 -қадам: Дизайн туралы мәліметтер
- 2 -қадам: сенсорлар
- 3 -қадам: сенсорлық станциялар
- 4-қадам: ESP-01 сенсорлық станциясы
- 5 -қадам: ESP 12E сериялық WIFI жиынтығының сенсорлық станциясы
- 6 -қадам: D1 шағын сенсорлық станциялар
- 7 -қадам: шлюз және веб -сервер
- 8 -қадам: Бағдарламалық қамтамасыз ету
- 9 -қадам: Нәтижелер
2025 Автор: John Day | [email protected]. Соңғы өзгертілген: 2025-01-23 14:51

Мен ұзақ уақыт бойы үйдегі метеорологиялық станцияға ие болғым келді және оны отбасы мүшелері температура мен ылғалдылыққа оңай тексере алады. Сыртқы жағдайды бақылаудан басқа, мен үйдегі арнайы бөлмелер мен гараж шеберханасын бақылағым келді. Бұл бізге үйді желдетуге немесе ылғалдандырғышты іске қосуға жақсы уақыт болғанда хабар береді (қыста мұнда жаңбыр көп жауады). Мен жасаған-бұл ESP-Now негізіндегі сенсорлық жүйе, ол кез келген адам компьютерден немесе телефоннан тексере алатын жергілікті веб-серверге есеп береді. Телефон үшін мен мұны жеңілдету үшін қарапайым Android қосымшасы ретінде жаздым.
1 -қадам: Дизайн туралы мәліметтер

Мен әр түрлі сенсорлық станцияларға ие болғым келді және оларды ақпаратты сақтайтын бір негізгі станцияға (немесе хабқа) хабарлауды ұсындым. Әр түрлі идеяларды қолдана отырып, мен Espressif ESP-Now протоколын қолдануды шештім, себебі ол құрылғылар арасында тікелей байланыс орнатуға мүмкіндік берді. Сіз ESP-Now туралы аз оқи аласыз және бұл GitHub репо менің шабытымның керемет бөлігі болды.
Бірінші суретте жүйенің орналасуы көрсетілген. Әр сенсор өз өлшемдерін шлюздік құрылғыға хабарлайды, ол қатаң сымды сериялық қосылым арқылы деректерді негізгі серверге жібереді. Мұның себебі-ESP-Now протоколы WIFI қосылымымен бір уақытта белсенді бола алмайды. Пайдаланушы веб-бетке кіруі үшін WIFI үнемі қосылып тұруы керек еді, содан кейін бір құрылғыда ESP-Now байланысын пайдалану мүмкін болмайды. Шлюз құрылғысы Espressif негізіндегі құрылғы болуы керек (ESP-Now мүмкіндігі бар), негізгі сервер веб-бетті іске қосатын кез келген құрылғы болуы мүмкін.
Кейбір сенсорлық станциялар батареяларды (немесе күн батареяларымен) зарядтайды, ал басқаларында желілік қуат болады. Дегенмен, мен барлығын мүмкіндігінше аз қуатты пайдаланғым келді, бұл жерде ESP8266 мен ESP32 құрылғыларында қол жетімді «терең ұйқы» мүмкіндігі өте пайдалы. Сенсорлық станциялар мезгіл -мезгіл оянады, өлшеулер жүргізеді және оларды шлюз құрылғысына жібереді және алдын ала бағдарламаланған уақыт ішінде қайтадан ұйқыға кетеді. Олардың әр 5 минут сайын шамамен 300 мс болатын ояту уақыты (менің жағдайда) олардың қуат тұтынуын едәуір төмендетеді.
2 -қадам: сенсорлар


Қоршаған орта параметрлерін өлшеу үшін әр түрлі сенсорлар бар. Мен тек I2C байланыс қабілетті сенсорларымен жұмыс жасауды шештім, себебі ол тез өлшеуге мүмкіндік берді және менде бар кез келген құрылғыларда жұмыс істейтін болды. IC-мен тікелей жұмыс жасаудан гөрі, мен конструкцияларымды жеңілдету үшін бірдей кірістірілген модульдерді қолдануға дайын іздедім. Мен тек температура мен ылғалдылықты өлшегім келді, сондықтан SI7021 модулін таңдадым. Кейін мен қысымды өлшейтін сенсорды алғым келді және BME280 сенсорлық модульдерін қолдануға шешім қабылдадым. Кейбір жерлерде мен жарық деңгейін бақылағым келді, ал BH1750 модулі бұл үшін бөлек сенсорлық модуль ретінде қолайлы болды. Мен сенсорлық модульдерді ebay -дан сатып алдым, бұл мен алған модульдер:
- BME280 (GY-BMP/E280), температураны, ылғалдылық пен қысымды өлшейді
- SI7021 (GY-21), температура мен ылғалдылықты өлшейді
- BH1750 (GY-302), жарықты өлшейді
GY-BMP/E280 ПХД модульдерінің екі стилі бар. Екеуі де 1 -ден 4 -ке дейінгі түйреуіштер үшін бір түйреуішті бөліседі. Бір модульде CSB және SDO қосымша екі түйреуіш бар. Бұл екі түйреуіш модульдің 4 істікшелі нұсқасына алдын ала қосылған. SDO түйреуішінің деңгейі I2C адресін анықтайды (Ground = әдепкі 0x76, VCC = 0x77). I2C интерфейсін таңдау үшін CSB пині VCC -ке қосылған болуы керек. Маған 4 істікшелі модуль ұнайды, себебі ол менің мақсатым бойынша пайдалануға дайын.
Жалпы алғанда, бұл модульдерді пайдалану өте ыңғайлы, себебі оларда байланыс желілері үшін тартылатын резисторлар орнатылған және олардың барлығы 3.3В-да жұмыс істейді, сондықтан олар ESP8266 негізіндегі тақталармен үйлесімді. Назар аударыңыз, бұл IC сенсорларындағы түйреуіштер әдетте 5В төзімді емес, сондықтан оларды Arduino Uno сияқты нәрсемен тікелей байланыстыру оларды біржолата зақымдауы мүмкін.
3 -қадам: сенсорлық станциялар

Жоғарыда айтылғандай, сенсорлық станциялардың барлығы ESP-Now байланыс хаттамасын қолданатын Espressif құрылғылары болады. Алдыңғы жобалар мен эксперименттерден бастап менде алғашқы сынақтарды өткізуге және оларды соңғы дизайнға енгізуге арналған бірнеше түрлі құрылғылар болды. Менің қолымда келесі құрылғылар болды:
- екі ESP-01 модулі
- екі Wemos D1 шағын даму тақтасы
- бір Lolin ESP8266 даму тақтасы
- бір ESP12E сериялық WIFI жиынтығы тақтасы
- бір GOOUUU ESP32 тақтасы (38 істікшелі даму тақтасы)
Менде Wemos D1 R2 әзірлеу тақтасы да болды, бірақ онымен ұйқыдан оянуға мүмкіндік бермейтін мәселелер болды, ал қақпаға арналған құрылғы ретінде ол құлап, дұрыс қайта қосылмады. Мен оны кейін жөндедім және ол Garage Door opener жобасының бөлігі болды. «Терең ұйқы» жұмыс істеуі үшін ESP8266 RST істікшесі GPIO16 істігіне қосылуы керек, сондықтан ұйқы таймері құрылғыны оятуы мүмкін. Ең дұрысы, бұл қосылым Schottky диодымен (GPIO16 катодына дейін) жасалуы керек, осылайша бағдарламалау кезінде USB-TLL байланысы арқылы қолмен қалпына келтіру әлі де жұмыс істейді. Дегенмен, төмен мәнді (300-Ом Ом) резистор немесе тіпті тікелей сымды қосылым сәтті болуы мүмкін.
ESP-01 модульдері GPIO16 түйреуішіне оңай қол жеткізуге мүмкіндік бермейді және оны IC-ге тікелей дәнекерлеу керек. Бұл қарапайым тапсырма емес, мен оны бәріне ұсынбаймын. ESP12E сериялы WIFI жиынтығы тақтасы біршама жаңашылдық болды және менің мақсатыма пайдалы болу үшін бірнеше өзгерістерді қажет етті. Ең қарапайым тақталар Wemos D1 шағын типті тақталар мен Lolin тақталары болды. ESP32 құрылғылары терең ұйқының жұмыс істеуі үшін ешқандай өзгерістерді қажет етпейді. Андреас Шписсте бұл туралы жақсы нұсқаулық бар.
4-қадам: ESP-01 сенсорлық станциясы



Барлық сенсорлық станцияларда сенсорлық модульдер шаңның жиналуын азайту үшін тігінен орнатылады. Барлығы қоршауда емес, мен оларды қоршауға орнатпауым мүмкін. Мұның себебі - құрылғылар жеткілікті желдетілмеген кезде жылынып, температура мен ылғалдылық көрсеткіштеріне әсер етуі мүмкін.
ESP-01 тақталары өте ықшам және олармен жұмыс істеу үшін цифрлық IO түйреуіштері аз, бірақ бұл I2C интерфейсі үшін жеткілікті. Тақталар «терең ұйқының» жұмыс істеуіне мүмкіндік беру үшін күрделі өзгертуді қажет етеді. Көрсетілген суретте сым бұрыштық түйреуіштен (GPIO16) жоғарғы жағындағы RST түйреуішіне дейін дәнекерленген. Мен қолданған сым диаметрі 0,1 мм оқшауланған «жөндеу» сымы. Оқшаулағыш жабын қызған кезде еріп кетеді, сондықтан оны ПХД -дағы іздерді жөндеуге дәнекерлеуге болады және сым басқа компоненттермен байланысатын шорт жасау туралы алаңдамайды. Оның өлшемі жұмыс істеуді қиындатады, мен бұл сымды микроскоп астында (әуесқой/мөртабан жинаушылардың стилі) дәнекерледім. Оң жақтағы тақырыпта 0,1 дюймдік (2,54 мм) түйреуіш аралығы бар екенін есте сақтаңыз. Мұнда Schottky диодын орнату оңай болмас еді, сондықтан мен тек сымды ғана сынап көруді шештім, екі қондырғы да жұмыс істеп тұр. бір ай ешқандай проблемасыз.
Модульдер мен жасаған екі прототиптік тақтаға орнатылды. Біреуі (№1) - бұл I2C модульдерін орнатуға және тексеруге мүмкіндік беретін бағдарламашылар тақтасы, ал екіншісі (No2) I2C құрылғыларына арналған әзірлеу/сынақ тақтасы. Бірінші тақта үшін мен ескі USB еркек қосқышы мен кішкене ПХД -ны біріктіріп, құрылғыны тікелей USB қабырға адаптерінен қуаттандырдым. Басқа қондырғыда бұрандалы терминалдың жоғарғы бөлігіне сәйкес келу үшін өзгертілген тұрақты ток ұясы бар және ол қабырға адаптері арқылы қуатталады.
Схема олардың қалай қосылғанын және бағдарламашы қалай жұмыс істейтінін көрсетеді. Менде басқа ESP-01 модульдері жоқ, сондықтан маған бағдарламашы қажет емес. Болашақта мен оларға ПХД шығаратын шығармын. Бұл тақталардың екеуінде де SI7021 сенсорлық модулі орнатылған, себебі мен ондағы қысымды өлшеуге қызығушылық танытпадым.
5 -қадам: ESP 12E сериялық WIFI жиынтығының сенсорлық станциясы


ESP12E сериялық WIFI жиынтығы тақтасы бұл құрылғыда не істеуге болатынын көрсету үшін әзірленуге арналмаған. Мен оны ESP8266 бағдарламалау туралы біраз білу үшін бұрыннан сатып алғанмын және ақырында оны жаңа қолдануды шештім. Мен демонстрацияға орнатылған барлық светодиодтарды алып тастадым және USB модульдеу тақырыбын, сондай -ақ мен қолданатын модульдерге сәйкес келетін I2C тақырыбын қостым. Оның аналогтық кіріс істігіне қосылған CdS фото резисторы болды, мен оны сол жерде қалдыруды шештім. Бұл қондырғы менің гараж шеберханамды бақылайтын болды және оның фото сенсоры шамдардың кездейсоқ өшіп қалғанын хабарлау үшін жеткілікті болды. Жарықты өлшеу үшін мен көрсеткіштерді пайыздық мөлшерлемені қалыпқа келтірдім, ал түнде «5» -тен жоғары шамдар сөндірулі немесе үйдің есігі дұрыс жабылмаған. RST және GPIO16 түйреуіштері ПХД -да анық белгіленген және оларды қосатын Schottky диоды ПХД астыңғы жағына орнатылған. Ол USB қабырға зарядтағышына тікелей қосылған USB сериялық тақтасы арқылы қуатталады. Менде USB-сериялық тақталардың қосымша элементтері бар, және оларға дәл қазір қажет емес.
Мен бұл тақтаға схема жасамадым және әдетте осы мақсатта пайдалану үшін сатып алуды ұсынбаймын. Wemos D1 Mini тақталары әлдеқайда қолайлы және келесіде талқыланады. Егер сізде осылардың бірі болса және сізге кеңес қажет болса, мен көмектесуге қуаныштымын.
6 -қадам: D1 шағын сенсорлық станциялар



Wemos D1 Mini типті ESP8266 әзірлеу тақталары менің таңдауым болып табылады, егер мен мұны істеуім керек болса, мен оларды қолданар едім. Олардың қол жетімді IO түйреуіштері көп, оларды Arduino IDE арқылы тікелей бағдарламалауға болады және әлі де жинақы. Бұл тақталарда D0 түйрегіші GPIO16 болып табылады және Schottky диодын қосу өте оңай. Схемада менің тақтайшалар қалай қосылғанын және олардың екеуі де BME2808 сенсорлық модулін қолданатынын көрсетеді.
Екі тақтаның бірі сыртқы ауа райын бақылауға арналған және күн батареясынан жұмыс істейді. 165 мм x 135 мм (6 В, 3,5 Вт) күн панелі TP4056 литий-ионды аккумуляторлық зарядтау модуліне жалғанған (Күн батареясымен жұмыс істейтін батарея сенсор станциясының орнату диаграммасын қараңыз). Бұл нақты зарядтау модулі (03962A) батареяны қорғаныс тізбегімен жабдықталған, егер батареяда (пакетте) болмаса. Li-ion аккумуляторы ескі ноутбуктің аккумуляторлық жинағынан қайта өңделді және ол D1 Mini тақтасын іске қосу үшін жеткілікті зарядты сақтай алады, әсіресе терең ұйқы қосылған кезде. Тақта элементтерден біршама қауіпсіз болу үшін пластикалық қоршауға салынған. Алайда, интерьер сыртқы температура мен ылғалдылыққа ұшырауы үшін қарама -қарсы жақта диаметрі 25 мм болатын екі тесік бұрғыланып, қара ландшафттық шүберекпен жабылған (ішінен). Шүберек ылғалдың енуіне мүмкіндік береді, сондықтан ылғалдылықты өлшеуге болады. Қоршаудың бір шетінде кішкене тесік бұрғыланып, мөлдір пластикалық терезе орнатылды. Бұл жерде BH1750 жарық сенсорлық модулі орналастырылған. Бүкіл қондырғы ашық жерде көлеңкеде (тікелей күн сәулесінде емес) орналастырылады, ал жарық сенсоры ашық. Бұл біздің жаңбырлы/бұлтты қыста ауа райында күн батареясынан 4 аптаға жуық жұмыс істейді.
7 -қадам: шлюз және веб -сервер



ESP-Now Gateway құрылғысы үшін Lolin NodeMCU V3 (ESP8266) тақтасы, веб-сервер үшін ESP32 (GOOUUU тақтасы) қолданылды. Кез келген дерлік ESP8266 немесе тіпті ESP32 тақтасы шлюз құрылғысы ретінде қызмет етуі мүмкін еді, бұл менде қалған барлық тақталарды қолданғаннан кейін мен қалдырған тақта.
Мен ESP32 тақтасын қолдандым, себебі маған деректерді жинау, сұрыптау, сақтау үшін сақтау және веб -серверді іске қосу үшін біршама жоғары есептеу қуаты бар тақта қажет. Болашақта оның жеке сенсоры мен жергілікті дисплейі (OLED) болуы мүмкін. Сақтау үшін бейімделген адаптері бар SD картасы қолданылды. Мен SD картасының адаптеріне қарапайым microSD картасын қолдандым және жалғанған контактілерге 7 істікшелі (0,1 дюймдік) атақты дәнекерледім. Мен осы GitHub ұсыныстарын орындадым.
Прототипті орнату (Dupont сымдары бар) сенсорлық модульді қамтымайды, бірақ мен жасаған соңғы PCB бір ғана OLED дисплейге мүмкіндік береді. Мен бұл ПХД қалай құрастырғаным туралы мәліметтер басқа нұсқаулықтың бөлігі болып табылады.
8 -қадам: Бағдарламалық қамтамасыз ету

ESP8266 (ESP-NOW) құрылғылары
Барлық құрылғыларға арналған бағдарламалық қамтамасыз ету Arduino IDE (v1.87) көмегімен жазылған. Әрбір сенсорлық станция бірдей кодты қолданады. Олар тек I2C байланысы үшін қандай түйреуіштер қолданылатынына және сенсор модуліне қосылғанына байланысты ерекшеленеді. Ең бастысы, олар бірдей сенсордың болуына қарамастан, ESP-Now Gateway станциясына бірдей өлшеу деректер пакетін жібереді. Бұл нені білдіреді, егер кейбір сенсорлық станциялар нақты мәндерді беретін сенсорлар болмаса, қысым мен жарық деңгейін өлшеу үшін жалған мәндерді толтырады. Әр станция мен шлюздің коды Энтони Элдердің осы GitHub мысалдарынан алынған.
Шлюз құрылғысының коды WebSerial -мен байланысу үшін SoftwareSerial қолданды, себебі ESP8266 -де тек бір ғана UART толық жұмыс істейтін аппараттық құралы бар. 9600 максималды беру жылдамдығымен жұмыс істеу өте сенімді болып көрінеді және бұл салыстырмалы шағын пакеттерді жіберу үшін жеткілікті. Шлюз құрылғысы сонымен қатар жеке MAC адресімен бағдарламаланған. Мұның себебі, егер оны ауыстыру қажет болса, онда сенсорлық станциялардың барлығын жаңа алушының MAC адресімен қайта бағдарламалаудың қажеті жоқ.
ESP32 (веб -сервер)
Әрбір сенсорлық станция өзінің деректер пакетін веб -серверге жіберетін шлюз құрылғысына жібереді. Мәліметтер пакетімен бірге әр станцияны анықтау үшін сенсорлық станцияның MAC мекенжайы жіберіледі. Веб-серверде әр сенсордың орнын анықтайтын «іздеу» кестесі бар және сәйкесінше деректерді сұрыптайды. Өлшеу арасындағы уақыт интервалы 5 минутқа плюс кездейсоқ коэффициентке орнатылды, сенсорлардың қақпалы құрылғыға жіберу кезінде бір -бірімен «соқтығысуын» болдыртпау үшін.
Үйдегі WIFI маршрутизаторы WIFI -ге қосылған кезде веб -серверге бекітілген IP -адресті бөлуге арналған. Мен үшін бұл 192.168.1.111 болды. Бұл мекенжайды кез келген шолғышта теру, егер пайдаланушы үй желісінің WIFI ауқымында болса (және оған қосылса), метеостанцияның веб -серверіне қосылады. Қолданушы веб -бетке қосылған кезде, веб -сервер өлшеулер кестесімен жауап береді және әр сенсордың соңғы өлшеу уақытын қамтиды. Осылайша, егер сенсорлық станция жауап бермей қалса, оны кестеден көруге болады, егер көрсеткіш 5-6 минуттан асса.
Деректер SD картасындағы жеке мәтіндік файлдарда сақталады және оларды веб -беттен жүктеуге болады. Оны Excel -ге немесе кез келген басқа қосымшаға импорттауға болады
Android қолданбасы
Жергілікті ауа райы туралы ақпаратты смартфоннан қарауды жеңілдету үшін мен Android Studio көмегімен салыстырмалы түрде Android қосымшасын жасадым. Бұл менің GitHub бетімде қол жетімді мұнда. Ол веб -бетті серверден жүктеу үшін шектеулі функционалдылық сияқты веб -шолуды пайдаланады. Ол деректер файлдарын жүктей алмайды және менің телефонымдағыларға бәрібір қажет болмады.
9 -қадам: Нәтижелер

Ақырында, менің үй метеостанциясының кейбір нәтижелері. Деректер ноутбукке жүктелді және Matlab -те жоспарланды. Мен Matlab сценарийлерін тіркедім, сіз оларды GNU Octave -де іске қоса аласыз. Сыртқы сенсор күн батареясымен 4 апта бойы жұмыс істейді және бізде жылдың осы мезгілінде күн сирек кездеседі. Әзірге бәрі жақсы жұмыс істеп тұр, және отбасының барлық мүшелері қазірден сұрамай, ауа райына өзі қарай алады!
Ұсынылған:
Модульдік күн метеостанциясы: 5 қадам (суреттермен)

Модульдік күн метеорологиялық станциясы: Мен біраз уақыт бойы салғым келген жобалардың бірі модульдік метеостанция болды. Бағдарламалық жасақтаманы өзгерту арқылы қалаған сенсорларды қосуға болатын модульдік модульдік метеостанция үш бөлікке бөлінген. Негізгі тақтада W бар
Твитинг метеостанциясы: 8 қадам (суреттермен)

Твитингтік метеостанция: Сіз өз қалаңыздың қазіргі ауа райы жағдайын, көміртегі ізін, шу мен ластану деңгейін бақылағыңыз келді ме? Сіз климаттық өзгерістерге қарсы крест жорығы болғыңыз келе ме, әлде өзіңіздің твит-метеостанцияңызды құрғыңыз келе ме, жергілікті ауа-райының шарттарымен бөліскіңіз келеді ме?
NaTaLia метеостанциясы: күн энергиясымен жұмыс істейтін Arduino метеостанциясы дұрыс жасады: 8 қадам (суреттермен)

NaTaLia метеостанциясы: күн энергиясымен жұмыс істейтін Arduino метеостанциясы дұрыс жолмен жүрді: 1 түрлі екі жерде сәтті жұмыс істегеннен кейін мен күн сәулесінен жұмыс істейтін метеостанция жобаларының жоспарларымен бөлісемін және оның қалай ұзақ уақыт бойы өмір сүре алатын жүйеге айналғанын түсіндіремін. күн энергиясынан пайда болған кезеңдер. Егер сіз қадағаласаңыз
Esp 8266 Esp-01 Arduino IDE көмегімен жұмысқа кірісу - Arduino Ide -де Esp тақталарын орнату және Esp бағдарламалау: 4 қадам

Esp 8266 Esp-01 Arduino IDE көмегімен жұмысқа кірісу | Esp тақталарын Arduino Ide-ге орнату және бағдарламалау Esp: Бұл нұсқаулықта біз esp8266 тақталарын Arduino IDE-ге қалай орнатуды және esp-01 бағдарламалауды және оған кодты жүктеуді үйренеміз. Esp тақталары соншалықты танымал болғандықтан, мен нұсқаулықтарды түзету туралы ойладым. бұл және адамдардың көпшілігі проблемаға тап болады
Тағы бір Arduino метеостанциясы (ESP-01 және BMP280, DHT11 және OneWire): 4 қадам

Тағы бір Arduino метеостанциясы (ESP-01 & BMP280 & DHT11 & OneWire): Мұнда сіз ESP-01-дің бірнеше түйреуіштерімен OneWire-ді қолданудың бір қайталануын таба аласыз. Бұл нұсқаулықта жасалған құрылғы сіздің Wi-Fi желісіне қосылады таңдау (сізде тіркелгі деректері болуы керек …) BMP280 мен DHT11 сенсорлық деректерін жинайды