INHOUDSOPGAWE:

Nog 'n weerstasie (Y.A.W.S.): 18 stappe (met foto's)
Nog 'n weerstasie (Y.A.W.S.): 18 stappe (met foto's)

Video: Nog 'n weerstasie (Y.A.W.S.): 18 stappe (met foto's)

Video: Nog 'n weerstasie (Y.A.W.S.): 18 stappe (met foto's)
Video: Nov 5th, 2023 Podcast: Winter is Coming. Apps Not Paying Drivers! 2024, November
Anonim
Nog 'n weerstasie (Y. A. W. S.)
Nog 'n weerstasie (Y. A. W. S.)

Hierdie projek is my mening oor die immer gewilde weerstasie. Myne is gebaseer op 'n ESP8266, 'n.96 OLED -skerm en 'n BME280 omgewing sensor sensor reeks. Weerstasies blyk 'n baie gewilde projek te wees. Myne onderskei hom van die ander deur 'n BME280 -sensorreeks te gebruik in plaas van die gewilde DHT22 -temperatuur- en humiditeitsensor. Die BME280 het 'n temperatuur-, humiditeits- en lugdruksensor. Dit gebruik ook die I2C -koppelvlak. Die.96”OLED -skerm wat gebruik word, is ook I2C. Dit kan gekoop word as I2C of SPI of albei. Ek het die I2C -weergawe gebruik om die bedrading te vereenvoudig. Met beide die OLED -skerm en die BME280 met I2C en 3.3V was dit baie maklik om 'n 'Y' -kabel te maak om albei toestelle aan die ESP8266 te koppel. By die ontwikkeling van hierdie projek het ek op die internet verskeie weerstasieprojekte teëgekom wat die ESP8266, dieselfde OLED -skerm en die BME280 gebruik. Dit is dus nie 'n oorspronklike idee nie, maar dit is 'n oorspronklike implementering.

Die BME280 bied binne -omgewing data. Weerinligting word verkry vanaf OpenWeatherMap.org. U moet by OpenWeatherMap.org aanmeld om 'n sleutel te kry om toegang tot die weerdata te verkry. Hulle bied 'n gratis diens, wat ek gebruik het. Sien die stap Hoe om 'n OpenWeatherMap -sleutel te kry vir instruksies oor hoe om 'n sleutel te bekom.

'N NTP-tydbediener word gebruik om die tyd van die dag en die dag van die week te bepaal.

Die weer-, tyd- en omgewingsdata word op die OLED -skerm vertoon. Elke inligtingstuk het sy eie geformateerde skerm. Die skerms word vyf sekondes lank vertoon voordat dit na 'n ander een oorgeskakel word. Elke vyftien minute word toegang tot OpenWeatherMap.org verkry om die weerinligting te verfris. Die BME280 word ongeveer elke vyf-en-vyftig sekondes gelees. Die lettertipe wat op elke skerm gebruik word, word outomaties aangepas om al die inligting in die grootste moontlike lettertipe te wys.

Die ESP8266 is ook ingestel op 'n webbediener. Al die weerinligting kan verkry word met 'n blaaier vanaf u telefoon, tabletrekenaar. Een van die skerms wat vertoon word, toon die IP -adres van die webbediener.

Die ESP8266 kom in verskillende vorms en groottes voor. Ek kies 'n GEEKCREIT DoIt ESP12E Dev Kit V2. Hierdie een is ten volle versoenbaar met die NodeMCU 'standaard' vir selfstandige ESP8266 -modules. Dit het 'n geïntegreerde 3.3V-reguleerder, 'n CH340 as die USB-na-seriële brug en die NodeMCU-outomatiese terugstellingskring. U is vry om enige ESP8266-12-module wat u het, te gebruik. Let daarop dat u moontlik 'n 3.3V -reguleerder of ander stroombane moet byvoeg om dit te programmeer. Ek het ook een gebou met 'n Witty Cloud ESP8266. Dit het my in staat gestel om alles in 'n kubus van 1,5 duim te verpak. Die onderste USB -brugbord word na die programmering ontkoppel. Ek het 'n reghoekige koppen by die 3.3V -gat op die Witty -bord gevoeg. Die harnas is gemaak met twee vierpen -skulpe, een twee -pen dop en twee een -pen skulpe.

Op die foto hierbo is die bord waarop die ESP8266 -module ingeprop is, 'n kring wat ek ontwikkel het as 'n uitbreekbord vir die ESP8266 en ESP32. Dit aanvaar die NodeMCU -versoenbare ESP8266 -borde met smal liggaam, die Witty Cloud ESP8266 -bord of 'n ESP32 -bord van GEEKCREIT. Al die beskikbare GPIO -penne word na die opskrifte uitgebreek vir maklike toegang. Ek het gevind dat die meeste ontwikkelingsborde nooit genoeg krag- en grondpenne het nie. Elke keer as u iets wil heg, benodig u ten minste 'n grondpen en meestal 'n pen om die toestel aan te dryf. Elke ry GPIO -penne word vergesel van 'n 3.3V -kragpen en 'n grondpen. Ek gebruik dieselfde uitleg as wat First Robotics gebruik, krag in die middel. Ek hou van hierdie uitleg, want as jy iets agteruit aansluit, laat jy nie die towerrook vry nie. Die bord het 'n paar ekstra's, 'n IR-sensor, 'n drukknopskakelaar en 'n driekleurige LED. Springers kan gebruik word om aan enige van hierdie funksies te koppel. Kontak my as u belangstel in een van hierdie ESPxx -uitbreekborde.

Stap 1: Wat u benodig:

Wat u benodig
Wat u benodig
Wat u benodig
Wat u benodig
Wat u benodig
Wat u benodig

1 - BME280 I2C temperatuur-, humiditeits- en druksensorbord

Ek het myne op Ebay uit China vir ongeveer $ 1,25 gekoop met gratis aflewering. Ook beskikbaar by Adafruit of Sparkfun

1 -.96”, 128x64, I2C OLED -skerm met SSD1306 -bestuurder

Ek het myne op Ebay vir ongeveer $ 4,00 uit China gekoop. Myne is wit. U vind blou en wit met 'n geel oppervlak bo -op. Sommige word verkoop as SPI en I2C. Miskien moet u 'n paar weerstande skuif om I2C -werking te kies. Die belangrike deel is dat dit die SD1306 -bestuurderskyfie gebruik. Ook beskikbaar by Adafruit.

1-NodeMCU ESP8266-12 met CH340

U kan enige gewenste ESP8266-12-module gebruik. Ek verkies diegene met die CH340 USB-na-seriële brug. Daar was 'n paar jaar gelede 'n uitslag van valse FTDI- en SI -brugskyfies, so ek vertrou niks meer as die CH340 nie.

2 - DuPont 4 -pen, 0,1 duim (2,54 mm) steekdoppe

2 - DuPont 2 -pen, 0,1 duim (2,54 mm) steekdoppe

12-DuPont vroulike krimp vir 22-28 awg draad

Ek kry myne op Ebay. U kan ook Molex of enige ander handelsmerk wat u verkies, gebruik. Krimpspelde of IDC Die keuse is u eie. Wees versigtig dat u die regte penne vir u skulpe koop. Hulle is nie meng -en -pas nie. U kan ook die drade aan die planke soldeer en die verbindings uitskakel. As u die krimppenne gebruik, benodig u 'n krimp. Moenie krimp met 'n tang nie. Dit werk nie.

1 - 5V, 1A minimum muurkragpakket.

Dit is goedkoop en beskikbaar op eBay. Kry een met 'n mikro -USB -aansluiting of wat ook al met u ESP8266 -bord.

U benodig ook agt stukke 22-28 awg draad om alles aan mekaar te koppel. Of u kan dit alles op 'n stuk perf board plak. Dit is aan jou.

Ek het 'n prentjie ingesluit van wat gebruik is om die weerstasie te bou met behulp van 'n Witty Cloud ESP8266. Een prentjie gee 'n uiteensetting van waar 'n reghoekige kopspeld by die bakkie 3.3V gevoeg moet word. Een van die twee speldoppe word vervang deur twee eenpen -doppe. Grond- en 3.3V -drade word in die eenpen -skulpe gepak.

Volg hierdie skakel om die bronkode -lêers uit die GitHub -bewaarplek te haal; ESP8266-Weerstasie. Die zip -gids of die gekloonde gids bevat 'n WeatherStation -lêergids wat WeatherStation.ino en BME280.h bevat. Dit is die bronkode lêers. Daar is ook verskeie pdf -lêers. Die pdf -lêers bevat baie dieselfde inligting as hierdie instruksies.

Stap 2: Gereedskap:

Gereedskap
Gereedskap
Gereedskap
Gereedskap

Nadat ek baie handelsmerke probeer het, het ek gevind dat die Japannese ingenieur PA-21 of PA-09 die beste werk vir die DuPont-manlike en vroulike krimp. Dit is beskikbaar op Ebay of Amazon. Beide werk vir die DuPont -penne. Die PA-09 sal ook die penne doen vir die JST-verbindings wat algemeen op LiPo-batterye gebruik word. Hier is 'n skakel na 'n video oor die gebruik van die ingenieurknypers met DuPont -krimp; Hoe om PA-21 Crimpers te gebruik

Instructables het onlangs 'n wonderlike handleiding gehad oor die gebruik van die Weierli Tools SN-28B-krimpers met DuPont-penne en doppe. U kan dit hier sien; Maak elke keer 'n goeie Dupont Pin-Crimp!

Stap 3: Maak die harnas:

Maak die harnas
Maak die harnas
Maak die harnas
Maak die harnas

Die bedradingskabel is die sleutel tot hierdie projek. Dit is 'n basiese 'Y' -kabel met vier drade. Hierbo is 'n prentjie van die tuig wat ek gemaak het. Die OLED -skerm en die BME280 -sensorreeks het dieselfde pinout. Dit beteken dat die twee vierpen -skulpe identies is nadat die krimpdrade geplaas is. Ek het my harnas gemaak met die dubbele krimpdrade wat in die twee penne kom wat aan die ESP8266 -bord geheg is. U kan eerder die dubbele krimpdrade in een van die vier penne hou, sodat dit soos 'n daisy -kettingaansluiting lyk. Beide sal werk.

  1. Sny al u drade in lengte. Ek hou daarvan om verskillende kleure vir elke draad te gebruik; rooi vir 3.3V, swart vir grond, geel vir SCL en groen vir SDA.
  2. Trek die een kant van elke draad ongeveer 0,1 duim af.
  3. Draai die drade saam en voeg 'n vroulike krimp by.
  4. Sodra al die drade aan die een kant gekrimp is, stroop al die drade ongeveer 0,2 duim.
  5. Draai die drade van twee drade van dieselfde kleur saam.
  6. Sodra dit verdraai is, sny tot ongeveer 0,1 duim en voeg 'n vroulike krimp by.
  7. As al die draadpare gekrimp is, is dit tyd om die krimppunte in die doppe te steek.
  8. Die twee vierpen -skulpe is van links na regs gevul met rooi, swart, geel, groen of 3.3V, Gnd, SCL, SDA.
  9. Een van die twee speldoppe kry die rooi en swart drade.
  10. Die ander twee pen dop kry die geel en groen drade.

Stap 4: Wenk:

Wenk
Wenk
Wenk
Wenk
Wenk
Wenk

Ek het gevind dat wanneer ek 28 awg -draad met die krimppenne gebruik, dit geneig is om af te val. Wat ek doen om dit te voorkom, is om die einde van die draad twee keer so lank as normaal te stroop. Draai die blootgestelde drade saam. Vou dan die gedraaide draad om die dikte te verdubbel. As ek dit nou krimp, is die draad dik genoeg om styf vas te hou.

Stap 5: Verbind dit alles saam:

Verbind dit alles saam
Verbind dit alles saam
Verbind dit alles saam
Verbind dit alles saam
Verbind dit alles saam
Verbind dit alles saam
  1. Steek die vierpen -skulpe in die OLED -skerm en die BME280 -borde.
  2. Rig die rooi draad in ooreenstemming met die Vcc en 3V3 penne.
  3. Koppel die twee -pen rooi/swart dop aan 'n paar 3V3 (3.3V) en GND -penne op die ESP8266 -bord. Daar is drie plekke op die bord waar 3V3- en GND -penne op mekaar geplaas word. Vermy die Vin (5V) en GND penne, aangesien dit die towerrook van u OLED- en BME280 -borde sal vrylaat. Maak seker dat die rooi draad aan die 3V3 -pen gekoppel is.
  4. Koppel die geel/groen twee -pen dop aan D1 en D2 op die ESP8266 -bord. Die geel draad (SCL) moet op D1 wees.

Kontroleer u verbindings dubbel. As alles goed lyk, is u gereed om die ESP8266 -bord aan te skakel.

Stap 6: Hoe om 'n OpenWeatherMap -sleutel te kry

Hoe om 'n OpenWeatherMap -sleutel te kry
Hoe om 'n OpenWeatherMap -sleutel te kry

U benodig 'n API -sleutel om toegang te verkry tot die OpenWeatherMap.org -webwerf om die huidige weerinligting te verkry. Die volgende paar stappe beskryf hoe u by OpenWeatherMap.org aanmeld en 'n API -sleutel kry.

Volg hierdie skakel na OpenWeatherMap.org.

Klik op API naby die middel van die bokant van die webblad.

Stap 7: Hoe om 'n OpenWeatherMap -sleutel te kry, teken in

Hoe om 'n OpenWeatherMap -sleutel te kry, teken in
Hoe om 'n OpenWeatherMap -sleutel te kry, teken in

Klik aan die linkerkant onder Huidige weerdata op die knoppie Teken in.

Stap 8: Hoe om 'n OpenWeatherMap -sleutel te kry, 'n API -sleutel

Hoe om 'n OpenWeatherMap -sleutel te kry, kry API -sleutel
Hoe om 'n OpenWeatherMap -sleutel te kry, kry API -sleutel

Klik op Get APIkey en begin in die gratis kolom.

Stap 9: Hoe om 'n OpenWeatherMap -sleutel by aanmelding te kry

Hoe om 'n OpenWeatherMap -sleutel, aanmelding, te kry
Hoe om 'n OpenWeatherMap -sleutel, aanmelding, te kry

Klik op die aanmeldknoppie onder Hoe om 'n API -sleutel (APPID) te kry.

Stap 10: Hoe om 'n OpenWeatherMap -sleutel te kry, skep 'n rekening

Hoe om 'n OpenWeatherMap -sleutel te kry, skep 'n rekening
Hoe om 'n OpenWeatherMap -sleutel te kry, skep 'n rekening

Vul al die velde in. As u klaar is, merk die boks Ek stem in tot die diensbepalings en privaatheidsbeleid. Klik dan op die knoppie Skep rekening.

Kontroleer u e -pos vir 'n boodskap van OpenWeatherMap.org. Die e -pos bevat u API -sleutel. U moet die API -sleutel na die bronkode van die weerstasie kopieer om die huidige weer te verkry.

Die gratis diens van OpenWeatherMap.org het 'n paar beperkings. In die eerste plek is dit dat u nie meer gereeld as om die tien minute toegang daartoe het nie. Dit behoort nie 'n probleem te wees nie, want die weer verander nie so vinnig nie. Die ander beperkings het te doen met watter inligting beskikbaar is. Enige van die betaalde intekeninge sal meer gedetailleerde weerinligting verskaf.

Stap 11: Stel die Arduino IDE op:

Stel die Arduino IDE op
Stel die Arduino IDE op

Programontwikkeling is uitgevoer met behulp van die Arduino IDE weergawe 1.8.0. U kan die nuutste Arduino IDE hier aflaai; Arduino IDE. Die Arduino -webwerf het uitstekende aanwysings oor hoe om die IDE te installeer en te gebruik. Ondersteuning vir die ESP8266 kan in die Arduino IDE geïnstalleer word deur die instruksies van hierdie skakel te volg: ESP8266 Addon to Arduino. Klik op die webblad op die knoppie "Kloon of aflaai" en kies "Aflaai zip". Die ReadMe.md -lêer bevat aanwysings oor hoe om die ESP8266 -ondersteuning by die Arduino IDE te voeg. Dit is 'n gewone tekslêer wat u met enige teksredakteur kan oopmaak.

ESP8266-borde kom in alle groottes, vorms en gebruik verskillende USB-na-seriële brugskyfies. Ek verkies die planke wat die CH340 -brugskyf gebruik. 'N Paar jaar gelede is FTDI, SI en ander moeg vir goedkoop klone wat beweer dat hulle hul deel is. Die chipmakers het hul bestuurderkode verander om slegs met hul eie werklike onderdele te werk. Dit het baie frustrasie tot gevolg gehad omdat mense ontdek het dat die USB-na-seriële brûe nie meer werk nie. Deesdae hou ek net by die CH340-gebaseerde USB-na-seriële brûe om te voorkom dat ek borde koop wat al dan nie werk. U moet in elk geval die regte bestuurder vir die brugskyfie op u bord vind en installeer. Dit is 'n skakel na die amptelike webwerf vir die CH340 -bestuurders; CH341SER_EXE.

Die ESP8266 het nie toegewyde I2C -hardeware nie. Alle I2C-bestuurders vir die ESP8266 is gebaseer op bit-banging. Een van die beter ESP8266 I2C -biblioteke is die brzo_I2C -biblioteek. Dit is in die samestellingstaal vir die ESP8266 geskryf om dit so vinnig as moontlik te maak. Die OLED -vertoonbiblioteek wat ek gebruik, gebruik die brzo_I2C -biblioteek. Ek het kode bygevoeg om toegang tot die BME280 -sensorreeks te verkry met behulp van die brzo_I2C -biblioteek.

U kan die OLED-biblioteek hier kry: ESP8288-OLED-SSD1306-biblioteek.

U kan die brzo_I2C -biblioteek hier kry: Brzo_I2C -biblioteek.

Beide biblioteke moet in u Arduino IDE geïnstalleer word. Die Arduino -webwerf bevat aanwysings oor hoe om zip -biblioteke in die IDE hier te installeer: hoe om zip -biblioteke te installeer.

Wenk: Nadat u die pakket ESP8266 boards en die biblioteke geïnstalleer het, sluit die Arduino IDE en maak dit weer oop. Dit sal verseker dat die ESP8266 borde en biblioteke in die IDE verskyn.

Stap 12: Kies u bord:

Kies u bord
Kies u bord

Maak die Arduino IDE oop. As u dit nog nie gedoen het nie, installeer die ESP8266 addon, brzo_i2c biblioteek en die OLED bestuurder biblioteek.

Klik op "Tools" in die boonste menubalk. Blaai deur die keuselys tot waar dit staan "Board:". Skuif na die "Board Manager" -menu en blaai af na; "NodeMCU 1.0 (ESP-12E-module)". Klik daarop om dit te kies. Laat al die ander instellings op hul standaardwaarde.

Stap 13: Kies die seriële poort:

Kies die seriële poort
Kies die seriële poort

Klik op "Tools" in die boonste menubalk. Blaai deur die keuselys na die plek waar dit staan "Poort". Kies die poort wat geskik is vir u rekenaar. As u poort nie verskyn nie, is u bord nie ingeprop nie, of het u nie die bestuurder vir u brugskyf gelaai nie, of is u bord nie ingeprop toe u die Arduino IDE oopgemaak het nie. Eenvoudige oplossing is om die Arduino IDE te sluit, die bord in te sluit, die ontbrekende bestuurders te laai en die Arduino IDE weer oop te maak.

Stap 14: WeatherStation.ino

U kan die aflaai -knoppies hierbo gebruik of hierdie skakel na GitHub volg om die bronkode te verkry; ESP8266-Weerstasie.

Die lêers WeatherStation.ino en BME280.h moet in dieselfde gids wees. Die gidsnaam moet ooreenstem met die naam van die.ino -lêer (sonder die.ino -uitbreiding). Dit is 'n Arduino -vereiste.

Stap 15: Wysig WeatherStation.ino

Klik op "File" in die boonste menubalk. Klik op "Open". Vind die WeatherStation -lêergids in die dialoogkassie Lêer oop en kies dit. U moet twee oortjies sien, een vir WeatherStation en een vir BME280.h. As u nie albei oortjies het nie, het u die verkeerde gids oopgemaak, of u het nie albei lêers afgelaai nie, of u het dit nie in die regte gids gestoor nie. Probeer weer.

U moet die WeatherStation.ino -lêer wysig om die SSID en wagwoord vir u WiFi -netwerk by te voeg. kyk na reël 62 vir die volgende;

// plaas die SSID en wagwoord vir u WiFi -netwerk hier

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

Vervang "yourssid" met die SSID van u WiFi -netwerk.

Vervang 'wagwoord' met die wagwoord vir u WiFi -netwerk.

U moet ook u OpenWeatherMap -sleutel en die poskode waar u woon, byvoeg. Kyk na reël 66 vir die volgende;

// plaas u OpenWeatherMap.com -sleutel en die poskode hier

const char* owmkey = "yourkey"; const char* owmzip = "yourzip, land";

Vervang "yourkey" met die sleutel verkry uit OpenWeatherMap.org.

Vervang "u pos, land" met u poskode en land. U poskode moet gevolg word deur 'n komma en u land ("10001, ons").

Vervolgens moet u u tydsone stel en dagligbesparingstyd (DST) inskakel/deaktiveer. Kyk na reël 85 vir die volgende;

// Die gegewe rou tyd is in sekondes sedert 1970. Om aan te pas vir tydsones, trek af

// die verskil in aantal sekondes vir u tydsone. Negatiewe waarde sal // tyd aftrek, positiewe waarde sal tyd byvoeg #definieer TZ_EASTERN -18000 // aantal sekondes in vyf uur #definieer TZ_CENTRAL -14400 // aantal sekondes in vier uur #definieer TZ_MOUTAIN -10800 // aantal sekondes in drie uur #definieer TZ_PACIFIC -7200 // aantal sekondes in twee uur

// Pas die tyd vir u tydsone aan deur TZ_EASTERN na een van die ander waardes te verander.

#defineer TIMEZONE TZ_EASTERN // verander dit na u tydsone

Daar is 'n groep #define -stellings wat die tydverskynsel vir verskillende tydsones definieer. As u tydsone daar is, vervang dan "TZ_EASTERN" in die "TIMEZONE" definisie. As u tydsone nie gelys word nie, moet u een maak. Die NTP -bediener gee tyd as Greenwich Mean Time. U moet 'n aantal ure (in sekondes) optel of aftrek om op u plaaslike tyd te kom. Kopieer net een van die '#define TZ_XXX' stellings en verander dan die naam en die aantal sekondes. Verander dan "TZ_EASTERN" na u nuwe tydsone.

U moet ook besluit om Sommertyd te gebruik of nie. Om DST te deaktiveer, vervang die "1" met 'n "0" in die volgende reël;

#define DST 1 // gestel op 0 om dagligbesparingstyd uit te skakel

As dit aangeskakel is, sal DST outomaties die tyd met 'n uur vooruitskakel of vertraag, indien nodig.

Stap 16: Laai die kode op na u ESP8266

Laai die kode op na u ESP8266
Laai die kode op na u ESP8266

Klik op die ronde pyltjie -ikoon regs onder die "Edit" in die boonste menubalk. Dit sal die kode saamstel en dit na u bord oplaai. As alles behoorlik saamgestel en opgelaai word, moet die OLED -skerm na 'n paar sekondes lig en die verbindingsboodskap verskyn.

Stap 17: Hoe om die webwerf met weerdata te sien

Hoe om die webwerf met weerdata te sien
Hoe om die webwerf met weerdata te sien

Die foto hierbo toon die webbladsy wat deur die weerstasie bedien word. U kan toegang verkry met u rekenaar, telefoon of tablet. Maak eenvoudig 'n blaaier oop en tik die IP -adres van die Weerstasie in as die URL. Die IP -adres van die weerstasie word op een van die skerms van die weerstasie vertoon. Klik op Verfris bladsy om die inligting op te dateer.

Stap 18: Baie geluk, u is klaar

Dit is dit. U behoort nou 'n werkende weerstasie te hê. U volgende stap kan wees om u weerstasie te huisves en 'n kas te ontwerp. Of miskien wil u nog 'n paar skerms byvoeg om windkoue, dauwpunt, sonsopkoms of sonsondergang of 'n grafiek van veranderinge in die barometriese druk aan te toon of die weer te voorspel met behulp van barometriese druk. Geniet dit en geniet dit.

Aanbeveel: