Мазмуну:
- 1 -кадам: Керек болгон бөлүктөр
- 2 -кадам: Кабелдик жана монтаждоо
- 3 -кадам: Программаны ESP32ге жүктөө
- 4 -кадам: Даяр камтылган программаны жүктөө
- 5 -кадам: Конфигурация
- 6 -кадам: Тюнинг жана энергия керектөө
- 7 -кадам: сенсорлорду тууралоо
- 8 -кадам: Аспапты Apple Home Kitке кошуу
- 9 -кадам: OTA: Абада жаңыртуулар
Video: ESP32 Аба ырайы бекети Күндөн иштейт: 9 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Бул окуу куралында биз 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 Ом каршылыгы
- 2x 10 kOm резисторлор
- TIP120 NPN транзистору (Дарлингтон) башка шайкеш колдонулушу мүмкүн
- ButtonWires, коммутатор, ширетүү тактасы ….
2 -кадам: Кабелдик жана монтаждоо
Биринчи кадам - станциялардын кубаттуулугун чогултуу.
Мен пластикалык корпусту эки бөлүккө бөлдүм, алардын бири батарейкага, которгучка, USB заряддоочуга жана DC-DCге чыгып, ушул бөлүккө батарея кармагычты салып, которгуч менен USB заряддагычтын терезелерин жасайм. USB заряддагыч модулун билиңиз, андыктан мен аллюминий пластинасын колдондум жана USB заряддагычын Star 922 клейи менен койдум.
Экинчи кадам - контроллерлердин бөлүгүн чогултуу.
Аны кантип туташтыруу керек экенин электр схемасынан караңыз
Мен бул үчүн нан тактасын төмөнкү кадамдар менен колдондум
- Solder ESP32 иштеп чыгуучу тактасы
- TFT дисплейин сактоо үчүн ширетүүчү калкан
- Башка электрондук компоненттерди ширетүү: BME280, резисторлор, баскычтар
- Диаграммага ылайык компоненттердин ортосундагы ширетүүчү зымдар
Үчүнчү кадам - пластикалык корпустун экинчи бөлүгүнө нан тактасын орнотуу. Мен 3d принтериме эки тилкени басып чыгардым, аларды бурамалар менен бредбордго орнотуп, дисплей экраны үчүн тик бурчтуу кесүү жасайм.
Пластикалык корпустун корпусуна тирөөчтөрдү чаптадым. Эми клей кургак болгондо, нан тактасынын кабинасы бурамалар менен ажыратылат.
Кийинки кадам:
- Электр булагы үчүн ширетүүчү зымдар
- Батареядагы чыңалуу статусу үчүн ширетүүчү зымдар
- Кыймыл детекторун туташтыруу жана орнотуу
Акыркы кадам:
- чыгаруу чыңалуусун 5v жөнгө салуу менен DC-DC конверторун орнотуу
- станция контроллеринин эки бөлүгүн электрге туташтырыңыз: электр зымдары жана чыңалуу көрсөткүчү
Кыймыл детектору жана баскычы үчүн мен бет жагында кошумча тешиктерди жасадым.
3 -кадам: Программаны ESP32ге жүктөө
Бул долбоор үчүн мен өзүм иштеп чыккан универсалдуу программаны колдондум
Сураныч, караңыз github баракчасы ESPHomeController. Бул компиляция жана орнотуу боюнча толук нускаманы камтыйт.
! Эгерде сиз компиляцияны жана Arduino менен тааныш болбосоңуз, анда даяр камтылган программаны жүктөө кадамы бар
Программаны биринчи жолу жүктөсөңүз эле, ESP32 конфигурация режиминде башталат (Кирүү чекити режими)
Сиз аларды конфигурациялашыңыз керек. Бул үчүн жеткиликтүү WiFi'дин каалаган түзмөгүндө ачыңыз. HomeControllerди таап, ага туташыңыз. Туткун порталы автоматтык түрдө башталышы керек. Эгерде браузериңиздин url'ине кирбесе: 192.168.4.1 жана сиз конфигурация экранын көрөсүз
Нускаманы аткарыңыз жана WiFi тармагыңызга WiFi грамоталарын конфигурациялаңыз.
Андан кийин ESP WiFi кардары катары кайра башталат жана Wifiга туташат.
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": "нерселер капи "}, {" иштетилген ": чыныгы," интервал ": 1," пин ":" "," кызмат ":" ButtonController "," аты ":" Түймө "," түйрөөчтөр ": [27]}]
Сураныч, алмаштырыңыз
- нерселер менен сүйлөшүү api ачкычы менен
- Сиздин аба ырайы апи ачкычы менен weatherapi
- прогноз алгыңыз келген геокод
Экинчи файлды даярдагандан кийин 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 детектору менен тактиканы колдондум. Бул 8-10 метрге чейинки ар кандай аныктоону таанууга жана сигнал кабелиндеги чыңалууну жогорулатууга жөндөмдүү Motion детекторлору мыкты иштейт. Бул транзистордун ачылышы жана арткы Led кубат алат. Адатта детектор бул абалды 10 секундага чейин сактайт, бул мониторду көрүү үчүн жетиштүү эмес, бирок эгер сиз кыймылдарды уланта берсеңиз, сигнал дагы эле жогору жана LED жарык.
Мындай ыкма мага чоң экономиканы берет, кошумча эффекттерсиз, мен каалаган убакта экранымды көрүү үчүн эч кандай көйгөй менен жолукпайм
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}
"Enables"
"sleepinterval": 900000 бул миллис, же 15 мүнөт, ар 15 мүнөт ESP ойгонот жана керектүү персоналды кылат
Ошентип, азыр ар бир адам керектүү нерсеге жараша оңой ойной алат
7 -кадам: сенсорлорду тууралоо
BME280 температура сенсоруна ички жылытуунун таасирин азайтуу үчүн
Firts Мен сенсордун жана тешиктердин айланасында бир нече түтүк кылдым. LED режиминде өчүрүлгөндө жана ESP уктап жатканда менин режимимдеги Hovewer анча маанилүү эмес. Башка учурларда BME280 сенсору ички жылытуунун таасирин болтурбоо үчүн бир жакка жылышы керек. Мен канчалык кичине таасир көрсөм, ордун толтуруу үчүн эки параметр бар
"hum_corr": 10.0
бул маанилер өлчөөдөн кийин кошулат дегенди билдирет
Экинчиси - батареянын чыңалуусун өлчөө, {"enabled": "true", "interval": 600000, "pin": 36, "service": "LDRController", "name": "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. Temp сенсор жана Hum сенсор, терең барып, ал толук экранда баалуулуктарды көрсөтөт
2. Жарык сенсору:) Чындыгында Apple жарык чөйрөсүн көрсөтө алат, бирок чыңалуу эмес, ошондуктан батареянын чыңалуусу Люкс менен көрсөтүлөт
9 -кадам: OTA: Абада жаңыртуулар
Жаңыртууну баштоодон мурун ESP32ди өчүрүп -күйгүзүү жакшыраак, мурда айтылгандай, ал 20 мүнөттө уктабайт
Жаңыртуунун эки мүмкүнчүлүгү бар
- Конфигурация https://192.168.0. XX/browse аркылуу файл тутумуна ESP аркылуу кирип, конфигурация файлдарын өзгөртө алат
- Сиз программаны толугу менен жаңырта аласыз. бул үчүн алгач жаңысын түзүү керек. Бул Arduino же Visual Studio IDE аркылуу жасалышы мүмкүн. Андан кийин https://192.168.0. XX/update браузерине териңиз, программаңызды тандап, жаңыртууну басыңыз. Процесс аяктаганга чейин күтө туруңуз жана сизге жооп OK болот, болбосо кадамды кайра кайталаңыз
Сунушталууда:
Fanair: Сиздин бөлмөңүз үчүн аба ырайы бекети: 6 кадам (сүрөттөр менен)
Fanair: Сиздин бөлмөңүз үчүн аба ырайы бекети: Учурдагы аба ырайын билүүнүн сансыз жолдору бар, бирок сиз сыртта аба ырайын гана билесиз. Эгер сиз үйүңүздүн ичинде, белгилүү бир бөлмөдө аба ырайын билгиңиз келсе? Мен бул долбоор менен чечүүгө аракет кылып жатам. Fanair мульти колдонот
ESP32 Weathercloud Аба ырайы бекети: 16 кадам (Сүрөттөр менен)
ESP32 Weathercloud Weather Station: Өткөн жылы мен Arduino Weathercloud Weather Station деп аталган эң чоң көрсөтмөмдү жарыяладым. Мен айтат элем абдан популярдуу болгон. Ал Instructables башкы бетинде, Arduino блогунда, Wiznet музейинде, Instructables Instagram, Arduino Instagr
3.2 TFT Аба ырайы бекети: 4 кадам
3.2 TFT Аба ырайы станциясы: Ооба! Бул дагы ошол аба ырайы станциясы, бирок чоңураак дисплейди колдонот. Pls мурунку көрсөтмөлөрдү карап көрүңүз. Мен дагы 320x480 LCD дисплейин ардуино мегасына ээ болчумун жана анын үстүндө эскизимди кайра жаза аламбы деп ойлонуп жаткам. Менин жолум болду
WiFi Сааты, Таймер жана Аба ырайы бекети, Блинк көзөмөлдөнөт: 5 кадам (Сүрөттөр менен)
WiFi Сааты, Таймер жана Аба ырайы бекети, Блинк көзөмөлдөнөт: Бул Morphing санариптик сааты (концепциясы жана морфинг коду үчүн Хари Вигунанын аркасы менен), бул дагы аналогдук саат, аба ырайы жөнүндө маалымат берүүчү станция жана ашкана таймери. WiFi аркылуу смартфонуңуздагы Blynk колдонмосу
Аба ырайы шамы - Аба ырайы жана температура бир караганда: 8 кадам
Аба ырайы шамы - Аба ырайы жана Температура Бир Караганда: Бул сыйкырдуу шамды колдонуп, сиз учурдагы температураны жана шарттарды дароо сыртта айта аласыз