Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Zrób prototyp
- Krok 2: Projekt programu
- Krok 3: Kod programu
- Krok 4: Utwórz pudełko
Wideo: Tweerstationneke A.k.a. Holenderska Stacja Pogodowa: 4 Kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
Mój tata jest zawsze zainteresowany najnowszymi wiadomościami i najświeższymi informacjami o pogodzie. To doprowadziło mnie do idealnego prezentu urodzinowego, kiedy skończył 76 lat: Mała, zawsze włączona stacja pogodowa bez żadnych bzdur, po prostu siedzi cicho w kącie przez cały dzień i daje podsumowanie najnowszych prognoz.
Został zaprojektowany wokół dwóch holenderskich stron internetowych. Zapewne widać to po śmiesznym lokalnym tytule tego tematu! Jedna podaje lokalną prognozę dla miasta co 10 minut w formacie json. Drugi podaje prognozę deszczu na następne dwie godziny w formacie zwykłego tekstu, który zawsze jest przydatny. Jestem pewien, że jeśli nie mieszkasz w Holandii, możesz łatwo dostosować ten temat do dowolnej innej usługi.
Kieszonkowe dzieci
- Płytka ESP8266; sugeruj użycie Wemos D1 mini
- 1,8-calowy ekran TFT z 128*160 punktami; 16-bitowy kolor
- Kilka kabli
- Program taki, jaki jest lub na początek, aby stworzyć własny
- Ładne pudełko, aby to wszystko złożyć. Użyj standardowego lub wydrukuj własny z załączonym projektem
Krok 1: Zrób prototyp
Podłączanie ekranu i kontrolera
Użyj małego płaskiego kabla i przylutuj płytkę i ekran TFT. Użyj listy, aby połączyć części we właściwy sposób
EKRAN TFT ------------------ WEMOS
LED ------------------------------- D8 SCK ----- --------------- D5SDA ------------------------------- D7A0 -- -------------------------------- D3RESET ----------------- ----------- D2CS ---------------------------------- D4GND --- ---------------------------- GNDVCC --------------------- ---------- 3V3
Alternatywnie możesz umieścić diodę LED na 3v3 zamiast pinu D8. Użyłem pinu D8, aby urządzenie zasypiało około 23:00 w nocy i budziło się ponownie około 07:00. Skuteczne będzie to, że będzie to pierwszy moment, w którym odczyta biuletyn pogodowy po tym czasie, ponieważ odczytuje nagłówek, aby sprawdzić godzinę. W tym urządzeniu nie ma zegara czasu rzeczywistego.
Jeśli to wszystko działa, podłącz kabel USB do Wemos i załaduj oprogramowanie. Jeśli to wszystko działa, możesz zacząć budować pudełko.
Krok 2: Projekt programu
Moje pomysły na to urządzenie pogodowe, gdzie
- Łatwo dostosować do innego środowiska Wi-Fi
- Wyświetl prognozę pogody i prognozę deszczu
- Brak przycisków
- Bez dźwięku, proste qui, bez fuzz
Mając to na uwadze, stworzyłem program, który zaczyna się od kodu WifiManager, gdy nie może wykryć znanej sieci Wifi. Tworzy własną sieć i pokazuje nazwę na wyświetlaczu. Daje to możliwość ustawienia parametrów Wifi do własnej sieci domowej.
Po tej konfiguracji wyświetla na zmianę prognozę pogody i opady deszczu co 20 sekund. Jeśli z jakiegoś powodu nie jest możliwe odczytanie kolejnej prognozy, po prawej stronie wyświetlacza pojawi się mały numer błędu; i zostanie wyświetlony poprzedni obraz. W następnym przebiegu podejmowana jest nowa próba odzyskania informacji.
Informacje o pogodzie są odbierane z witryny w wiadomości w stylu json. Informacje w nim zawarte są konwertowane i zapisywane w zmiennych globalnych. W ten sposób możemy oddzielić pobieranie informacji od ich wyświetlania. Nie ma powodu, aby pobierać pogodę szybciej niż raz na 10 minut.
Uzyskanie opadów deszczu jest jeszcze prostsze. Jest serwowany w formacie zwykłego tekstu, z oczekiwaną ilością deszczu jako wartość 0..255; pionowy pasek; czas na każdej linii. To co 5 minut przez następne 2 godziny. Wartość deszczu jest dostarczana w inteligentny sposób, gdzie małe wartości dają więcej miejsca na pokazanie różnicy jako większe wartości. Zastosowana formuła wygląda następująco:
mmhour = round(pow(10, (wartość deszczu - 109) / 32) * 10) / 10;
Zauważ, że „razy 10, dziel przez 10” to sztuczka, która zapewnia, że za kropką mamy 1 miejsce po przecinku. W zależności od maksymalnej ilości opadów spodziewanej w ciągu najbliższych 2 godzin na wykresie używane są 3 skale;
- Oczekiwane maks. 5 mm/godzinę
- Oczekiwane maks. 20 mm/godzinę
- Max jest brane z najwyższej wartości w prognozie
Tutaj w Holandii najwyższa w historii nasza wartość wynosi około 80 mm/godz.; więc ta skala doskonale się sprawdzi. W przypadku innych krajów rozsądnie byłoby to zmienić.
Krok 3: Kod programu
Ustawienia edytora
Oprogramowanie do tego urządzenia pogodowego tworzone jest w środowisku programistycznym Arduino. Znajdziesz go tutaj dla Twojej wygody. Użyj go tak, jak jest; lub zmień go do swoich potrzeb. Wszystkie teksty, które mogą być wyświetlane na ekranie TFT, są ZDEFINIOWANE na górze programu; co oznacza, że możesz łatwo zmienić go na swój własny język, jeśli chcesz. Użyłem Wemos D1 mini, ale podobne płyty też będą działać.
W środowisku Arduino użyłem następujących ustawień;
- Wyżywienie: LOLIN (WEMOS) D1 RA i Mini
- Szybkość wysyłania: 115200
- Częstotliwość procesora: 80 MHz
- Rozmiar Flash: 4M (bez SPIFFS) V2 Dolna pamięć wyłączona
Timery programowe są używane, aby uczynić loop() łatwiejszym i bardziej czytelnym. Wyświetlanie informacji jest oddzielone od pobierania informacji. W ten sposób możemy korzystać z innych rozmiarów ekranu itp. bez konieczności zmiany całego programu.
Użyj pliku.ino i załaduj go w edytorze arduino. Skonfiguruj swoją tablicę w edytorze. Dołącz plik nagłówkowy, który zapewnia, że potrzebne tablice PROGMEM w stylu C są zawarte w programie.
karta SD
Zwróć uwagę, że większość dostępnych wyświetlaczy 1,8 cala ma gniazdo kart SD z tyłu ekranu. Jest to fajna funkcja, która pomaga przechowywać duże obrazy na karcie. Większość mikrokontrolerów nie ma na pokładzie zbyt dużej ilości pamięci, więc to pomaga.
Chociaż spędzam dużo czasu próbując zmusić kartę SD do pracy z wyświetlaczem, nie byłem w stanie zaistnieć w realnej sytuacji. przydałby mi się wyświetlacz; pomyślnie pobrać plik z karty SD, ale po tym nie mogłem już dotrzeć do ekranu TFT. Zmiana bibliotek, zmiana kolejności bibliotek i „rozbieranie” programu do najmniejszego ciała, aby wykluczyć inne możliwości, nie pomogły mi.
Aby dodać do mojej frustracji; w internecie jest mnóstwo przykładów ludzi robiących podobne rzeczy z pozytywnym skutkiem, hmmm. Może być problem sprzętowy na moim ekranie TFT? Czy coś, o czym nie pomyślałem? Wszelkie sugestie są mile widziane przy następnej próbie. Na koniec po spędzeniu na nim kilku wieczorów; Postanowiłem opuścić tę ścieżkę. Ponieważ obrazy mają tylko 50x50 pikseli (co daje 5000 bajtów każdy w 16-bitowym kolorze), ESP jest w stanie z łatwością przechowywać to w PROGMEM. Więc to jest sztuczka, której użyłem.
Ten wybór zaowocował kolejnym wyzwaniem. Jak uzyskać obraz BMP, który miałem w czytelnym formacie. Po kilku poszukiwaniach odkryłem stronę od Henninga Karlsena, który wcześniej rozwiązał tę zagadkę. Stworzył program, który konwertuje pliki typu-p.webp
Krok 4: Utwórz pudełko
To nie jest pierwsze pudełko, którego potrzebowałem. Wiele standardowych pudełek jest dostępnych u dostawców. Za pomocą małej piły, noża, wiertarki itp. łatwo zrobić otwór na wyświetlacz w pudełku. Ale nigdy nie udało mi się zrobić dokładnie ładnego prostokąta. Prawdopodobnie za mało umiejętności i/lub cierpliwości;-)
Rozwiązanie: miałem szczęście. Mam uczelnię, która jest jak superman, jeśli chodzi o majstrowanie przy sprawach technicznych. Obejmuje to również projektowanie i drukowanie 3D. Postanowił więc poświęcić dużo wolnego czasu na zmierzenie wyświetlacza TFT i mikrokontrolera i stworzenie wokół niego pudełka. Wszystko ładnie pasuje, spójrz na zdjęcia. Zawiera nawet zatrzaski na wyświetlacz, otwór na złącze USB i miejsce do zamocowania mikrokontrolera.
Dzięki Arjanowi za super wykonaną robotę!!! Co więcej, był tak miły, że dał wszystkim dostęp do swojej pracy, więc jeśli pobierzesz jego pliki z linku i użyjesz go do własnej drukarki 3D, możesz stworzyć to samo pudełko z zawartością.
Zalecana:
Ręczna stacja pogodowa: 4 kroki
Przenośna stacja pogodowa: W tej instrukcji będziemy używać Arduino, wyświetlacza OLED i czujnika środowiskowego SparkFun z czujnikami CCS811 i BME280 na pokładzie, aby zbudować przenośne urządzenie, które mierzy temperaturę, wilgotność, poziomy TVOC, ciśnienie barometryczne
Mini stacja pogodowa wykorzystująca Arduino i ThingSpeak: 4 kroki
Mini stacja pogodowa wykorzystująca Arduino i ThingSpeak: Witam wszystkich. W tej instrukcji poprowadzę Cię przez kroki, aby stworzyć spersonalizowaną mini stację pogodową. Ponadto będziemy używać interfejsu API ThingSpeak do przesyłania naszych danych o pogodzie na ich serwery, albo do czego służy statystyka pogodowa
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
Stacja pogodowa: ESP8266 z głębokim uśpieniem, SQL, wykresami Flask&Plotly: 3 kroki
Stacja pogodowa: ESP8266 z funkcją Deep Sleep, SQL, Graphing firmy Flask&Plotly: Czy fajnie byłoby poznać temperaturę, wilgotność lub natężenie światła na balkonie? Wiem, że bym to zrobił. Zrobiłem więc prostą stację pogodową do zbierania takich danych. Poniższe sekcje to kroki, które podjąłem, aby je zbudować. Zaczynajmy
Stacja pogodowa DIY i stacja czujników WiFi: 7 kroków (ze zdjęciami)
DIY Stacja pogodowa i stacja z czujnikami WiFi: W tym projekcie pokażę Ci, jak stworzyć stację pogodową wraz ze stacją czujników WiFi. Stacja czujnikowa mierzy lokalne dane dotyczące temperatury i wilgotności i przesyła je przez Wi-Fi do stacji pogodowej. Stacja pogodowa wyświetla następnie t