Мазмұны:
- 1 -қадам: Қажетті бөлшектер
- 2 -қадам: сымдар мен жинау
- 3 -қадам: микробағдарламаны ESP32 -ге жүктеу
- 4 -қадам: Дайын микробағдарламаны жүктеу
- 5 -қадам: конфигурация
- 6 -қадам: Тюнинг және қуатты тұтыну
- 7 -қадам: сенсорларды реттеу
- 8 -қадам: құрылғыны Apple Home Kit жинағына қосу
- 9 -қадам: OTA: әуедегі жаңартулар
Бейне: Күн энергиясынан ESP32 метеостанциясы: 9 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Бұл оқулықта біз WiFi қолдайтын метеостанция жобасын құрамыз.
Мақсат - барлық мүмкін болатын метеорологиялық станцияны құру:
- Ағымдағы жағдайды, уақытты, температураны, ылғалдылықты, қысымды көрсет
- Келесі күндерге арналған болжамды көрсетіңіз
- Эфирде жаңарту
- Деректерді конфигурациялау және көрсету үшін веб -сайт орнатылған
- Тарих статистикасы үшін деректерді бұлтқа жүктеңіз
- Aple Home Kit немесе MQTT -мен біріктірілген
- Мүмкін зарядтау немесе күн батареясына қосылу мүмкіндігі бар Indepeded Accu
Мен басқа не болуы керек немесе не болуы керектігін қиялмен қоса алмаймын
1 -қадам: Қажетті бөлшектер
- ESP32 (мен dev модулін қолдандым)
- 2,8 «240x320 TFT LCD SPI ILI9341
- Пластикалық корпус
- 3 x 18650 Accu
- Температураны, ылғалдылық пен қысымды өлшеуге арналған BME280 ауа райы датчигі
- USB литий зарядтау модулі
- DC-DC қадамы UP18650
- батарея ұстағыш (3 дана)
- HC-SR505 қозғалыс детекторы
- 220 Ом резисторы
- 2х10 кОм резисторлар
- TIP120 NPN транзисторы (Дарлингтон) кез келген басқа үйлесімді пайдалануға болады
- ButtonWires, қосқыш, дәнекерлеу тақтасы ….
2 -қадам: сымдар мен жинау
Бірінші қадам - станция қуаттарын жинау.
Мен пластикалық корпусты екі бөлікке бөлдім, олардың біреуі аккумуляторға, қосқышқа, USB зарядтағышына және DC-DC шығуына арналған, осы бөлікке батарея ұстағышын салып, қосқыш пен USB зарядтағышына терезе жасаймын. USB зарядтағыш модулі өте жақсы екенін біліңіз, сондықтан мен аллюминий пластинасын қолдандым және оған Star 922 желімін қолданып USB зарядтағышын қойдым.
Екінші қадам - контроллерлерді жинау.
Қосылу схемасын қараңыз
Мен осы мақсатта нан тақтасын келесі қадамдармен қолдандым
- ESP32 дәнекерлеу тақтасы
- TFT дисплейін сақтауға арналған дәнекерлеу қалқаны
- Дәнекерлеу басқа электронды компоненттер: BME280, резисторлар, түймелер
- Диаграммаға сәйкес компоненттер арасындағы дәнекерлеу сымдары
Үшінші қадам - пластикалық корпустың екінші бөлігіне нан тақтасын бекіту. Мен 3d принтерімде екі жолақты басып шығардым, оларды бұрандалармен бекітіңіз және дисплей экранына тікбұрышты кесіңіз.
Мен пластикалық корпустың корпусына тіреуіштерді жапсырдым. Енді желім құрғақ болған кезде, нан тақтасы бұрандалармен шешіледі.
Келесі қадам:
- Қуат көзіне дәнекерлеу сымдары
- Батарея кернеуінің күйіне арналған дәнекерлеу сымдары
- Дәнекерлеу және бекіту қозғалыс детекторы
Соңғы қадам:
- шығыс кернеуін 5в реттеу арқылы DC-DC түрлендіргішін орнату
- станция контроллерінің екі бөлігін қуат көзіне қосыңыз: электр сымдары мен кернеуді оқу
Қозғалыс детекторы мен түйме үшін мен қосымша жағында тесіктер жасадым.
3 -қадам: микробағдарламаны ESP32 -ге жүктеу
Бұл жоба үшін мен өзім жасаған әмбебап бағдарламалық жасақтаманы қолдандым
ESPHomeController github бетін қараңыз. Бұл жерде компиляция мен баптаудың толық нұсқауы бар.
! Егер сіз компиляция мен Arduino -ны білмесеңіз, дайын микробағдарламаны жүктеуді қараңыз
Микробағдарламаны бірінші рет жүктей салысымен ESP32 конфигурация режимінде басталады (Access Point режимі)
Сіз оларды конфигурациялауыңыз керек. Ол үшін қол жетімді WiFi кез келген құрылғылар тізімінде ашылады. HomeController табыңыз және оған қосылыңыз. Тұтқындау порталы автоматты түрде іске қосылуы керек. Егер браузерге url: 192.168.4.1 енгізілмесе, сіз конфигурация экранын көресіз
Нұсқауларды орындаңыз және WiFi тіркелгі деректерін WiFi желісіне теңшеңіз.
Осыдан кейін ESP WiFi клиенті ретінде қайта қосылады және Wi -Fi желісіне қосылады.
Sson Firts байланысы болған кезде ол Spiffs файлдық жүйесін автоматты түрде орнатады және веб -порталға қажетті файлдарды жүктейді:
- index.html
- filebrowse.html
- js/bundle.min.js.gz
Жүктеу https://github.com/Yurik72/ESPHomeController/tree/… қалтасынан болады.
Енді сіз веб -шолғыш арқылы файл мазмұнын көре аласыз. Ол үшін енді ESP32 IP мекенжайын көрсету керек
Сіз оны келесі жолдардың бірімен таба аласыз:
- ESP32 журналдарын көру үшін сериялық порт мониторын пайдалану
- Желілік құрылғыларды сканерлеу үшін кез келген tcp сканерін қолданыңыз
- Метеостанциядағы түймені басыңыз, сіз жүйе туралы ақпаратты көресіз
Http: //192.168.0. XX/browse шолуын енгізіңіз, сонда сіз ESP файлдар тізімін көресіз.
(192.168.0. XX - бұл сіздің құрылғыңыздың IP мекенжайы
Соңғы реттеу үшін конфигурация файлдарын дайындау қажет.
4 -қадам: Дайын микробағдарламаны жүктеу
Бұл бөлім микробағдарламаны өз бетінше жасамайтын аудиторияға арналған. Сізге тек «дайын» микробағдарламаны жүктеу қажет
1. Бұл беттен флэш жүктеу құралдарын жүктеңіз
2. HomeController.bin және bootloader_qio_80m.bin тіркелген файлдарды қатты дискіге жүктеңіз.
3. ESP32 жүктеу құралын іске қосыңыз және скриншот бойынша мәндерді енгізіңіз
4. Бастау түймесін басыңыз
5 -қадам: конфигурация
Конфигурацияны дайындауды бастамас бұрын сізге қажет:
- Арнаңызды жылдамдықта жасаңыз және сіз үшін арнаңыз. 4 өрісті дайындап, оларды температура, ылғалдылық, қысым, кернеу деп дұрыс атаңыз
- Api кілтін алу үшін Weather.com сайтына тіркеліңіз
Деректерді жүктеу және үрдістер мен құндылықтарды бақылау үшін Thingspeak қажет
Болжам деректерін алу үшін ауа райы қажет.
Жақсы, сізге келесі мазмұндағы services.json файлын жасау қажет
[{«service»: «TimeController», «name»: «Time», «enabled»: true, «interval»: 1000, «timeoffs»: 7200, «dayloffs»: 3600, «server»: «pool.ntp.org «,» enablesleep «: true,» sleeptype «: 1,» sleepinterval «: 900000,» restartinterval «: 18000000}, {» service «:» BME280Controller «,» name «:» BME «,» enabled «: true, «interval»: 900000, «i2caddr»: 118, «uselegacy»: true, «temp_corr»:-3.0, «hum_corr»: 10.0}, {«service»: «WeatherClientController», «name»: «WeatherForecast», «қосылған»: шын, «интервал»: 500000, «uri»: «https://api.weather.com/v3/wx/forecast/daily/5day?geocode=50.30, 30.70 & format = json & unit = m & language = en -US & apiKey = weatherapi «}, {» service «:» WeatherDisplayController «,» name «:» WeatherDisplay «,» enabled «: true,» interval «: 500}, {» enabled «:» true «,» interval «: 600000, «пин»: 36, «service»: «LDRController», «name»: «LDR», «cvalmin»: 0.0, «cvalmax»: 7.2, «cfmt»: «%. 2f V», «acctype»: 10}, {«service»: «ThingSpeakController», «name»: «ThingSpeak», «enabled»: true, «interval»: 1200000, «value»: [1, 1, 1, 1, 0, 0, 0, 0], «apiKey»: «дәмдеуіштер kapi «}, {» қосылған «: шын,» интервал «: 1,» түйреуіш «:» «,» қызмет «:» ButtonController «,» аты «:» Түйме «,» түйреуіштер «: [27]}]
! Ауыстырыңыз
- нәрселермен сөйлесу апи кілтімен
- ауа райы апи кілтімен
- болжамды алғыңыз келетін геокод
Triggers.json екінші файлын дайындаудан гөрі
[{«type»: «BMEToWeatherDisplay», «source»: «BME», «destination»: «WeatherDisplay»}, {«type»: «TimeToWeatherDisplay», «source»: «Time», «destination»: «WeatherDisplay» «}, {» type «:» WeatherForecastToWeatherDisplay «,» source «:» WeatherForecast «,» destination «:» WeatherDisplay «}, {» type «:» BMEToThingSpeak «,» source «:» BME «,» destination «: «ThingSpeak», «t_ch»: 1, «h_ch»: 2, «p_ch»: 3}, {«type»: «ButtonToWeatherDisplay», «source»: «Button», «destination»: «WeatherDisplay»}, { «type»: «LDRToThingSpeak», «source»: «LDR», «destination»: «ThingSpeak», «ch»: 4}]
Екі файл да esp түбіріне дейін көтерілуі керек.
Сіз мұны https://192.168.0. XX/browse браузері арқылы жасай аласыз, мұнда https://192.168.0. XX - сіздің құрылғыңыздың IP мекенжайы.
Жүктелгеннен кейін ESP қайта жүктелуі керек және бәрі дұрыс жасалды. Esp жоғарыдағы фото мен бейнедегідей сәйкес экранды көрсетеді
6 -қадам: Тюнинг және қуатты тұтыну
Мен құрылғымды күн панеліне қосылу үшін қолданамын және оның «шексіз» жұмыс істей алатынына сенімдімін.
қуатты тұтыну маңызды және бірнеше эксперименттен кейін мен екі негізгі трюкті қолдандым
TFT экранының негізгі жарық диодты тұтынуын азайтыңыз
Өлшеу бойынша ол 15-20 мА (көп) жейді, сондықтан мен Motion детекторының тактикасын қолдандым. Ол өте жақсы жұмыс істейді Motion детекторлары 8-10 метрге дейінгі кез келген анықтауды тани алады және сигнал кабеліндегі кернеуді көтереді. Бұл транзистор мен артқы светодиод қуатын алатын саңылаулар. Әдетте детектор бұл күйді 10 секундқа дейін сақтайды, бұл мониторды көру үшін жеткілікті емес, бірақ егер сіз қозғалысты жалғастырсаңыз, сигнал әлі де жоғары, ал жарық диодты жарықтандырады.
Мұндай тәсіл маған үлкен экономика береді, қосымша әсер етпейді, мен қалаған кезде экранды көруге ешқандай қиындық тудырмайды
2. ESP32 арқылы энергия тұтынуды азайтыңыз
ESP WiFi-ге қосылған кезде, ол үнемі 7-10 мА жейді, мен тұрақты уақыт туралы айтамын, іске қосу мен бірінші қосылым емес. Егер сіз әрқашан нақты күн мен уақытты көріп, жүйеге Apple үй жинағынан кірсеңіз, бұл қолайлы болуы мүмкін
Менің күн энергиясы үшін қыс мезгілінде қосымша энергия көздері жоқ жұмысқа сәйкес келу керек еді.
Сондықтан мен мезгіл -мезгіл ESP32 режимін ұйқы режиміне қосуды шештім (тамақтану 1 мА -дан аз). Бұл мен үшін жақсы, мысалы, ESP 20 минут ұйықтайды, оятудан гөрі, экранды жаңарту (нақты деректер мен болжам) деректерді тез сөйлеуге және қайтадан ұйқы режиміне жібереді.
Кемшіліктер - бұл:
- Ауа райы экраны ескірген уақыт мәндерін көрсетеді
- Ұйқы кезінде станция браузерден және Apple Home Kit -тен қол жетімді емес
Не маңызды екенін өзіңіз шешесіз, сіз оны қайта конфигурациялай аласыз.
Services.json файлын және жолын қараңыз
[{«service»: «TimeController», «name»: «Time», «enabled»: true, «interval»: 1000, «timeoffs»: 7200, «dayloffs»: 3600, «server»: «pool.ntp.org «,» enablesleep «: true,» sleeptype «: 1,» sleepinterval «: 900000,» restartinterval «: 18000000}
«ұйықтауға мүмкіндік береді»: шын мәнінде ұйқыны қосады, егер жалған болса немесе параметрді жойса (әдепкі мәні жалған болса) ESP ешқашан ұйықтамайды
«ұйықтау аралығы»: 900000 бұл миллис немесе 15 мин, бұл әрбір 15 минут сайын ESP оянып, қажет персоналды жасайтынын білдіреді.
Сонымен, қазір бәрі қажет болғанша оңай ойнай алады
7 -қадам: сенсорларды реттеу
Ішкі жылытудың BME280 температура сенсорына әсерін азайту үшін
Firts Мен сенсор мен тесіктердің айналасында түтік жасадым. Жарық диоды сөніп тұрғанда және ESP ұйықтап жатқанда менің режимімде жұмыс жасаушы маңызды емес. Басқа жағдайларда BME280 датчигі ішкі жылытудың әсерін болдырмау үшін бір жерге жылжуы керек. Мен қаншалықты аз әсер таптым, сондықтан өтеуге болатын екі параметр бар
{«service»: «BME280Controller», «name»: «BME», «enabled»: true, «interval»: 900000, «i2caddr»: 118, «uselegacy»: true, «temp_corr»:-3.0, «hum_corr «: 10.0}, temp_corr »:-3.0
«hum_corr»: 10.0
бұл мәндер өлшеуден кейін қосылатынын білдіреді
Екінші - батарея кернеуін өлшеу, {«қосылған»: «шын», «интервал»: 600000, «түйреуіш»: 36, «қызмет»: «LDRController», «аты»: «LDR», «cvalmin»: 0.0, «cvalmax»: 7.2, « cfmt «:»%. 2f V «,» acctype «: 10}, «cvalmin»: 0,0
«cvalmax»: 7.2
Бұл үшін кернеу резисторлардың бөлінуінен кейін өлшенеді және 3,3 В -пен салыстырылады, cvalmax мәнімен ойнағанда мультиметрлік мәнмен кернеудің дәл реттелуіне қол жеткізуге болады.
8 -қадам: құрылғыны Apple Home Kit жинағына қосу
Ақырында, сіздің құрылғыңыз дұрыс жұмыс істеп тұрған кезде оны Apple Home Kit -ке қосуға болады және сіз оны көре аласыз
сенсорлар Apple бастапқы экранында.
Алдымен сізге құрылғыны қайта іске қосу қажет, себебі құрылғы басталғаннан кейін ол 20 минут ұйықтамайды, ол жеткілікті
IOS құрылғысында Home Kit қосымшасын ашып, жаңа Home1 таңдаңыз немесе жасаңыз. Қосу түймесін басыңыз (+)
2. Қосымша керек -жарақтарды таңдаңыз.
3. Менде код жоқ немесе сканерлеу мүмкін емес түймесін басыңыз (әрі қарай сканерлеу қосылады)
4. Егер бәрі ойдағыдай болса, сіз жаңа esp құрылғысын тізімнен көруіңіз керек (суретті қараңыз)
5. Құрылғыны таңдаңыз және ресми куәландырусыз қосуды растаңыз
6. Құпия сөзді 11111111 теріңіз
7. Барлығы! Сіз бұл құрылғы сәтті жұпталғанын көруіңіз керек, әйтпесе жұптау процесін қайтадан бастаңыз.
Бұл параметрлерге сүйене отырып, сіз Apple -де екі құрылғыны көресіз
1. Температура сенсоры мен Hum сенсоры тереңдікте болса, ол мәндерді толық экранда көрсетеді
2. Жарық сенсоры:) Іс жүзінде Apple кернеуді емес, жарықты көрсете алады, сондықтан аккумулятордың кернеуі Люкспен көрсетіледі.
9 -қадам: OTA: әуедегі жаңартулар
Кез келген жаңартуды бастамас бұрын ESP32 -ді қайта жүктеген жөн, бұрын айтылғандай, ол 20 минут ұйықтамайды
Жаңартудың екі мүмкіндігі бар
- Http: //192.168.0. XX/browse көмегімен конфигурациялау арқылы сіз ESP файлдық жүйесіне кіре аласыз және конфигурация файлдарын өзгерте аласыз.
- Сіз микробағдарламаны толығымен жаңарта аласыз. бұл үшін алдымен жаңасын жасау керек. Мұны Arduino немесе Visual Studio IDE арқылы жасауға болады. Содан кейін https://192.168.0. XX/update шолғышына теріңіз, микробағдарламаны таңдап, жаңарту түймесін басыңыз. Процесс аяқталғанша күте тұрыңыз, сіз жауап бересіз, әйтпесе қадамды қайталаңыз
Ұсынылған:
Модульдік күн метеостанциясы: 5 қадам (суреттермен)
Модульдік күн метеорологиялық станциясы: Мен біраз уақыт бойы салғым келген жобалардың бірі модульдік метеостанция болды. Бағдарламалық жасақтаманы өзгерту арқылы қалаған сенсорларды қосуға болатын модульдік модульдік метеостанция үш бөлікке бөлінген. Негізгі тақтада W бар
NaTaLia метеостанциясы: күн энергиясымен жұмыс істейтін Arduino метеостанциясы дұрыс жасады: 8 қадам (суреттермен)
NaTaLia метеостанциясы: күн энергиясымен жұмыс істейтін Arduino метеостанциясы дұрыс жолмен жүрді: 1 түрлі екі жерде сәтті жұмыс істегеннен кейін мен күн сәулесінен жұмыс істейтін метеостанция жобаларының жоспарларымен бөлісемін және оның қалай ұзақ уақыт бойы өмір сүре алатын жүйеге айналғанын түсіндіремін. күн энергиясынан пайда болған кезеңдер. Егер сіз қадағаласаңыз
18650 литий -иондық жасушаларға арналған күн энергиясынан зарядтау құрылғысы: 4 қадам
18650 литий-иондық ұяшықтарға арналған күн энергиясынан зарядтағыш: литий-иондық батареяларды зарядтау-бұл күн энергиясымен де қиын мәселе, себебі литий-ионды батареялар қауіпті және бақыланатын зарядтау ортасын қажет етеді. Әйтпесе, бұл жарылысқа әкелуі мүмкін. Мұнда мен 18650 литийін саламын
Күн метеостанциясы: 5 қадам
Күн метеостанциясы: Сіз өзіңіздің аулаңыздан ауа райы туралы нақты уақытты алғыңыз келді ме? Енді сіз дүкеннен метеостанцияны сатып ала аласыз, бірақ әдетте батареяны қажет етеді немесе розеткаға қосу қажет. Бұл метеостанцияға қосылу қажет емес
Raspberry Pi күн метеостанциясы: 7 қадам (суреттермен)
Raspberry Pi күн метеорологиялық станциясы: Менің бұрынғы екі жобамның ықшам камерасы мен портативті ойындар консолі аяқталғаннан кейін мен жаңа сынақ тапқым келді. Табиғи прогресс - бұл қашықтықтан басқарылатын жүйе … Мен Raspberry Pi метеостанциясын салғым келді, ол