Innehållsförteckning:

ESP8266 väderstationsklocka: 4 steg
ESP8266 väderstationsklocka: 4 steg

Video: ESP8266 väderstationsklocka: 4 steg

Video: ESP8266 väderstationsklocka: 4 steg
Video: Using HT16K33 4 digit seven segment display with ESP8266 NodeMCU and D1 Mini 2024, Juli
Anonim
ESP8266 Väderstationsklocka
ESP8266 Väderstationsklocka

Detta projekt är ett trevligt sätt att visa tid och väder i ett litet bekvämt paket. Jag kommer att förklara projektet, hur det fungerar och visa koden här.

Du kan trycka på olika knappar för att visa det aktuella vädret på en viss plats samt temperatur och tryck. Standardvyn är tiden som hämtas från en NTP -server.

Det finns ingen anledning att ställa in tiden eftersom tiden är synkroniserad från NTP -servern och är mycket exakt. I denna konfiguration har jag tiden och den lokala IP -adressen. Du kan ändra koden för att inkludera datum, väder, tryck och temperatur som ska visas på huvudskärmen eller på knapparna.

Steg 1: Schemat

Den schematiska
Den schematiska
Den schematiska
Den schematiska

Schemat är relativt enkelt och enkelt

Följ. Det finns en gerber -fil om du vill snurra ditt eget kretskort. Hela kretsen drivs av 5V från en mikro -USB -anslutning. Detta gör kretsen enkel och lätt att driva. 5V matas till en LM 3940 -regulator med lågt utfall, en LM 3940 som ger 3.3V till ESP8266. Det finns en USB -kontakt på ESP8266, men jag valde att inte använda den i allmänhet eftersom 5V också driver LCD -skärmen.

3.3V måste användas med ESP8266, du kan inte köra det direkt med 5V eftersom det kommer att döda kortet.

De två taktila switcharna är anslutna till D5 och D6 och är konfigurerade i koden för att få fram olika information på skärmen. Jag har dessa inställda på temperatur/tryck och prognos.

Alla komponenter löds enkelt på perfboard eller gerbern finns i min GitHub på

Steg 2: Koden

github.com/allenelectronics/esp8266weatherstation

Koden är sammanställd i Arduino IDE och behöver viss konfiguration för att fungera

Först måste du installera ESP8266 -kortet på IDE för att ladda upp koden till den.

Omfattande instruktioner om hur du gör detta finns här:

För att få väderfunktionen valde jag att använda RemoteMe som samlar in väderdata direkt från API och genererar kod som kan infogas i din kod. Du måste registrera dig och ställa in dataströmmen på deras webbplats:

Dokumentation om RemoteMe hittar du här:

Det finns några specifika definitioner som är unika för din installation som du måste slutföra innan du laddar upp:

#define WIFI_NAME "SSID GOES HERE"

#define WIFI_PASSWORD "LÖSENORD GÅR HÄR"

#define DEVICE_ID 1

#define DEVICE_NAME "HENTA FRÅN REMOTEME. ORG"

#define TOKEN "FÅ FRÅN REMOTEME. ORG"

Definitionerna här måste ställas in av dig baserat på dina wifi -detaljer och den token du får från RemoteMe.

Du måste se till att alla dessa bibliotek är installerade och ingår i koden. Jag har inkluderat länkar till de som är svårare att få.

#inkludera //https://github.com/remoteme/RemoteMeArduinoLibrary

#omfatta

#omfatta

#omfatta

#omfatta

Den sista delen som behöver ändras är din plats eftersom detta projekt inte använder GPS. Du måste ändra strängen "LOCATION":

annars om (buttonState2 == LOW && prevButtonState2 == HIGH) {

Serial.print ("LOCATION / n");

Serial.println (fc);

lcd.clear ();

lcd.print ("LOCATION");

lcd.setCursor (0, 1);

lcd.print (fc);

lcd.setCursor (0, 0);

fördröjning (5000);

prevButtonState2 = buttonState2;

Steg 3: Bygget

The Build
The Build
The Build
The Build

The Build

På den tiden hade jag inte tillgång till en 3d -skrivare, det här var mitt sista projekt med en hylla. Jag använde ett lättillgängligt larmpanelfodral som är utformat för 16x2 LCD.

Länk: https://www.ebay.co.uk/itm/86-Plastic-project-box-enclosure-case-for-diy-LCD1602-meter-tester-with-buttGA/363214674235?hash=item549148193b:g: IvQAAOSwNXpcFFrv

Allt är stoppat inuti fodralet, 16x2 LCD-skärmen är limmad på frontpanelen med kretskortet varmlimt på plats.

Steg 4: Slutsats

Slutsats

Detta är ett snyggt projekt för en stationär digital klocka som inte behöver justeras eller ställas in, det tar tid från en NTP -server och visar den på en tydlig bakgrundsbelyst LCD.

Detta är inte för en komplett nybörjare eftersom det finns en viss konfiguration av koden som krävs och dataströmmar måste också konfigureras. Om du har några frågor eller kommentarer får du gärna lämna en kommentar till mig.

Rekommenderad: