Мазмуну:

ESP32 Аба ырайы бекети Күндөн иштейт: 9 кадам
ESP32 Аба ырайы бекети Күндөн иштейт: 9 кадам

Video: ESP32 Аба ырайы бекети Күндөн иштейт: 9 кадам

Video: ESP32 Аба ырайы бекети Күндөн иштейт: 9 кадам
Video: #Deedu flying weather station with ESP32 2024, Июнь
Anonim
Image
Image
ESP32 Weather Station Күндөн иштейт
ESP32 Weather Station Күндөн иштейт
ESP32 Weather Station Күндөн иштейт
ESP32 Weather Station Күндөн иштейт

Бул окуу куралында биз 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 -кадам: Даяр камтылган программаны жүктөө

Даяр Firmware жүктөлүүдө
Даяр Firmware жүктөлүүдө

Бул бөлүм атайын программалык камсыздоону өзүңүз чыгарбай турган аудиторияга арналган. Сиз жөн гана "даяр" камтылган программаны жүктөшүңүз керек

1. Бул барактан флэш жүктөө куралдарын жүктөңүз

2. Тиркелген файлдарды (архивдерден көчүрүү) HomeController.bin жана bootloader_qio_80m.bin файлдарын катуу дискиңизге жүктөп алыңыз.

3. ESP32 жүктөө куралын баштаңыз жана скриншотко ылайык баалуулуктарды киргизиңиз

4. Старт басыңыз

5 -кадам: Конфигурация

Конфигурацияны даярдоону баштоодон мурун сизге керек:

  1. Каналыңызды сүйлөңүз жана каналыңыздын ачкычын түзүңүз. 4 талааны даярдап, аларга температура, нымдуулук, басым, чыңалуу деп туура ат коюңуз
  2. 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 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 мүнөттө уктабайт

Жаңыртуунун эки мүмкүнчүлүгү бар

  1. Конфигурация https://192.168.0. XX/browse аркылуу файл тутумуна ESP аркылуу кирип, конфигурация файлдарын өзгөртө алат
  2. Сиз программаны толугу менен жаңырта аласыз. бул үчүн алгач жаңысын түзүү керек. Бул Arduino же Visual Studio IDE аркылуу жасалышы мүмкүн. Андан кийин https://192.168.0. XX/update браузерине териңиз, программаңызды тандап, жаңыртууну басыңыз. Процесс аяктаганга чейин күтө туруңуз жана сизге жооп OK болот, болбосо кадамды кайра кайталаңыз

Сунушталууда: