Spisu treści:

Stacja pogodowa ESP32 Zasilana energią słoneczną: 9 kroków
Stacja pogodowa ESP32 Zasilana energią słoneczną: 9 kroków

Wideo: Stacja pogodowa ESP32 Zasilana energią słoneczną: 9 kroków

Wideo: Stacja pogodowa ESP32 Zasilana energią słoneczną: 9 kroków
Wideo: Mądry dom za grosze #5 - Inteligentny czujnik temperatury i wilgotności za 20zł | Home Assistant DIY 2024, Listopad
Anonim
Image
Image
Stacja pogodowa ESP32 zasilana energią słoneczną
Stacja pogodowa ESP32 zasilana energią słoneczną
Stacja pogodowa ESP32 zasilana energią słoneczną
Stacja pogodowa ESP32 zasilana energią słoneczną

W tym samouczku zbudujemy projekt stacji pogodowej obsługującej WiFi.

Celem jest zaprojektowanie stacji pogodowej z prawie wszystkimi możliwymi funkcjami:

  • Pokaż aktualne warunki, czas, temperaturę, wilgotność, ciśnienie
  • Pokaż prognozę na najbliższe dni
  • Aktualizacja na antenie
  • Wbudowana strona internetowa do konfiguracji i odtwarzania danych
  • Prześlij dane do chmury, aby uzyskać statystyki historii
  • Zintegrowany z zestawem Aple Home Kit lub MQTT
  • Niezależny akumulator zasilany z możliwością ładowania lub podłączenia do panelu słonecznego

Nie mogę dodać więcej i nie więcej wyobraźni co jeszcze musi lub może być

Krok 1: Części, które są wymagane

Części, które są wymagane
Części, które są wymagane
Części, które są wymagane
Części, które są wymagane
Części, które są wymagane
Części, które są wymagane
  • ESP32 (użyłem modułu dev)
  • 2,8" 240x320 TFT LCD SPI ILI9341
  • Plastikowa obudowa
  • 3x18650 akumulator
  • Czujnik pogody BME280 do pomiaru temperatury, wilgotności i ciśnienia
  • Moduł ładowarki litowej USB
  • Stopień DC-DC UP18650
  • uchwyt baterii (3szt)
  • HC-SR505 Detektor ruchu
  • Rezystor 220 Om
  • Rezystory 2x 10 kOm
  • Tranzystor NPN TIP120 (Darlington) może być używany z dowolnym innym kompatybilnym
  • ButtonWires, przełącznik, płytka lutownicza….

Krok 2: Okablowanie i montaż

Okablowanie i montaż
Okablowanie i montaż
Okablowanie i montaż
Okablowanie i montaż
Okablowanie i montaż
Okablowanie i montaż
Okablowanie i montaż
Okablowanie i montaż

Pierwszym krokiem jest montaż mocy stacji.

Plastikową obudowę podzieliłem na dwie części, z których jedna służy do baterii, włącznika, ładowarki USB i DC-DC. Należy pamiętać, że moduł ładowarki USB dość się nagrzewa, dlatego użyłem aluminiowej płyty i nałożyłem na nią ładowarkę USB za pomocą kleju Star 922.

Drugim krokiem jest montaż części kontrolerów.

Zobacz schemat połączeń, jak należy go podłączyć

Użyłem do tego celu deski do chleba z następującymi krokami

  • Przylutuj płytę deweloperską ESP32
  • Tarcza lutownicza, aby zachować wyświetlacz TFT
  • Przylutuj inne elementy elektroniczne: BME280, rezystory, przyciski
  • Okablowanie lutowane między komponentami zgodnie ze schematem

Trzecim krokiem jest przygotowanie montażu deski do krojenia chleba do drugiej części plastikowej obudowy. Wydrukowałem na mojej drukarce 3d dwa paski, przymocowałem je śrubami do tablicy do krojenia i wykonałem prostokątne wycięcie na ekran wyświetlacza.

Do korpusu plastikowej walizki przykleiłem plastikowe wsporniki. Teraz, gdy klej wyschnie, kabinę płyty chlebowej należy odkręcić za pomocą śrub.

Następnym krokiem jest:

  • Okablowanie lutowane do źródła zasilania
  • Okablowanie lutowane dla stanu napięcia akumulatora
  • Przylutuj i zamontuj czujnik ruchu

Ostatni krok:

  • Konfiguracja konwertera DC-DC poprzez dostrojenie napięcia wyjściowego 5v
  • podłącz dwie części kontrolera stacji do zasilania: przewody zasilające i odczyt napięcia;

Dla czujnika ruchu i przycisku wykonałem dodatkowe otwory od strony czołowej.

Krok 3: Wgrywanie oprogramowania układowego do ESP32

Do tego projektu użyłem uniwersalnego oprogramowania, opracowanego przeze mnie

Zajrzyj na stronę github ESPHomeController. Zawiera pełną instrukcję jak skompilować i skonfigurować.

! Jeśli nie jesteś zaznajomiony z kompilacją i Arduino, zajrzyj do kroku Wgrywanie gotowego oprogramowania

Jak tylko wgrasz firmware po raz pierwszy ESP32 uruchomi się w trybie konfiguracji (tryb Access Point)

Powinieneś je skonfigurować. W tym celu otwórz w dowolnym urządzeniu listę dostępnych WiFi. Znajdź HomeController i połącz się z nim. Portal przechwytujący powinien uruchomić się automatycznie. Jeśli nie, wpisz adres URL przeglądarki: 192.168.4.1, a zobaczysz ekran konfiguracji

Postępuj zgodnie z instrukcjami i skonfiguruj poświadczenia Wi-Fi do swojej sieci Wi-Fi.

ESP uruchomi się ponownie jako klient Wi-Fi i połączy się z Wi-Fi.

Podczas pierwszego połączenia sson automatycznie zamontuje system plików Spiffs i pobierze wymagane pliki dla portalu internetowego:

  • index.html
  • filebrowse.html
  • js/pakiet.min.js.gz

Pobieranie odbywa się z folderu

Teraz możesz zobaczyć zawartość pliku za pomocą przeglądarki internetowej. w tym celu powinieneś teraz adres IP swojego ESP32

Możesz go znaleźć na jeden z następujących sposobów:

  • Korzystanie z monitora portu szeregowego, aby zobaczyć logi ESP32
  • Używanie dowolnego skanera tcp do skanowania urządzeń sieciowych
  • Naciśnij przycisk na stacji pogodowej, a zobaczysz informacje o systemie

Wstaw do przeglądania https://192.168.0. XX/browse, a zobaczysz listę plików swojego ESP

(192.168.0. XX to adres IP Twojego urządzenia)

Do ostatecznego dostrojenia musisz przygotować pliki konfiguracyjne.

Krok 4: Wgrywanie gotowego oprogramowania

Wgrywanie gotowego oprogramowania
Wgrywanie gotowego oprogramowania

Ta sekcja jest przeznaczona specjalnie dla słuchowców, którzy nie zamierzają samodzielnie tworzyć oprogramowania układowego. Wystarczy wgrać "gotowy" firmware

1. Pobierz narzędzia do przesyłania plików flash z tej strony

2. Pobierz załączone (wyciąg z archiwów) pliki HomeController.bin i bootloader_qio_80m.bin na dysk twardy

3. Uruchom narzędzie do pobierania ESP32 i wprowadź wartości zgodnie ze zrzutem ekranu

4. Naciśnij start

Krok 5: Konfiguracja

Przed przystąpieniem do przygotowania konfiguracji potrzebujesz:

  1. Stwórz swój kanał na rzecz mowy i klucz do swojego kanału. Przygotuj 4 pola i odpowiednio je nazwij Temperatura, Wilgotność, Ciśnienie, Napięcie
  2. Zarejestruj się na Weather.com, aby otrzymać klucz API

Thingspeak jest potrzebny do przesyłania danych oraz monitorowania trendów i wartości

Pogoda jest niezbędna do uzyskania prognozy.

Ok, w końcu musisz utworzyć plik services.json z następującą zawartością

[{"service":"TimeController", "name":"Czas", "enabled":true, "interval":1000, "timeoffs":7200, "dayloffs":3600, "server":"pool.ntp.org", "enablesleep":true, "sleeptype":1, "sleepinterval":900000, "restartinterval":1800000}, {"service":"BME280Controller", "name":"BME", "enabled": true, "interval":900000, "i2caddr"::118, "uselegacy":true, "temp_corr":-3.0, "hum_corr":-10.0}, {"service":"WeatherClientController", "name":"Prognoza pogody", "enabled":true, "interval":500000, "uri":"https://api.weather.com/v3/wx/forecast/daily/5day?geocode=50.30, 30.70&format=json&units=m&language=pl -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":"Przycisk", "pins":[27]}]

!Proszę wymienić

  • thingspeakapi z twoim kluczem thingspeak api
  • weatherapi za pomocą klucza pogodowego api
  • geokod z Twoją lokalizacją, dla której chcesz uzyskać prognozę

Następnie przygotuj drugi plik triggers.json

[{"type":"BMEToWeatherDisplay", "source":"BME", "destination":"WeatherDisplay"}, {"type":"TimeToWeatherDisplay", "source":"Czas", "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":"Przycisk", "destination":"WeatherDisplay"}, { "type":"LDRToThingSpeak", "source":"LDR", "destination":"ThingSpeak", "ch":4}]

Oba pliki należy przesłać do katalogu głównego esp.

Możesz to zrobić przez przeglądarkę https://192.168.0. XX/browse, gdzie https://192.168.0. XX to adres IP Twojego urządzenia

Po wgraniu ESP należy zrestartować i wszystko zostało zrobione dobrze. Esp pokaże właściwy ekran jak na zdjęciu i wideo powyżej

Krok 6: Dostrajanie i zużycie energii

Strojenie i zużycie energii
Strojenie i zużycie energii

Używam swojego urządzenia z podłączeniem do Panelu Słonecznego i żeby mieć pewność, że może działać "nieskończenie"

zużycie energii jest ważne i po kilku eksperymentach zastosowałem dwie główne sztuczki

Zmniejsz zużycie tła LED ekranu TFT

Według pomiarów zjada 15-20 mA (dużo), dlatego zastosowałem taktykę z detektorem ruchu. Działa doskonale Detektory ruchu potrafiące rozpoznać każdą detekcję do 8-10 metrów i podnieść napięcie na kablu sygnałowym. W ten sposób otwiera się tranzystor, a dioda z tyłu otrzymuje zasilanie. Zazwyczaj detektor utrzymuje ten stan do 10 sekund, co jest więcej niż wystarczające, aby zobaczyć monitor, ale jeśli kontynuujesz ruch, sygnał jest nadal wysoki, a dioda LED świeci.

Takie podejście daje mi dużą ekonomię, bez dodatkowych efektów, nie mam problemu aby zobaczyć ekran kiedy chcę

2. Zmniejsz zużycie energii przez ESP32

Kiedy ESP jest podłączony do WiFi to ciągle pobiera 7-10 mA, mówię o stałym czasie, a nie o uruchomieniu i pierwszym połączeniu. Jest to dopuszczalne, jeśli zawsze widzisz aktualną datę i godzinę, uzyskujesz dostęp do systemu z zestawu domowego Apple

Dla mojej energii słonecznej również w okresie zimowym miała się zmieścić w pracy bez dodatkowych źródeł zasilania, Dlatego postanowiłem okresowo przełączać ESP32 w tryb uśpienia (jedzenie to mniej niż 1 mA). Dla mnie to jest w porządku, na przykład ESP śpi 20 minut, po czym obudź się, odśwież ekran (rzeczywiste dane i prognoza) wysyła dane do rzeczy i z powrotem do trybu uśpienia

Minusy to:

  • Ekran pogody wyświetla nieaktualne wartości czasu
  • Stacja nie jest dostępna z przeglądarki i zestawu Apple Home Kit w czasie uśpienia

Od Ciebie zależy, co jest ważniejsze, możesz to łatwo zmienić.

Proszę spojrzeć na plik services.json i linię

[{"service":"TimeController", "name":"Czas", "enabled":true, "interval":1000, "timeoffs":7200, "dayloffs":3600, "server":"pool.ntp.org", "enablesleep":true, "sleeptype":1, "sleepinterval":900000, "restartinterval":1800000}

"enablesleep":true włącza w ogóle sen, jeśli wstawisz tam false lub usuniesz parametr (false jest domyślne) ESP nigdy nie będzie spać

„interwał snu”: 900000 to milis, czyli 15 minut, co oznacza, że co 15 minut ESP obudzi się i wykona niezbędny personel

Więc teraz każdy może łatwo grać zgodnie z potrzebami

Krok 7: Strojenie czujników

Aby zminimalizować wpływ ogrzewania wewnętrznego na czujnik temperatury BME280

Najpierw zrobiłem trochę rurki wokół czujnika i otworów. Jednak w moim trybie, gdy dioda LED jest normalnie wyłączona, a ESP śpi, nie jest to takie ważne. W innych przypadkach czujnik BME280 powinien gdzieś się przesunąć, aby wykluczyć wpływ nagrzewania się wnętrza. Jakkolwiek mały wpływ znalazłem, dlatego istnieją dwa parametry do skompensowania

„hum_corr”:10,0

co oznacza, że te wartości zostaną dodane po pomiarze

Drugi to kalibracja pomiaru napięcia baterii, {"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

służą do tego celu, ponieważ napięcie mierzone jest za dzielnikami rezystorowymi i porównywane z 3,3 V, grając z wartością cvalmax można uzyskać dokładne dostrojenie napięcia za pomocą wartości multimetru

Krok 8: Dodawanie urządzenia do zestawu Apple Home Kit

Dodawanie urządzenia do zestawu Apple Home Kit
Dodawanie urządzenia do zestawu Apple Home Kit

Wreszcie, gdy urządzenie działa poprawnie, można je dodać do zestawu Apple Home Kit i będzie można zobaczyć

wartości czujników na ekranie głównym Apple.

Najpierw musisz zrestartować urządzenie, gdy tylko urządzenie się uruchomi, nie przejdzie w stan uśpienia 20 minut to więcej niż wystarczająco

Następnie otwórz aplikację Home Kit na urządzeniu z systemem iOS i wybierz lub utwórz nowy Home1. Naciśnij Dodaj (+)

2. Wybierz Dodaj akcesorium.

3. Naciśnij Nie mam kodu lub Nie mogę skanować (dalsze skanowanie zostanie dodane)

4. Jeśli wszystko idzie dobrze, powinieneś zobaczyć swoje nowe urządzenie esp na liście (patrz zdjęcie)

5. Wybierz urządzenie i potwierdź dodanie bez oficjalnej certyfikacji

6. Wpisz hasło 11111111

7. To wszystko! Powinieneś zobaczyć, że urządzenie zostało pomyślnie sparowane, w przeciwnym razie rozpocznij proces parowania ponownie..

W oparciu o to ustawienie zobaczysz dwa urządzenia w Apple

1. Czujnik temperatury i czujnik szumu, wchodząc głęboko, wyświetla wartości na pełnym ekranie

2. Czujnik światła:) Właściwie Apple jest w stanie pokazać światło otoczenia, ale nie napięcie, dlatego napięcie baterii jest wyświetlane w luksach

Krok 9: OTA: Aktualizacje Over the Air

Przed rozpoczęciem jakiejkolwiek aktualizacji lepiej jest zrestartować ESP32, jak wspomniano wcześniej, nie przejdzie on w stan uśpienia przez pierwsze 20 minut

Istnieją dwie możliwości aktualizacji

  1. Konfiguracja za pomocą https://192.168.0. XX/browse można uzyskać dostęp do systemu plików na ESP i zmienić pliki konfiguracyjne
  2. Możesz całkowicie zaktualizować oprogramowanie układowe. w tym celu najpierw musisz utworzyć nowy. Można to zrobić za pomocą Arduino lub Visual Studio IDE. Następnie wpisz w przeglądarce https://192.168.0. XX/update, wybierz oprogramowanie i wciśnij update. Poczekaj, aż proces się zakończy, a otrzymasz odpowiedź OK, w przeciwnym razie powtórz krok ponownie

Zalecana: