Spisu treści:

Tweerstationneke A.k.a. Holenderska Stacja Pogodowa: 4 Kroki
Tweerstationneke A.k.a. Holenderska Stacja Pogodowa: 4 Kroki

Wideo: Tweerstationneke A.k.a. Holenderska Stacja Pogodowa: 4 Kroki

Wideo: Tweerstationneke A.k.a. Holenderska Stacja Pogodowa: 4 Kroki
Wideo: New York City's Financial District Walking Tour - 4K60fps with Captions 2024, Lipiec
Anonim
Tweerstationneke A.k.a. Holenderska Stacja Pogodowa
Tweerstationneke A.k.a. Holenderska Stacja Pogodowa

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

Zrób prototyp
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

Projekt programu
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;

  1. Oczekiwane maks. 5 mm/godzinę
  2. Oczekiwane maks. 20 mm/godzinę
  3. 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

Kod programu
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

Utwórz pudełko
Utwórz pudełko
Utwórz pudełko
Utwórz pudełko
Utwórz pudełko
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: