Spisu treści:
- Krok 1: Części, które są wymagane
- Krok 2: Okablowanie i montaż
- Krok 3: Wgrywanie oprogramowania układowego do ESP32
- Krok 4: Wgrywanie gotowego oprogramowania
- Krok 5: Konfiguracja
- Krok 6: Dostrajanie i zużycie energii
- Krok 7: Strojenie czujników
- Krok 8: Dodawanie urządzenia do zestawu Apple Home Kit
- Krok 9: OTA: Aktualizacje Over the Air
Wideo: Stacja pogodowa ESP32 Zasilana energią słoneczną: 9 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
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
- 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ż
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
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:
- 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
- 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
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
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
- Konfiguracja za pomocą https://192.168.0. XX/browse można uzyskać dostęp do systemu plików na ESP i zmienić pliki konfiguracyjne
- 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:
Modułowa słoneczna stacja pogodowa: 5 kroków (ze zdjęciami)
Modułowa słoneczna stacja pogodowa: Jednym z projektów, które chciałem zbudować od jakiegoś czasu, była modułowa stacja pogodowa. Modułowa w tym sensie, że możemy dodać pożądane czujniki po prostu zmieniając oprogramowanie. Modułowa Stacja Pogodowa jest podzielona na trzy części. Płyta główna ma W
Stacja pogodowa NaTaLia: stacja pogodowa zasilana energią słoneczną Arduino Wykonana we właściwy sposób: 8 kroków (ze zdjęciami)
Stacja pogodowa NaTaLia: Stacja pogodowa zasilana energią słoneczną Arduino Wykonana we właściwy sposób: po roku udanej pracy w 2 różnych lokalizacjach dzielę się planami projektu stacji pogodowej zasilanej energią słoneczną i wyjaśniam, jak ewoluował w system, który może naprawdę przetrwać przez długi czas okresy z energii słonecznej. Jeśli obserwujesz
NIESAMOWITE DIY Zewnętrzna lampa LED zasilana energią słoneczną: 9 kroków
NIESAMOWITE DIY Zewnętrzna lampa LED zasilana energią słoneczną: Cześć! W tej instrukcji możesz dowiedzieć się, jak zbudować tanią i łatwą lampę LED zasilaną energią słoneczną! Ładuje akumulator w ciągu dnia i świeci bardzo jasną diodą COB w nocy! Wystarczy postępować zgodnie z instrukcjami! Możesz to zrobić! To naprawdę łatwe i przyjemne! Ten des
Stacja ładująca telefon zasilana energią słoneczną: 4 kroki
Stacja ładująca telefon zasilana energią słoneczną: rozładowany telefon jest powszechnym problemem pierwszego świata. Na szczęście dzięki temu układowi możesz wykorzystać moc słońca do zasilania telefonu. Ten samouczek dotyczy TYLKO strony obwodu. Wszelkie faktyczne zabezpieczenie systemu należy uzyskać gdzie indziej
Stacja pogodowa WiFi zasilana energią słoneczną V1.0: 19 kroków (ze zdjęciami)
Stacja pogodowa WiFi zasilana energią słoneczną V1.0: W tej instrukcji pokażę, jak zbudować stację pogodową WiFi zasilaną energią słoneczną z tablicą Wemos. Wemos D1 Mini Pro ma niewielkie rozmiary, a szeroka gama osłon typu plug-and-play sprawia, że jest idealnym rozwiązaniem do szybkiego