Cuprins:

Încă o altă stație meteo (Y.A.W.S.): 18 pași (cu imagini)
Încă o altă stație meteo (Y.A.W.S.): 18 pași (cu imagini)

Video: Încă o altă stație meteo (Y.A.W.S.): 18 pași (cu imagini)

Video: Încă o altă stație meteo (Y.A.W.S.): 18 pași (cu imagini)
Video: Das ist der schönste Radmarathon überhaupt - Maratona dles Dolomites 2023 🇮🇹 2024, Iulie
Anonim
Încă o altă stație meteo (Y. A. W. S.)
Încă o altă stație meteo (Y. A. W. S.)

Acest proiect este ideea mea despre stația meteo mereu populară. Al meu se bazează pe un ESP8266, un afișaj OLED de.96”și un set de senzori de mediu BME280. Stațiile meteo par a fi un proiect foarte popular. Al meu se diferențiază de celelalte prin utilizarea unui set de senzori BME280 în locul popularului senzor de temperatură și umiditate DHT22. BME280 are un senzor de temperatură, umiditate și presiune a aerului. De asemenea, folosește interfața I2C. Afișajul OLED de.96”utilizat este, de asemenea, I2C. Poate fi achiziționat sub formă de I2C sau SPI sau ambele. Am mers cu versiunea I2C pentru a simplifica cablarea. Atât cu afișajul OLED, cât și cu BME280 folosind I2C și 3.3V, a fost foarte ușor să realizați un cablu „Y” pentru a conecta ambele dispozitive la ESP8266. În timpul dezvoltării acestui proiect, am întâlnit pe Internet mai multe proiecte de stații meteo care utilizează ESP8266, același afișaj OLED și BME280. Deci, aceasta nu este o idee originală, dar este o implementare originală.

BME280 furnizează date din interiorul mediului. Informațiile meteorologice exterioare sunt obținute de la OpenWeatherMap.org. Va trebui să vă înscrieți cu OpenWeatherMap.org pentru a obține o cheie de acces la datele meteo. Acestea oferă un serviciu gratuit, ceea ce am folosit. Consultați pasul Cum se obține o cheie OpenWeatherMap pentru instrucțiuni despre cum să obțineți o cheie.

Un server de timp NTP este folosit pentru a obține ora din zi și ziua săptămânii.

Datele despre vreme, timp și mediu sunt afișate pe afișajul OLED. Fiecare informație are propriul ecran formatat. Ecranele sunt afișate timp de cinci secunde înainte de a trece la altul. OpenWeatherMap.org este accesat la fiecare cincisprezece minute pentru a actualiza informațiile despre vreme. BME280 este citit aproximativ la fiecare cincizeci și cinci de secunde. Fontul utilizat pe fiecare ecran este ajustat automat pentru a afișa toate informațiile în cel mai mare font posibil.

ESP8266 este, de asemenea, configurat pentru a fi un server web. Toate informațiile despre vreme pot fi accesate folosind un browser de pe telefon, tabletă de pe computer. Unul dintre ecranele afișate arată adresa IP a serverului web.

ESP8266 vine într-o varietate de forme și dimensiuni. Aleg un GEEKCREIT DoIt ESP12E Dev Kit V2. Acesta este pe deplin compatibil cu „standardul” NodeMCU pentru modulele ESP8266 independente. Are un regulator integrat de 3,3V, un CH340 ca pod USB-la-Serial și circuitul de resetare automată NodeMCU. Sunteți liber să utilizați orice modul ESP8266-12 pe care îl aveți. Rețineți că poate fi necesar să adăugați un regulator de 3,3V sau alte circuite pentru a-l programa. De asemenea, am construit unul folosind un Witty Cloud ESP8266. Mi-a permis să împachetez totul într-un cub de 1,5 inch. Placa pod inferioară USB este deconectată după programare. Am adăugat un știft de colț unghi drept la gaura de 3,3V de pe placa Witty. Hamul a fost realizat cu două cochilii cu patru pini, o cochilie cu două pini și două cochilii cu un pini.

În fotografia de mai sus, placa la care este conectat modulul ESP8266 este o placă de circuit pe care am dezvoltat-o ca o placă de separare pentru ESP8266 și ESP32. Va accepta plăcile compatibile NodeMCU, corp îngust ESP8266, placa Witty Cloud ESP8266 sau o placă ESP32 de la GEEKCREIT. Toți pinii GPIO disponibili sunt împărțiți în antete pentru acces ușor. Am constatat că majoritatea plăcilor de dezvoltare nu au niciodată suficientă putere și pini de masă. De fiecare dată când doriți să atașați ceva, aveți nevoie de cel puțin un știft de împământare și de cele mai multe ori un știft pentru a alimenta dispozitivul. Fiecare rând de pini GPIO este însoțit de un pin de putere de 3,3V și un pin de masă. Folosesc același aspect pe care îl folosește First Robotics, puterea la mijloc. Îmi place acest aspect, deoarece dacă conectați ceva înapoi, nu eliberați fumul magic. Placa are câteva extras, un senzor IR, un comutator cu buton și un LED tricolor. Jumperii pot fi folosiți pentru a vă conecta la oricare dintre aceste caracteristici. Dacă sunteți interesat de una dintre aceste plăci ESPxx, contactați-mă.

Pasul 1: De ce veți avea nevoie:

Ce vei avea nevoie
Ce vei avea nevoie
Ce vei avea nevoie
Ce vei avea nevoie
Ce vei avea nevoie
Ce vei avea nevoie

1 - Placă senzor BME280 I2C pentru temperatură, umiditate și presiune

Mi-am cumpărat-o pe Ebay din China pentru aproximativ 1,25 USD, cu transport gratuit. Disponibil și de la Adafruit sau Sparkfun

1 -.96”, 128x64, afișaj O2 I2C folosind driverul SSD1306

Mi-am cumpărat-o pe Ebay din China cu aproximativ 4,00 USD. Al meu este alb. Puteți găsi albastru și alb cu o zonă de galben deasupra. Unele sunt vândute ca SPI și I2C. Este posibil să trebuiască să mutați niște rezistențe pentru a selecta operația I2C. Partea importantă este că folosește cipul de driver SD1306. De asemenea, disponibil de la Adafruit.

1 - NodeMCU ESP8266-12 cu CH340

Puteți utiliza orice modul ESP8266-12 pe care îl doriți. Le prefer pe cele cu podul CH340 USB-to-Serial. Acum câțiva ani a existat o erupție de cipuri bridge FTDI și SI false, așa că nu mai am încredere în altceva decât CH340.

2 - DuPont cu 4 pini, cochilii de pas de 0,1 inch (2,54 mm)

2 - DuPont 2 pini, cochilii de pas de 0,1 inch (2,54 mm)

12 - Cârlige femele DuPont pentru sârmă de 22-28 awg

O iau pe a mea pe Ebay. De asemenea, puteți utiliza Molex sau orice marcă pe care o preferați. Pinuri sertizate sau IDC Alegerea este a ta. Aveți grijă să cumpărați știfturile corecte pentru cochilii dvs. Nu sunt mix și potrivesc. De asemenea, puteți să lipiți firele pe plăci și să eliminați conectorii. Dacă utilizați știfturile sertizate, veți avea nevoie de un sertizor. Nu încercați să strângeți cu o clește. Aceasta nu funcționează.

1 - 5V, 1A minim de perete.

Acestea sunt ieftine și disponibile pe Ebay. Obțineți unul cu un conector micro USB sau orice alt pereche cu placa ESP8266.

De asemenea, veți avea nevoie de opt bucăți de sârmă de 22-28 awg pentru a conecta totul împreună. Sau puteți pur și simplu să le conectați la o bucată de tablă de perf. Depinde de tine.

Am inclus o imagine a ceea ce a fost folosit pentru a construi stația meteo folosind un Witty Cloud ESP8266. O imagine detaliază unde să adăugați un știft cu unghi drept la pickup de 3,3V. Una dintre cele două cochilii cu pini este înlocuită cu două cochilii cu un singur pini. Firele de împământare și de 3,3 V sunt înfundate în carcasele cu un singur pin.

Urmați acest link pentru a obține fișierele codului sursă din depozitul GitHub; ESP8266-Stație meteo. Dosarul zip sau folderul clonat va avea un folder WeatherStation care conține WeatherStation.ino și BME280.h. Acestea sunt fișierele codului sursă. Există și câteva fișiere pdf. Fișierele pdf au aproape aceleași informații ca acest instructable.

Pasul 2: Instrumente:

Instrumente
Instrumente
Instrumente
Instrumente

După ce am încercat multe mărci de sertizatoare, am constatat că inginerul japonez PA-21 sau PA-09 funcționează cel mai bine pentru sertizările masculine și feminine DuPont. Este disponibil pe Ebay sau Amazon. Oricare va funcționa pentru pinii DuPont. PA-09 va face, de asemenea, pinii pentru conectorii JST utilizați în mod obișnuit pe bateriile LiPo. Iată un link către un videoclip despre cum să utilizați sertizoarele Engineer cu sertizări DuPont; Cum se utilizează PA-21 Crimpers

Instructables a avut recent un tutorial minunat despre utilizarea sertizoarelor Weierli Tools SN-28B cu știfturi și cochilii DuPont. O puteți vizualiza aici; Faceți un bun Dupont Pin-Crimp de fiecare dată!

Pasul 3: Faceți hamul:

Faceți hamul
Faceți hamul
Faceți hamul
Faceți hamul

Cablul de cabluri este cheia acestui proiect. Este un cablu de bază „Y” cu patru fire. Deasupra este o imagine a hamului pe care l-am făcut. Afișajul OLED și matricea de senzori BME280 au același pinout. Aceasta înseamnă că cele două carcase cu patru pini sunt identice după introducerea firelor sertizate. Mi-am făcut hamul cu firele duble sertizate care intră în cele două cochilii cu două pini care se atașează la placa ESP8266. În schimb, ai putea alege să înfigi firele duble sertizate într-una dintre cele patru cochilii, făcându-l ca o conexiune cu lanț de margaretă. Oricare va funcționa.

  1. Tăiați toate firele la lungime. Îmi place să folosesc culori diferite pentru fiecare fir; roșu pentru 3,3 V, negru pentru sol, galben pentru SCL și verde pentru SDA.
  2. Îndepărtați un capăt al fiecărui fir de aproximativ 0,1 inch.
  3. Răsuciți firele împreună și adăugați o sertizare feminină.
  4. Odată ce toate firele au o sertizare pe un capăt, îndepărtați toate firele de aproximativ 0,2 inci.
  5. Răsuciți firele a două fire de aceeași culoare împreună.
  6. Odată răsucite, tăiați la aproximativ 0,1 inci și adăugați o crimă feminină.
  7. Când toate perechile de sârmă sunt sertizate, este timpul să introduceți capetele sertizate în cochilii.
  8. Cele două cochilii cu patru pini sunt umplute, de la stânga la dreapta, cu roșu, negru, galben, verde sau 3,3V, Gnd, SCL, SDA.
  9. Una dintre cele două cochilii cu știfturi obține firele roșii și negre.
  10. Celelalte două carcase cu pini primesc firele galbene și verzi.

Pasul 4: Sfat:

Bacsis
Bacsis
Bacsis
Bacsis
Bacsis
Bacsis

Am constatat că atunci când folosesc 28 de sârme AWG cu știfturile de sertizare, acestea tind să cadă. Ceea ce fac pentru a preveni acest lucru este să dezbrăcăm capătul firului de două ori mai mult decât în mod normal. Răsuciți firele expuse împreună. Apoi îndoiți firul răsucit pentru a dubla grosimea. Acum, când îl crimpez, firul este suficient de gros pentru a se ține strâns.

Pasul 5: conectați totul împreună:

Conectați totul împreună
Conectați totul împreună
Conectați totul împreună
Conectați totul împreună
Conectați totul împreună
Conectați totul împreună
  1. Conectați carcasele cu patru pini la afișajul OLED și la plăcile BME280.
  2. Aliniați firul roșu cu pinii Vcc și 3V3.
  3. Conectați carcasa roșu / negru cu doi pini la o pereche de pini 3V3 (3.3V) și GND de pe placa ESP8266. Există trei locuri pe tablă în care pinii 3V3 și GND sunt adiacenți. Evitați pinii Vin (5V) și GND, deoarece acestea vor elibera fumul magic de pe plăcile dvs. OLED și BME280. Asigurați-vă că firul roșu este conectat la pinul 3V3.
  4. Conectați carcasa galbenă / verde cu doi pini la D1 și D2 de pe placa ESP8266. Firul galben (SCL) ar trebui să fie pe D1.

Verifică-ți conexiunile. Dacă totul arată bine, atunci sunteți gata să porniți placa ESP8266.

Pasul 6: Cum să obțineți o cheie OpenWeatherMap

Cum să obțineți o cheie OpenWeatherMap
Cum să obțineți o cheie OpenWeatherMap

Veți avea nevoie de o cheie API pentru a accesa site-ul web OpenWeatherMap.org pentru a obține informații meteo curente. Următorii pași detaliază cum să vă înscrieți cu OpenWeatherMap.org și să obțineți o cheie API.

Urmați acest link către OpenWeatherMap.org.

Faceți clic pe API în partea de sus a paginii web.

Pasul 7: Cum să obțineți o cheie OpenWeatherMap, abonați-vă

Cum să obțineți o cheie OpenWeatherMap, abonați-vă
Cum să obțineți o cheie OpenWeatherMap, abonați-vă

În partea stângă, sub Date meteo curente, faceți clic pe butonul Abonați-vă.

Pasul 8: Cum să obțineți o cheie OpenWeatherMap, obțineți cheia API

Cum să obțineți o cheie OpenWeatherMap, obțineți cheia API
Cum să obțineți o cheie OpenWeatherMap, obțineți cheia API

Faceți clic pe Get APIkey și Start în coloana Free.

Pasul 9: Cum să obțineți o cheie OpenWeatherMap, înscriere

Cum să obțineți o cheie OpenWeatherMap, înscriere
Cum să obțineți o cheie OpenWeatherMap, înscriere

Faceți clic pe butonul Înregistrare sub Cum se obține cheia API (APPID).

Pasul 10: Cum să obțineți o cheie OpenWeatherMap, să creați un cont

Cum să obțineți o cheie OpenWeatherMap, să creați un cont
Cum să obțineți o cheie OpenWeatherMap, să creați un cont

Completați toate câmpurile. La final, bifați caseta de selectare Accept Termenii și condițiile și Politica de confidențialitate. Apoi faceți clic pe butonul Creare cont.

Verificați-vă e-mailul pentru un mesaj de la OpenWeatherMap.org. E-mailul va avea cheia dvs. API. Va trebui să copiați cheia API în codul sursă pentru stația meteo pentru a obține vremea curentă.

Serviciul gratuit OpenWeatherMap.org are unele limitări. Cel mai important este că nu îl puteți accesa mai des decât o dată la zece minute. Aceasta nu ar trebui să fie o problemă, deoarece vremea nu se schimbă atât de repede. Celelalte limitări au legătură cu informațiile disponibile. Oricare dintre abonamentele plătite va oferi informații meteorologice mai detaliate.

Pasul 11: Configurați ID-ul Arduino:

Configurați ID-ul Arduino
Configurați ID-ul Arduino

Dezvoltarea programului a fost făcută folosind Arduino IDE versiunea 1.8.0. Puteți descărca cel mai recent IDE Arduino de aici; IDE Arduino. Site-ul web Arduino are instrucțiuni excelente despre cum să instalați și să utilizați IDE. Suportul pentru ESP8266 poate fi instalat în Arduino IDE urmând instrucțiunile date de acest link: ESP8266 Addon to Arduino. Pe pagina web, faceți clic pe butonul „Clonați sau descărcați” și selectați „Descărcați fișierul zip”. Fișierul ReadMe.md are instrucțiuni despre cum să adăugați suportul ESP8266 la Arduino IDE. Este un fișier text simplu pe care îl puteți deschide cu orice editor de text.

Plăcile ESP8266 sunt disponibile în toate dimensiunile, formele și utilizează diferite cipuri de tip USB-to-Serial. Prefer placile care folosesc cipul bridge CH340. Acum câțiva ani, FTDI, SI și alții s-au săturat de clonele ieftine care pretind că sunt părțile lor. Producătorii de cipuri au schimbat codul de conducător auto pentru a funcționa doar cu propriile lor piese originale. Acest lucru a dus la o mulțime de frustrări, deoarece oamenii au descoperit că podurile USB-la-serie nu mai funcționau. Acum câteva zile, mă lipesc de podurile USB-Serial bazate pe CH340, pentru a evita cumpărarea de plăci care pot funcționa sau nu. În orice caz, va trebui să găsiți și să instalați driverul corect pentru cipul bridge utilizat pe placa dvs. Acesta este un link către site-ul oficial pentru driverele CH340; CH341SER_EXE.

ESP8266 nu are hardware dedicat I2C. Toți driverele I2C pentru ESP8266 se bazează pe bit-banging. Una dintre cele mai bune biblioteci ESP8266 I2C este biblioteca brzo_I2C. A fost scris în limbaj de asamblare pentru ca ESP8266 să-l facă cât mai rapid posibil. Biblioteca de afișaj OLED pe care o folosesc utilizează biblioteca brzo_I2C. Am adăugat cod pentru a accesa matricea de senzori BME280 folosind biblioteca brzo_I2C.

Puteți obține biblioteca OLED aici: Biblioteca ESP8288-OLED-SSD1306.

Puteți obține biblioteca brzo_I2C aici: Biblioteca Brzo_I2C.

Ambele biblioteci vor trebui să fie instalate în ID-ul dvs. Arduino. Site-ul web Arduino are instrucțiuni despre cum să instalați bibliotecile zip în IDE aici: Cum se instalează bibliotecile Zip.

Sfat: După instalarea pachetului de plăci ESP8266 și a bibliotecilor, închideți Arduino IDE și redeschideți-l. Acest lucru se va asigura că plăcile și bibliotecile ESP8266 vor apărea în IDE.

Pasul 12: Selectați-vă tabloul:

Selectați-vă tabloul
Selectați-vă tabloul

Deschideți IDE-ul Arduino. Dacă nu ați făcut-o încă, instalați suplimentul ESP8266, biblioteca brzo_i2c și biblioteca de drivere OLED.

Faceți clic pe „Instrumente” din bara de meniu de sus. Derulați în jos meniul derulant până la locul unde scrie „Board:”. Glisați la meniul derulant „Board Manager” și derulați în jos la; „NodeMCU 1.0 (modul ESP-12E)”. Faceți clic pe acesta pentru a o selecta. Lăsați toate celelalte setări la valoarea lor implicită.

Pasul 13: Selectați portul serial:

Selectați portul serial
Selectați portul serial

Faceți clic pe „Instrumente” din bara de meniu de sus. Derulați în jos meniul derulant până la locul unde scrie „Port”. Selectați portul adecvat pentru computerul dvs. Dacă portul dvs. nu apare, fie placa dvs. nu este conectată, fie nu ați încărcat driverul pentru cipul dvs. bridge sau placa dvs. nu a fost conectată la deschiderea Arduino IDE. Remedierea simplă este închiderea Arduino IDE, conectarea la placa dvs., încărcarea driverelor lipsă, apoi redeschiderea Arduino IDE.

Pasul 14: WeatherStation.ino

Puteți folosi butoanele de descărcare de mai sus sau puteți urmări acest link către GitHub pentru a obține codul sursă; ESP8266-Stație meteo.

Fișierele WeatherStation.ino și BME280.h trebuie să fie în același folder. Numele folderului trebuie să se potrivească cu numele fișierului.ino (fără extensia.ino). Aceasta este o cerință Arduino.

Pasul 15: Editați WeatherStation.ino

Faceți clic pe „Fișier” din bara de meniu de sus. Faceți clic pe „Deschideți”. În caseta de dialog File Open, găsiți folderul WeatherStation și selectați-l. Ar trebui să vedeți două file, una pentru WeatherStation și una pentru BME280.h. Dacă nu aveți ambele file, atunci ați deschis folderul greșit sau nu ați descărcat ambele fișiere sau nu le-ați salvat în folderul corect. Încearcă din nou.

Va trebui să editați fișierul WeatherStation.ino pentru a adăuga SSID și parola pentru rețeaua dvs. WiFi. uitați-vă în jurul liniei 62 pentru următoarele;

// puneți SSID-ul și parola pentru rețeaua WiFi aici

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

Înlocuiți „ai dvs.” cu SSID-ul rețelei WiFi.

Înlocuiți „parola” cu cheia de acces pentru rețeaua dvs. WiFi.

De asemenea, va trebui să adăugați cheia OpenWeatherMap și codul poștal în care locuiți. Uită-te în jurul liniei 66 pentru următoarele;

// puneți cheia OpenWeatherMap.com și codul poștal aici

const char * owmkey = "cheia ta"; const char * owmzip = "zipul tău, țară";

Înlocuiți „cheia dvs.” cu cheia obținută de la OpenWeatherMap.org.

Înlocuiți „zipul tău, țara” cu codul poștal și țara. Codul dvs. poștal ar trebui să fie urmat de o virgulă și de țara dvs. („10001, noi”).

Apoi trebuie să vă setați fusul orar și să activați / dezactivați ora de vară (DST). Uită-te în jurul liniei 85 pentru următoarele;

// Timpul brut returnat este în câteva secunde din 1970. Pentru a ajusta pentru scăderea fusurilor orare

// diferența de număr de secunde pentru fusul orar. Valoarea negativă // va scădea timpul, valoarea pozitivă va adăuga timp #define TZ_EASTERN -18000 // numărul de secunde în cinci ore #define TZ_CENTRAL -14400 // numărul de secunde în patru ore #define TZ_MOUTAIN -10800 // numărul de secunde în trei ore #define TZ_PACIFIC -7200 // numărul de secunde în două ore

// Reglați timpul pentru fusul orar schimbând TZ_EASTERN la una dintre celelalte valori.

#define TIMEZONE TZ_EASTERN // schimbați acest lucru cu fusul orar

Există un grup de instrucțiuni #define care definesc compensarea orei pentru diferite fusuri orare. Dacă fusul dvs. orar este acolo, înlocuiți „TZ_EASTERN” în definiția „TIMEZONE”. Dacă fusul dvs. orar nu este listat, va trebui să creați unul. Serverul NTP oferă timp ca Greenwich Mean Time. Trebuie să adăugați sau să scădeți un număr de ore (în secunde) pentru a ajunge la ora locală. Copiați una dintre declarațiile „#define TZ_XXX”, apoi modificați numele și numărul de secunde. Apoi schimbați „TZ_EASTERN” în noul dvs. fus orar.

De asemenea, trebuie să decideți să utilizați sau nu ora de vară. Pentru a dezactiva ora de vară, înlocuiți „1” cu un „0” în următoarea linie;

#define DST 1 // setat la 0 pentru a dezactiva ora de vară

Când este activat, DST va avansa automat sau va întârzia timpul cu o oră, dacă este cazul.

Pasul 16: Încărcați codul pe ESP8266

Încărcați codul pe ESP8266
Încărcați codul pe ESP8266

Faceți clic pe pictograma săgeată circulară orientată spre dreapta, aflată chiar sub „Editați” în bara de meniu de sus. Aceasta va compila codul și îl va încărca pe placa dvs. Dacă totul se compilează și se încarcă corect, după câteva secunde, ecranul OLED ar trebui să se aprindă și mesajul de conectare ar trebui să apară.

Pasul 17: Cum să vizualizați site-ul web privind datele meteo

Cum să vizualizați site-ul web privind datele meteo
Cum să vizualizați site-ul web privind datele meteo

Imaginea de mai sus arată pagina web deservită de Stația Meteo. O puteți accesa utilizând computerul, telefonul sau tableta. Pur și simplu deschideți un browser și introduceți adresa IP a stației meteo ca adresă URL. Adresa IP a stației meteo este afișată pe unul dintre ecranele stației meteo. Faceți clic pe Reîmprospătare pagină pentru a actualiza informațiile.

Pasul 18: Felicitări, ați terminat

Aia este. Ar trebui să aveți acum o stație meteo funcțională. Următorul dvs. pas ar putea fi să proiectați și să creați o carcasă pentru a adăposti stația meteo. Sau poate doriți să adăugați câteva ecrane pentru a arăta răcirea vântului, punctul de rouă, răsăritul sau apusul soarelui sau un grafic al modificărilor presiunii barometrice sau prezicerea vremii folosind presiunea barometrică. Distrează-te și bucură-te.

Recomandat: