Indholdsfortegnelse:

Endnu en vejrstation (Y.A.W.S.): 18 trin (med billeder)
Endnu en vejrstation (Y.A.W.S.): 18 trin (med billeder)

Video: Endnu en vejrstation (Y.A.W.S.): 18 trin (med billeder)

Video: Endnu en vejrstation (Y.A.W.S.): 18 trin (med billeder)
Video: Vejret lige nu? Din egen vejrudsigt med vejrstationen fra NetAtmo 2024, Juli
Anonim
Endnu en vejrstation (Y. A. W. S.)
Endnu en vejrstation (Y. A. W. S.)

Dette projekt er mit bud på den altid populære vejrstation. Min er baseret på en ESP8266, en.96”OLED -skærm og et BME280 -miljøsensorarray. Vejrstationer synes at være et meget populært projekt. Mine adskiller sig fra de andre ved at bruge et BME280 -sensorarray i stedet for den populære DHT22 -temperatur- og fugtighedsføler. BME280 har en temperatur-, fugtigheds- og lufttrykssensor. Det bruger også I2C -grænsefladen. Den.96”OLED -skærm, der bruges, er også I2C. Det kan købes som enten I2C eller SPI eller begge dele. Jeg gik med I2C -versionen for at forenkle ledningerne. Med både OLED -displayet og BME280 ved hjælp af I2C og 3.3V var det meget let at lave et 'Y' -kabel for at forbinde begge enheder til ESP8266. Under udviklingen af dette projekt stødte jeg på flere vejrstationsprojekter på Internettet, der bruger ESP8266, det samme OLED -display og BME280. Så dette er ikke en original idé, men det er en original implementering.

BME280 giver indvendige miljødata. Udenfor vejrinformation fås fra OpenWeatherMap.org. Du bliver nødt til at tilmelde dig OpenWeatherMap.org for at få en nøgle til at få adgang til vejrdata. De tilbyder en gratis service, hvilket er hvad jeg brugte. Se trin Sådan får du en OpenWeatherMap -nøgle for instruktioner om, hvordan du får en nøgle.

En NTP-tidsserver bruges til at hente tidspunktet på dagen og ugedagen.

Vejr-, tid- og miljødata vises på OLED -displayet. Hvert stykke information har sin egen formaterede skærm. Skærmbillederne vises i fem sekunder, før de skifter til en anden. OpenWeatherMap.org åbnes hvert femtende minut for at opdatere vejrinformationen. BME280 læses cirka hvert femtreds sekund. Den skrifttype, der bruges på hver skærm, justeres automatisk for at vise alle oplysninger i den størst mulige skrifttype.

ESP8266 er også konfigureret til at være en webserver. Alle vejroplysninger kan tilgås ved hjælp af en browser fra din telefon, tablet på computeren. En af de skærme, der vises, viser webserverens IP -adresse.

ESP8266 kommer i forskellige former og størrelser. Jeg vælger et GEEKCREIT DoIt ESP12E Dev Kit V2. Denne er fuldt kompatibel med NodeMCU 'standarden' for ESP8266 selvstændige moduler. Den har en integreret 3.3V regulator, en CH340 som USB-til-seriel bro og NodeMCU automatisk nulstillingskredsløb. Du er fri til at bruge ethvert ESP8266-12-modul, du har. Bare vær opmærksom på, at du muligvis skal tilføje en 3.3V regulator eller andre kredsløb for at programmere den. Jeg byggede også en ved hjælp af en Witty Cloud ESP8266. Det tillod mig at pakke alt i en 1,5 tommer terning. Det nederste USB -brokort er afbrudt efter programmering. Jeg tilføjede en retvinklet overskriftsstift til 3.3V -hullet på Witty -brættet. Seletøjet blev lavet med to fire -pin -skaller, en to -pins -skal og to one -pin -skaller.

På billedet ovenfor er det kort, som ESP8266 -modulet er tilsluttet, et kredsløbskort, som jeg udviklede som et breakout -kort til ESP8266 og ESP32. Det accepterer NodeMCU -kompatible ESP8266 -kort med smal krop, The Witty Cloud ESP8266 -kort eller et ESP32 -kort fra GEEKCREIT. Alle de tilgængelige GPIO -ben er udbrudt til overskrifter for nem adgang. Jeg har fundet ud af, at de fleste udviklingsbrætter aldrig har nok strøm og jordstift. Hver gang du vil vedhæfte noget, har du brug for mindst en jordnål og de fleste gange en nål til at drive enheden. Hver række GPIO -ben er ledsaget af en 3,3V power pin og en jordstift. Jeg bruger det samme layout, som First Robotics bruger, strøm i midten. Jeg kan godt lide dette layout, fordi hvis du tilslutter noget baglæns, slipper du ikke den magiske røg. Brættet har et par ekstramateriale, en IR-sensor, en trykknapkontakt og en trefarvet LED. Jumpere kan bruges til at oprette forbindelse til en af disse funktioner. Hvis du er interesseret i et af disse ESPxx breakout boards, så kontakt mig.

Trin 1: Hvad skal du bruge:

Hvad du skal bruge
Hvad du skal bruge
Hvad du skal bruge
Hvad du skal bruge
Hvad du skal bruge
Hvad du skal bruge

1 - BME280 I2C Temperatur-, fugtigheds- og tryksensorkort

Jeg købte min på Ebay fra Kina for omkring $ 1,25 med gratis forsendelse. Fås også hos Adafruit eller Sparkfun

1 -.96”, 128x64, I2C OLED -skærm ved hjælp af SSD1306 -driver

Jeg købte min på Ebay fra Kina for omkring $ 4,00. Min er hvid. Du kan finde blå og hvid med et område med gult på toppen. Nogle sælges som SPI og I2C. Du skal muligvis flytte nogle modstande for at vælge I2C -drift. Den vigtige del er, at den bruger SD1306 -driverchippen. Fås også hos Adafruit.

1-NodeMCU ESP8266-12 med CH340

Du kan bruge ethvert ESP8266-12-modul, du ønsker. Jeg foretrækker dem med CH340 USB-til-seriel bro. Der var udslæt af falske FTDI og SI bridge chips for et par år siden, så jeg stoler ikke længere på andet end CH340.

2 - DuPont 4 -pins, 0,1 tommer (2,54 mm) pitch -skaller

2 - DuPont 2 -pins, 0,1 tommer (2,54 mm) pitch -skaller

12-DuPont hunkryds til 22-28 awg wire

Jeg får min på Ebay. Du kan også bruge Molex eller ethvert mærke, du foretrækker. Crimped pins eller IDC Valget er dit. Vær forsigtig med at købe de rigtige stifter til dine skaller. De er ikke mix og match. Du kan også bare lodde ledningerne til brædderne og fjerne konnektorerne. Hvis du bruger de krympede stifter, skal du bruge en crimper. Forsøg ikke at krympe med en tang. Det virker ikke.

1 - 5V, 1A minimum vægstrømforsyning.

Disse er billige og fås på Ebay. Få en med et mikro -USB -stik eller hvad der nu passer til dit ESP8266 -kort.

Du skal også bruge otte stykker 22-28 awg-ledning for at forbinde alt sammen. Eller du kan bare koble det hele til et stykke perfbræt. Det er op til dig.

Jeg har inkluderet et billede af, hvad der blev brugt til at bygge vejrstationen ved hjælp af en Witty Cloud ESP8266. Et billede beskriver, hvor man skal tilføje en retvinklet overskriftsstift til pickup 3.3V. En af de to pin -skaller erstattes af to one -pin -skaller. Jord- og 3,3V -ledninger er proppet ind i one -pin -skallerne.

Følg dette link for at hente kildekodefilerne fra GitHub -depotet; ESP8266-Weather-Station. ZIP -mappen eller den klonede mappe vil have en WeatherStation -mappe, der indeholder WeatherStation.ino og BME280.h. Disse er kildekodefiler. Der er også flere pdf -filer. PDF -filerne har stort set de samme oplysninger som denne instruerbare.

Trin 2: Værktøjer:

Værktøjer
Værktøjer
Værktøjer
Værktøjer

Efter at have prøvet mange mærker af crimpers, fandt jeg ud af, at den japanske ingeniør PA-21 eller PA-09 fungerer bedst til DuPont han- og hunkryds. Den er tilgængelig på Ebay eller Amazon. Enten vil fungere for DuPont -benene. PA-09 vil også gøre benene til de JST-stik, der normalt bruges på LiPo-batterier. Her er et link til en video om, hvordan du bruger Engineer crimpers med DuPont crimps; Sådan bruges PA-21 Crimpers

Instructables havde for nylig en god vejledning i brug af Weierli Tools SN-28B crimpers med DuPont pins og skaller. Du kan se det her; Lav en god Dupont Pin-Crimp HVER gang!

Trin 3: Lav selen:

Lav selen
Lav selen
Lav selen
Lav selen

Ledningsnettet er nøglen til dette projekt. Det er et grundlæggende ‘Y’ kabel med fire ledninger. Ovenfor er et billede af selen, jeg lavede. OLED -displayet og BME280 sensor array har den samme pinout. Det betyder, at de to firbenede skaller er identiske efter indsættelse af de krympede tråde. Jeg lavede min sele med de dobbelte krympede ledninger, der gik ind i de to to pin -skaller, der fastgøres til ESP8266 -kortet. Du kunne i stedet vælge at proppe de dobbelte krympede ledninger ind i en af de fire pin -skaller, hvilket gør det til en daisy chain -forbindelse. Enten vil fungere.

  1. Klip alle dine ledninger i længden. Jeg kan godt lide at bruge forskellige farver til hver ledning; rød til 3,3V, sort til jorden, gul til SCL og grøn til SDA.
  2. Strip den ene ende af hver ledning ca. 0,1 tommer.
  3. Drej trådene sammen og tilføj en hunkrymp.
  4. Når alle ledninger har en krympe i den ene ende, skal du fjerne alle ledningerne omkring 0,2 tommer.
  5. Drej trådene på to tråde i samme farve sammen.
  6. Når den er snoet, skal du trimme til ca. 0,1 tommer og tilføje en hunkrymp.
  7. Når alle trådpar er krympet, er det tid til at indsætte de krympede ender i skallerne.
  8. De to fire pin -skaller er proppet, fra venstre mod højre, med rød, sort, gul, grøn eller 3,3V, Gnd, SCL, SDA.
  9. En af de to pin -skaller får de røde og sorte ledninger.
  10. Den anden to -pins skal får de gule og grønne ledninger.

Trin 4: Tip:

Tip
Tip
Tip
Tip
Tip
Tip

Jeg fandt ud af, at når jeg bruger 28 awg wire med krympestifterne, har de en tendens til at falde af. Hvad jeg gør for at forhindre dette er at fjerne enden af ledningen dobbelt så længe som normalt. Vrid de udsatte ledninger sammen. Fold derefter den snoede tråd over for at fordoble tykkelsen. Når jeg nu krymper den, er tråden tyk nok til at holde tæt.

Trin 5: Tilslut det hele sammen:

Forbind det hele sammen
Forbind det hele sammen
Forbind det hele sammen
Forbind det hele sammen
Forbind det hele sammen
Forbind det hele sammen
  1. Sæt de fire pin -skaller i OLED -displayet og BME280 -kortene.
  2. Juster den røde ledning med Vcc og 3V3 benene.
  3. Slut den to -pin røde/sorte skal til et par 3V3 (3.3V) og GND -ben på ESP8266 -kortet. Der er tre steder på tavlen, hvor 3V3- og GND -stifter er passende. Undgå Vin (5V) og GND pins, da disse vil frigive den magiske røg fra dine OLED og BME280 boards. Sørg for, at den røde ledning er forbundet til 3V3 -stiften.
  4. Sæt den gule/grønne tobenede skal på D1 og D2 på ESP8266 -kortet. Den gule ledning (SCL) skal være på D1.

Dobbelttjek dine forbindelser. Hvis alt ser godt ud, er du klar til at tænde ESP8266 -kortet.

Trin 6: Sådan får du en OpenWeatherMap -nøgle

Sådan får du en OpenWeatherMap -nøgle
Sådan får du en OpenWeatherMap -nøgle

Du skal bruge en API -nøgle for at få adgang til OpenWeatherMap.org -webstedet for at få aktuelle vejroplysninger. De næste trin beskriver, hvordan du tilmelder dig OpenWeatherMap.org og får en API -nøgle.

Følg dette link til OpenWeatherMap.org.

Klik på API nær midten af toppen af websiden.

Trin 7: Sådan får du en OpenWeatherMap -nøgle, abonnér

Sådan får du en OpenWeatherMap -nøgle, abonnér
Sådan får du en OpenWeatherMap -nøgle, abonnér

Klik på knappen Abonner under Aktuelle vejrdata i venstre side.

Trin 8: Sådan får du en OpenWeatherMap -nøgle, Få API -nøgle

Sådan får du en OpenWeatherMap -nøgle, Få API -nøgle
Sådan får du en OpenWeatherMap -nøgle, Få API -nøgle

Klik på Hent APIkey og Start i kolonnen Gratis.

Trin 9: Sådan får du en OpenWeatherMap -nøgle, tilmelding

Sådan får du en OpenWeatherMap -nøgle, tilmelding
Sådan får du en OpenWeatherMap -nøgle, tilmelding

Klik på knappen Tilmelding under Sådan får du API -nøgle (APPID).

Trin 10: Sådan får du en OpenWeatherMap -nøgle, Opret konto

Sådan får du en OpenWeatherMap -nøgle, Opret konto
Sådan får du en OpenWeatherMap -nøgle, Opret konto

Udfyld alle felterne. Når du er færdig, skal du markere afkrydsningsfeltet Jeg accepterer servicevilkårene og fortrolighedspolitikken. Klik derefter på knappen Opret konto.

Tjek din e -mail for at få en besked fra OpenWeatherMap.org. Mailen indeholder din API -nøgle. Du skal kopiere API -nøglen til kildekoden til vejrstationen for at få det aktuelle vejr.

OpenWeatherMap.org gratis service har nogle begrænsninger. Det vigtigste er, at du ikke kan få adgang til det oftere end en gang hvert tiende minut. Dette burde ikke være et problem, fordi vejret ikke ændrer sig så hurtigt. De andre begrænsninger har at gøre med, hvilke oplysninger der er tilgængelige. Ethvert af de betalte abonnementer giver mere detaljerede vejroplysninger.

Trin 11: Konfigurer Arduino IDE:

Konfigurer Arduino IDE
Konfigurer Arduino IDE

Programudvikling blev udført ved hjælp af Arduino IDE Version 1.8.0. Du kan downloade den nyeste Arduino IDE her; Arduino IDE. Arduino -webstedet har fremragende vejledning til, hvordan man installerer og bruger IDE. Understøttelse af ESP8266 kan installeres i Arduino IDE ved at følge instruktionerne fra dette link: ESP8266 Addon to Arduino. Klik på knappen "Klon eller download" på websiden, og vælg "Download zip". ReadMe.md -filen har anvisninger til, hvordan man tilføjer ESP8266 -understøttelsen til Arduino IDE. Det er en ren tekstfil, som du kan åbne med enhver tekstredigerer.

ESP8266-plader findes i alle størrelser, former og bruger forskellige USB-til-serielle brochips. Jeg foretrækker de brædder, der bruger CH340 -brochippen. For et par år siden blev FTDI, SI og andre trætte af billige kloner, der påstod at være deres dele. Chipproducenterne ændrede deres driverkode til kun at fungere med deres egne ægte dele. Dette resulterede i en masse frustration, da folk opdagede, at USB-til-serielle broer ikke længere fungerede. Nu om dage holder jeg mig bare til de CH340-baserede USB-til-serielle broer for at undgå at købe boards, der måske eller måske ikke virker. Under alle omstændigheder skal du finde og installere den korrekte driver til brochippen, der bruges på dit bord. Dette er et link til det officielle websted for CH340 -driverne; CH341SER_EXE.

ESP8266 har ikke dedikeret I2C -hardware. Alle I2C-drivere til ESP8266 er baseret på bit-banging. Et af de bedre ESP8266 I2C -biblioteker er brzo_I2C -biblioteket. Det blev skrevet på samlingssprog til ESP8266 for at gøre det så hurtigt som muligt. OLED -displaybiblioteket, jeg bruger, bruger brzo_I2C -biblioteket. Jeg tilføjede kode for at få adgang til BME280 sensor array ved hjælp af brzo_I2C biblioteket.

Du kan få OLED-biblioteket her: ESP8288-OLED-SSD1306 Library.

Du kan få brzo_I2C biblioteket her: Brzo_I2C bibliotek.

Begge biblioteker skal installeres i din Arduino IDE. Arduino -webstedet har anvisninger til, hvordan man installerer zip -biblioteker i IDE her: Sådan installeres Zip -biblioteker.

Tip: Efter installation af ESP8266-kortpakken og bibliotekerne skal du lukke Arduino IDE og åbne den igen. Dette vil sikre, at ESP8266 -tavler og biblioteker vises i IDE.

Trin 12: Vælg dit bord:

Vælg dit bord
Vælg dit bord

Åbn Arduino IDE. Hvis du ikke har gjort det endnu, skal du installere ESP8266 -tilføjelsen, brzo_i2c -biblioteket og OLED -driverbiblioteket.

Klik på "Værktøjer" i den øverste menulinje. Rul ned i rullemenuen, hvor der står "Board:". Skub over til rullemenuen "Board Manager" og rul ned til; "NodeMCU 1.0 (ESP-12E-modul)". Klik på den for at vælge den. Lad alle de andre indstillinger forblive på deres standardværdi.

Trin 13: Vælg den serielle port:

Vælg den serielle port
Vælg den serielle port

Klik på "Værktøjer" i den øverste menulinje. Rul ned i rullemenuen, hvor der står "Port". Vælg den port, der passer til din computer. Hvis din port ikke dukker op, er enten dit board ikke tilsluttet, eller du har ikke indlæst driveren til din bridge -chip, eller også er dit board ikke tilsluttet, da du åbnede Arduino IDE. Enkel løsning er at lukke Arduino IDE, tilslut dit bord, indlæse eventuelle manglende drivere og åbn derefter Arduino IDE igen.

Trin 14: WeatherStation.ino

Du kan enten bruge Download -knapperne ovenfor eller følge dette link til GitHub for at få kildekoden; ESP8266-Weather-Station.

Filerne WeatherStation.ino og BME280.h skal være i den samme mappe. Mappenavnet skal matche navnet på.ino -filen (uden.ino -udvidelsen). Dette er et Arduino -krav.

Trin 15: Rediger WeatherStation.ino

Klik på "File" i den øverste menulinje. Klik på "Åbn". Find mappen WeatherStation i dialogboksen Filåbning, og vælg den. Du skal se to faner, en til WeatherStation og en til BME280.h. Hvis du ikke har begge faner, åbnede du den forkerte mappe, eller du downloadede ikke begge filer, eller du gemte dem ikke i den korrekte mappe. Prøv igen.

Du bliver nødt til at redigere WeatherStation.ino -filen for at tilføje SSID og adgangskode til dit WiFi -netværk. kig rundt på linje 62 for følgende;

// angiv SSID og adgangskode til dit WiFi -netværk her

const char* ssid = "yourssid"; const char* password = "password";

Erstat "yourssid" med SSID'et på dit WiFi -netværk.

Udskift "adgangskode" med adgangsnøglen til dit WiFi -netværk.

Du skal også tilføje din OpenWeatherMap -nøgle og postnummeret, hvor du bor. Se omkring linje 66 for følgende;

// læg din OpenWeatherMap.com -nøgle og postnummeret her

const char* owmkey = "din nøgle"; const char* owmzip = "yourzip, land";

Udskift "din nøgle" med nøglen hentet fra OpenWeatherMap.org.

Udskift "dit postnummer, land" med dit postnummer og land. Dit postnummer skal efterfølges af et komma og dit land ("10001, os").

Dernæst skal du indstille din tidszone og aktivere/deaktivere sommertid (DST). Se omkring linje 85 efter følgende;

// Den returnerede rå tid er i sekunder siden 1970. For at justere for tidszoner trækkes fra

// antallet af sekunders forskel for din tidszone. Negativ værdi vil // trække tiden fra, positiv værdi vil tilføje tid #definer TZ_EASTERN -18000 // antal sekunder om fem timer #definer TZ_CENTRAL -14400 // antal sekunder i fire timer #definer TZ_MOUTAIN -10800 // antal sekunder i tre timer #define TZ_PACIFIC -7200 // antal sekunder på to timer

// Juster tiden for din tidszone ved at ændre TZ_EASTERN til en af de andre værdier.

#define TIMEZONE TZ_EASTERN // skift dette til din tidszone

Der er en gruppe #define -sætninger, der definerer tidsforskydningen for forskellige tidszoner. Hvis din tidszone er der, skal du udskifte "TZ_EASTERN" i definitionen "TIMEZONE". Hvis din tidszone ikke er angivet, skal du oprette en. NTP -serveren giver tid som Greenwich Mean Time. Du skal enten tilføje eller fratrække et antal timer (i sekunder) for at nå frem til din lokale tid. Bare kopier et af "#define TZ_XXX" -udsagnene, og skift derefter navn og antal sekunder. Skift derefter "TZ_EASTERN" til din nye tidszone.

Du skal også beslutte dig for at bruge sommertid eller ej. For at deaktivere sommertid skal du udskifte "1" med et "0" i følgende linje;

#define DST 1 // indstillet til 0 for at deaktivere sommertid

Når det er aktiveret, vil DST automatisk gå frem eller forsinke tiden med en time, når det er relevant.

Trin 16: Upload koden til din ESP8266

Upload koden til din ESP8266
Upload koden til din ESP8266

Klik på det cirkulære højre vendte ikon, der er lige under "Rediger" i den øverste menulinje. Dette vil kompilere koden og uploade den til dit board. Hvis alt kompileres og uploades korrekt, skal OLED -displayet efter et par sekunder lyse, og den forbindelsesmeddelelse skal vises.

Trin 17: Sådan ses vejrdataets websted

Sådan ses vejrdataets websted
Sådan ses vejrdataets websted

Billedet ovenfor viser den webside, der betjenes af vejrstationen. Du kan få adgang til det ved hjælp af din pc, telefon eller tablet. Du skal blot åbne en browser og indtaste IP -adressen på vejrstationen som URL. Vejrstationens IP -adresse vises på en af vejrstationens skærme. Klik på Opdater side for at opdatere oplysningerne.

Trin 18: Tillykke, du er færdig

Det er det. Du skal nu have en fungerende vejrstation. Dit næste trin kan være at designe og lave en sag til at huse din vejrstation. Eller måske vil du tilføje et par skærme til for at vise vindkøling, dugpunkt, solopgangs- eller solnedgangstider eller en graf over barometriske trykændringer eller forudsige vejret ved hjælp af barometrisk tryk. God fornøjelse og nyd det.

Anbefalede: