Съдържание:

ESP32 Метеорологична станция Слънчева енергия: 9 стъпки
ESP32 Метеорологична станция Слънчева енергия: 9 стъпки

Видео: ESP32 Метеорологична станция Слънчева енергия: 9 стъпки

Видео: ESP32 Метеорологична станция Слънчева енергия: 9 стъпки
Видео: RK900 01 Automatic Weather Station 2024, Юни
Anonim
Image
Image
Метеорологична станция ESP32 със слънчева енергия
Метеорологична станция ESP32 със слънчева енергия
Метеорологична станция ESP32 със слънчева енергия
Метеорологична станция ESP32 със слънчева енергия

В този урок ще изградим проект за метеорологична станция с WiFi.

Целта е да се проектира метеорологична станция с почти всички възможни характеристики:

  • Показване на текущите условия, време, температура, влажност, налягане
  • Покажете прогнозата за следващите дни
  • Актуализация в ефир
  • Вграден уеб сайт за конфигуриране и представяне на данни
  • Качете данни в облака за статистика на историята
  • Интегриран с Aple Home Kit или MQTT
  • Незаредено акумулаторно захранване с възможно зареждане или свързване към слънчев панел

Не мога да добавя повече и не повече въображение какво друго трябва или може да бъде

Стъпка 1: Части, които са необходими

Части, които са необходими
Части, които са необходими
Части, които са необходими
Части, които са необходими
Части, които са необходими
Части, които са необходими
  • ESP32 (използвал съм модул за разработчици)
  • 2.8 "240x320 TFT LCD SPI ILI9341
  • Пластмасов калъф
  • 3 x 18650 Accu
  • Метеорологичен сензор BME280 за измерване на температура, влажност и налягане
  • USB литиево зарядно устройство
  • DC-DC стъпка UP18650
  • държач за батерия (3бр)
  • HC-SR505 Детектор на движение
  • Резистор 220 Om
  • 2x 10 kOm резистори
  • TIP120 NPN транзистор (Darlington) може да се използва всеки друг съвместим
  • ButtonWires, превключвател, спойка …

Стъпка 2: Окабеляване и сглобяване

Окабеляване и сглобяване
Окабеляване и сглобяване
Окабеляване и сглобяване
Окабеляване и сглобяване
Окабеляване и сглобяване
Окабеляване и сглобяване
Окабеляване и сглобяване
Окабеляване и сглобяване

Първата стъпка е сглобяването на станции.

Разделил съм пластмасов калъф на две части, едната от които се използва за батерия, превключвател, USB зарядно устройство и DC-DC стъпка навън В тази част поставям държача на батерията и правя прозорци за превключвателя и usb зарядното устройство. Имайте предвид, че модулът за зарядно устройство USB е доста горещ, затова използвах алуминиева плоча и поставих USB зарядно устройство върху това с помощта на лепило Star 922.

Втората стъпка е сглобяването на част от контролерите.

Вижте електрическата схема как трябва да бъде свързана

За тази цел използвах дъска за хляб със следните стъпки

  • Спойка ESP32 дъска за разработка
  • Поял щит за запазване на TFT дисплея
  • Запоявайте други електронни компоненти: BME280, резистори, бутони
  • Припой на окабеляване между компонентите според диаграмата

Третата стъпка е да подготвите монтажа на дъската за хляб към втората част на пластмасовата кутия. Отпечатал съм на моя 3d принтер две ленти, монтирам ги на табла с винтове и правя правоъгълно изрязване за екрана на дисплея.

Залепих пластмасови опори към тялото на пластмасов корпус. Сега, когато лепилото изсъхне, кабината за хляб се демонтира с винтове.

Следващата стъпка е:

  • Поялни кабели за източник на захранване
  • Запояване окабеляване за състоянието на напрежението на батерията
  • Запояване и монтаж детектор на движение

Последна стъпка:

  • настройка на DC-DC преобразувател чрез настройване на изходното напрежение 5v
  • свържете две части от контролера на станцията към захранването: захранващи проводници и отчитане на напрежението

За детектора за движение и бутона направих допълнителни дупки от лицевата страна.

Стъпка 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

Изтеглянето става от папката

Сега можете да видите съдържанието на файла чрез уеб браузър. за това сега трябва да ip адрес на вашия ESP32

Можете да го намерите по един от следните начини:

  • Използване на монитор на сериен порт, за да видите ESP32 регистрационни файлове
  • Използване на всеки tcp скенер за сканиране на вашите мрежови устройства
  • Натиснете бутон на метеорологичната станция и ще видите системна информация

Поставете в браузър https://192.168.0. XX/browse и ще видите списък с файлове на вашия ESP

(192.168.0. XX е IP адресът на вашето устройство

За окончателната настройка трябва да подготвите конфигурационни файлове.

Стъпка 4: Качване на готов фърмуер

Качване на готов фърмуер
Качване на готов фърмуер

Този раздел е специално за слухови, които няма да произвеждат фърмуер сами. Просто трябва да качите „готов“фърмуер

1. Изтеглете инструменти за качване на флаш от тази страница

2. Изтеглете прикачени (извлечение от архиви) файлове HomeController.bin и bootloader_qio_80m.bin на вашия твърд диск

3. Стартирайте инструмента за изтегляне на ESP32 и въведете стойности според екранната снимка

4. Натиснете старт

Стъпка 5: Конфигурация

Преди да започнете подготовката на конфигурацията, трябва:

  1. Създайте канала си на говорител и ключ за вашия канал. Подгответе 4 полета и ги наречете правилно Температура, Влажност, Налягане, Напрежение
  2. Регистрирайте се на Weather.com, за да получите своя api ключ

Thingspeak са необходими, за да качите вашите данни и да наблюдавате тенденциите и ценностите

Времето е необходимо за получаване на прогнозни данни.

Добре, накрая трябва да създадете файл services.json със следното съдържание

[{"service": "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org "," enableleep ": true," sleepptype ": 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", "enabled": true, "interval": 500000, "uri": "https://api.weather.com/v3/wx/forecast/daily/5day?geocode=50.30, 30.70 & format = json & units = m & language = bg -US & apiKey = weatherapi "}, {" service ":" WeatherDisplayController "," name ":" WeatherDisplay "," enabled ": true," interval ": 500}, {" enabled ":" true "," interval ": 600000, "pin": 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": "thingspea kapi "}, {" enabled ": true," interval ": 1," pin ":" "," service ":" ButtonController "," name ":" Button "," pins ": [27]}]

! Моля, заменете

  • thingspeakapi с вашия api ключ на thingspeak
  • weatherapi с вашия api ключ за времето
  • геокод с вашето местоположение, за което искате да получите прогноза

След това подгответе втори файл 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 mA (много), затова използвах тактики с детектор за движение. Работи перфектно Детектори на движение, способни да разпознават всяко откриване до 8-10 метра и да повишават напрежението на сигналния кабел. Това е отворите на транзистор и заден Led получават мощност. Обикновено детекторът поддържа това състояние до 10 секунди, което е повече от достатъчно, за да видите монитора, но ако продължите движенията, сигналът все още е висок и светодиодът свети.

Такъв подход ми дава голяма икономия, без допълнителни ефекти, не срещам никакъв проблем да видя екрана си, когато искам

2. Намалете консумацията на енергия чрез ESP32

Когато ESP е свързан с WiFi, той постоянно изяжда 7-10 mA, говоря за постоянно време, а не за стартиране и първа връзка. Това може да бъде приемливо, ако винаги сте виждали действителната дата и час, имате достъп до вашата система от домашния комплект на Apple

За моята слънчева енергия през зимата също трябваше да съответства на работи без допълнителни източници на енергия, Затова реших периодично да поставям ESP32 в режим на заспиване (храненето е по -малко от 1 mA). Това е добре за мен, например ESP спи 20 минути, след което се събужда, екранът за опресняване (действителни данни и прогноза) изпраща данни към говорителя на нещата и отново в режим на заспиване

Минусите са:

  • Екранът за времето показва остарели стойности на времето
  • Станцията не е достъпна от браузъра и Apple Home Kit по време на сън

От вас зависи да решите кое е по -важно, можете просто да го конфигурирате отново.

Моля, погледнете файла и реда services.json

[{"service": "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org "," enableleep ": true," Sleptype ": 1," sleepinterval ": 900000," restartinterval ": 18000000}

"enableleep": true позволява изобщо да спи, ако поставите там false или премахнете paramater (false е по подразбиране) ESP никога няма да спи

"интервал на заспиване": 900000 това е милис, или 15 минути, означава, че на всеки 15 минути ESP ще се събужда и прави необходимия персонал

Така че сега всеки може лесно да играе според необходимостта

Стъпка 7: Настройка на сензорите

За да се сведе до минимум въздействието на вътрешното отопление върху температурния сензор BME280

Firts Направих някаква тръба около сензора и дупките. Hovewer в моя режим, когато светодиодът обикновено е изключен и ESP спи, не е толкова важен. В други случаи сензорът 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 V, играейки със cvalmax стойност можете да достигнете точна настройка на напрежението с вашата мултицетна стойност

Стъпка 8: Добавяне на устройство към Apple Home Kit

Добавяне на устройство към Apple Home Kit
Добавяне на устройство към Apple Home Kit

И накрая, когато устройството ви работи правилно, то може да бъде добавено към Apple Home Kit и ще можете да видите

сензори стойности на началния екран на Apple.

Първо трябва да рестартирате устройството, тъй като скоро след стартирането на устройството няма да заспи 20 минути е повече от достатъчно

След това отворете приложението Home Kit на вашето iOS устройство и изберете или създайте нов Home1. Натиснете Добавяне (+)

2. Изберете Добавяне на аксесоар.

3. Натиснете Нямам код или Не мога да сканирам (допълнително сканиране ще бъде добавено)

4. ако всичко върви добре, трябва да видите новото си esp устройство в списък (вижте снимката)

5. Изберете устройство и потвърдете добавянето без официално сертифициране

6. Въведете парола 11111111

7. Това Всичко! Трябва да видите, че устройството е сдвоено успешно, в противен случай започнете процеса на сдвояване отново.

Въз основа на тази настройка ще видите две устройства на Apple

1. Температурен сензор и Hum сензор, навлизайки дълбоко, ще показва стойности на цял екран

2. Светлинен сензор:) Всъщност Apple е в състояние да покаже светлинна атмосфера, но не и напрежение, поради което напрежението на батерията се показва в Lux

Стъпка 9: OTA: Актуализации по въздуха

Преди да започнете каквото и да е актуализиране, е по -добре да рестартирате ESP32, както споменахме преди, той няма да заспи първите 20 минути

Има две възможности за актуализиране

  1. Конфигурация с помощта на https://192.168.0. XX/browse можете да получите достъп до файловата си система на ESP и да промените конфигурационните файлове
  2. Можете напълно да актуализирате фърмуера. за тази цел първо трябва да създадете нов. Това може да стане чрез Arduino или Visual Studio IDE. След това въведете в браузъра https://192.168.0. XX/update, изберете вашия фърмуер и натиснете update. Изчакайте, докато процесът приключи и ще получите отговор OK, в противен случай повторете стъпката отново

Препоръчано: