Inhoudsopgave:

Tweerstationneke A.k.a. Nederlands Weerstation: 4 Stappen
Tweerstationneke A.k.a. Nederlands Weerstation: 4 Stappen

Video: Tweerstationneke A.k.a. Nederlands Weerstation: 4 Stappen

Video: Tweerstationneke A.k.a. Nederlands Weerstation: 4 Stappen
Video: А вот Булли заценил!😾 #симбочка #симба #тигра 2024, November
Anonim
Tweerstationneke A.k.a. Nederlands Weerstation
Tweerstationneke A.k.a. Nederlands Weerstation

Mijn vader is altijd geïnteresseerd in het laatste nieuws en de laatste weersinformatie. Dus dat bracht me bij het perfecte verjaardagscadeau toen hij 76 werd: een klein altijd-aan weerstation zonder onzin, het zit gewoon de hele dag stil in een hoek en geeft een samenvatting van de laatste voorspellingen.

Het is ontworpen rond twee Nederlandse websites. Waarschijnlijk kun je dat zien aan de grappige lokale titel van dit onderwerp! Men geeft elke 10 minuten de lokale voorspelling per stad in json-formaat. De andere geeft de regenvoorspelling voor de komende twee uur weer in platte tekst, wat altijd handig is om te weten. Ik weet zeker dat als je niet in Nederland woont, je dit onderwerp gemakkelijk kunt aanpassen aan een andere dienst.

Benodigdheden

  • Een ESP8266-bord; stel voor om een Wemos D1 mini te gebruiken
  • Een 1,8 inch TFT-scherm met 128*160 dots; 16 bit kleur
  • Een paar kabels
  • Het programma zoals het is of om mee te beginnen om je eigen te maken
  • Een mooie doos om alles in te zetten. Gebruik een standaard exemplaar of druk er zelf een af met het bijgevoegde ontwerp

Stap 1: Maak het prototype

Maak het prototype
Maak het prototype

Scherm en controller aansluiten

Gebruik een kleine platte kabel en soldeer het bord en het TFT-scherm aan elkaar. Gebruik de lijst om de onderdelen op de juiste manier aan te sluiten

TFT-SCHERM ------------------ WEMOS

LED ------------------------------- D8 SCK ---------------- --------------- D5SDA ------------------------------- D7A0 -- -------------------------------- D3RESET ----------------- ----------- D2CS ---------------------------------- D4GND --- ---------------------------- GNDVCC --------------------- ---------- 3V3

Als alternatief kunt u de LED op 3v3 zetten in plaats van pin D8. Ik heb pin D8 gebruikt om het apparaat rond 23.00 uur 's nachts in slaap te laten vallen en rond 7.00 uur weer wakker te maken. Effectief is dit het eerste moment dat het weerbericht na die tijd wordt gelezen, aangezien het de koptekst leest om de tijd te controleren. Er is geen realtime klok in dit apparaat.

Als dit allemaal werkt, sluit u uw USB-kabel aan op de Wemos en laadt u de software. Als het allemaal werkt, kun je beginnen met het bouwen van de doos.

Stap 2: Programma-ontwerp

Programma Ontwerp
Programma Ontwerp

Mijn ideeën over dit weerapparaat waar

  • Eenvoudig aan te passen aan een andere wifi-omgeving
  • Weerbericht en regenvoorspelling weergeven
  • Geen knoppen
  • Geen geluid, simpele qui, geen fuzz

Met dat in gedachten heb ik een programma gemaakt dat begint met de WifiManager-code wanneer het geen bekend wifi-netwerk kan ontdekken. Het creëert zijn eigen netwerk en toont de naam op het display. Dit geeft je de kans om de Wifi parameters in te stellen op je eigen thuisnetwerk.

Na deze setup toont het om de 20 seconden de weersvoorspelling en de regenneerslag. Als het om de een of andere reden niet mogelijk is om de volgende voorspelling af te lezen, wordt er een klein foutnummer weergegeven aan de rechterkant van het display; en de vorige afbeelding wordt weergegeven. In de volgende run wordt een nieuwe poging gedaan om de informatie op te halen.

De weersinformatie wordt van de site ontvangen in een bericht in json-stijl. De informatie erin wordt geconverteerd en opgeslagen in globale variabelen. Op deze manier kunnen we het ophalen van de informatie loskoppelen van het weergeven ervan. Er is geen reden om het weer sneller op te halen dan eens per 10 minuten.

Het krijgen van de regenneerslag is nog eenvoudiger. Het wordt geserveerd in platte tekst, met de verwachte hoeveelheid regen als een waarde van 0..255; een verticale balk; een tijd op elke regel. Dit voor elke 5 minuten gedurende de volgende 2 uur. De regenwaarde wordt op een slimme manier geleverd waarbij kleine waardes meer ruimte geven om het verschil als grotere waardes weer te geven. De gebruikte formule is als volgt:

mmuur = rond(pow(10, (regenwaarde - 109) / 32) * 10) / 10;

Merk op dat de "maal 10, gedeeld door 10" een truc is om ervoor te zorgen dat er 1 decimaal achter de punt staat. Afhankelijk van de maximaal verwachte hoeveelheid regen de komende 2 uur worden er 3 schalen gebruikt voor de grafiek;

  1. Max van 5 mm/uur verwacht
  2. Max van 20 mm/uur verwacht
  3. Max wordt genomen van de hoogste waarde in de prognose

Hier in Nederland ligt de all time high onze waarde rond de 80 mm/uur; dus deze schaal zal het perfect doen. Voor andere landen is het wellicht verstandig om dit te wijzigen.

Stap 3: Programmacode

Programmacode
Programmacode

Editor-instellingen

De software voor dit weerapparaat is gemaakt in de Arduino-programmeeromgeving. Voor uw gemak vindt u deze hier bijgevoegd. Gebruik het zoals het is; of verander het om het aan uw behoeften aan te passen. Alle tekst die op het TFT-scherm kan worden weergegeven, wordt bovenaan het programma GEDEFINIEERD; wat betekent dat je het gemakkelijk in je eigen taal kunt veranderen als je wilt. Ik heb de Wemos D1 mini gebruikt, maar vergelijkbare borden zullen ook werken.

In de Arduino omgeving heb ik de volgende instellingen gebruikt;

  • Bord: LOLIN (WEMOS) D1 RA & Mini
  • Uploadsnelheid: 115200
  • CPU-frequentie: 80 MHz
  • Flitsgrootte: 4M (Geen SPIFFS) V2 Lager geheugen uitgeschakeld

Er worden softwaretimers gebruikt om de loop() gemakkelijker en leesbaarder te maken. De weergave van de informatie is gescheiden van het downloaden van de informatie. Op deze manier kunnen we andere schermformaten etc gebruiken zonder het hele programma te hoeven veranderen.

Gebruik het.ino-bestand en laad het in de arduino-editor. Stel je bord in de editor in. Voeg het headerbestand toe dat ervoor zorgt dat de benodigde C-stijl PROGMEM-arrays in het programma worden opgenomen.

SD-kaart

Houd er rekening mee dat de meeste van de beschikbare 1,8 inch-schermen een SD-kaartsleuf aan de achterkant van het scherm hebben. Dit is een leuke functie waarmee je grote afbeeldingen op de kaart kunt opslaan. De meeste microcontrollers hebben niet al te veel geheugen aan boord, dus dat helpt.

Hoewel ik veel tijd besteed aan het proberen om de SD-kaart te laten werken met het scherm, kon ik geen werkbare situatie hebben. Ik zou het scherm kunnen gebruiken; een bestand succesvol van de SD-kaart ophalen, maar daarna kon ik het TFT-scherm niet meer bereiken. Het veranderen van bibliotheken, het veranderen van de volgorde van de bibliotheken en het "uitkleden" van het programma tot de kleinste instantie om andere mogelijkheden uit te sluiten hielpen me niet.

Om toe te voegen aan mijn frustratie; er zijn talloze voorbeelden op internet van mensen die soortgelijke dingen doen met positief resultaat, hmmm. Is er misschien een hardwareprobleem op mijn TFT-scherm? Of iets waar ik niet aan heb gedacht? Alle suggesties zijn welkom voor een volgende poging. Aan het eind na er een aantal avonden aan te hebben besteed; Ik besloot dat pad te verlaten. Aangezien de foto's slechts 50x50 pixels zijn (wat resulteert in 5000 bytes elk bij 16 bit kleur), is de ESP in staat om dit met gemak in PROGMEM op te slaan. Dus dat is de truc die ik heb gebruikt.

Deze keuze leverde weer een nieuwe uitdaging op. Hoe de BMP-afbeelding die ik had in een leesbaar formaat te krijgen. Na wat zoeken ontdekte ik de site van Henning Karlsen die deze puzzel eerder had opgelost. Hij creëerde een programma dat PNG-bestanden converteert naar C-arrays. Bedankt Henning!

Stap 4: Maak de doos

Maak de doos
Maak de doos
Maak de doos
Maak de doos
Maak de doos
Maak de doos

Dit is niet de eerste doos die ik nodig had. Veel standaard dozen zijn verkrijgbaar bij leveranciers. Met behulp van een kleine zaag, een mes, boor etc is het gemakkelijk om een gat te maken voor de display in de doos. Maar het is me nooit gelukt om een exacte mooie rechthoek te maken. Waarschijnlijk niet genoeg vaardigheden en/of geduld;-)

De oplossing: ik had geluk. Ik heb een universiteit die superman is als het gaat om technische dingen. Dat omvat ook 3D-ontwerp en -printen. Dus besloot hij veel van zijn vrije tijd te besteden aan het meten van het TFT-scherm en de microcontroller en er een doos omheen te maken. Het past allemaal mooi, bekijk de foto's maar eens. Het bevat zelfs snap-ons voor het display, een gat voor de USB-connector en een plek om de microcontroller te bevestigen.

Bedankt Arjan voor dit super werk!!! Sterker nog, hij was zo aardig om iedereen toegang te geven tot zijn werk, dus als je zijn bestanden downloadt via de link en deze voor je eigen 3D-printer gebruikt, kun je dezelfde doos met inhoud maken.

Aanbevolen: