Sommario:

Yet Another Weather Station (Y.A.W.S.): 18 passaggi (con immagini)
Yet Another Weather Station (Y.A.W.S.): 18 passaggi (con immagini)

Video: Yet Another Weather Station (Y.A.W.S.): 18 passaggi (con immagini)

Video: Yet Another Weather Station (Y.A.W.S.): 18 passaggi (con immagini)
Video: KOLA PENINSULA TRAGEDY: Chivruay Pass Incident // Yet Another Dyatlov Pass 2024, Luglio
Anonim
Ancora un'altra stazione meteorologica (Y. A. W. S.)
Ancora un'altra stazione meteorologica (Y. A. W. S.)

Questo progetto è la mia interpretazione della sempre popolare stazione meteorologica. Il mio si basa su un ESP8266, un display OLED da 0,96 pollici e un array di sensori ambientali BME280. Le stazioni meteorologiche sembrano essere un progetto molto popolare. Il mio si differenzia dagli altri utilizzando un array di sensori BME280 invece del popolare sensore di temperatura e umidità DHT22. Il BME280 ha un sensore di temperatura, umidità e pressione dell'aria. Utilizza anche l'interfaccia I2C. Anche il display OLED da 0,96 pollici utilizzato è I2C. Può essere acquistato come I2C o SPI o entrambi. Sono andato con la versione I2C per semplificare il cablaggio. Sia con il display OLED che con il BME280 utilizzando I2C e 3,3 V è stato molto facile realizzare un cavo a "Y" per collegare entrambi i dispositivi all'ESP8266. Durante lo sviluppo di questo progetto mi sono imbattuto in più progetti di stazioni meteorologiche su Internet che utilizzano l'ESP8266, lo stesso display OLED e il BME280. Quindi questa non è un'idea originale, ma è un'implementazione originale.

Il BME280 fornisce i dati dell'ambiente interno. Le informazioni sul tempo esterno sono ottenute da OpenWeatherMap.org. Dovrai registrarti con OpenWeatherMap.org per ottenere una chiave per accedere ai dati meteorologici. Offrono un servizio gratuito, che è quello che ho usato. Vedere il passaggio Come ottenere una chiave OpenWeatherMap per istruzioni su come ottenere una chiave.

Un time server NTP viene utilizzato per ottenere l'ora del giorno e il giorno della settimana.

I dati meteo, ora e ambiente vengono visualizzati sul display OLED. Ogni informazione ha il proprio schermo formattato. Le schermate vengono visualizzate per cinque secondi prima di passare a un'altra. Si accede a OpenWeatherMap.org ogni quindici minuti per aggiornare le informazioni meteorologiche. Il BME280 viene letto ogni cinquantacinque secondi circa. Il carattere utilizzato su ciascuna schermata viene automaticamente regolato per mostrare tutte le informazioni nel carattere più grande possibile.

L'ESP8266 è anche configurato per essere un server web. È possibile accedere a tutte le informazioni meteorologiche utilizzando un browser dal telefono, tablet o computer. Una delle schermate visualizzate mostra l'indirizzo IP del server web.

L'ESP8266 è disponibile in una varietà di forme e dimensioni. Scelgo un GEEKCREIT DoIt ESP12E Dev Kit V2. Questo è completamente compatibile con lo "standard" NodeMCU per i moduli standalone ESP8266. Ha un regolatore integrato da 3,3 V, un CH340 come bridge da USB a seriale e il circuito di ripristino automatico NodeMCU. Sei libero di utilizzare qualsiasi modulo ESP8266-12 in tuo possesso. Tieni presente che potresti dover aggiungere un regolatore da 3,3 V o altri circuiti per programmarlo. Ne ho anche costruito uno usando un Witty Cloud ESP8266. Mi ha permesso di impacchettare tutto in un cubo da 1,5 pollici. La scheda bridge USB inferiore viene scollegata dopo la programmazione. Ho aggiunto un pin di intestazione ad angolo retto al foro da 3,3 V sulla scheda Witty. L'imbracatura è stata realizzata con due gusci a quattro pin, un guscio a due pin e due gusci a un pin.

Nella foto sopra, la scheda a cui è collegato il modulo ESP8266 è un circuito che ho sviluppato come scheda breakout per ESP8266 ed ESP32. Accetterà le schede ESP8266 a corpo stretto compatibili con NodeMCU, la scheda Witty Cloud ESP8266 o una scheda ESP32 di GEEKCREIT. Tutti i pin GPIO disponibili sono suddivisi in intestazioni per un facile accesso. Ho scoperto che la maggior parte delle schede di sviluppo non ha mai abbastanza alimentazione e pin di massa. Ogni volta che si desidera collegare qualcosa è necessario almeno un pin di terra e la maggior parte delle volte un pin per alimentare il dispositivo. Ogni fila di pin GPIO è accompagnata da un pin di alimentazione da 3,3 V e un pin di terra. Uso lo stesso layout utilizzato da First Robotics, la potenza nel mezzo. Mi piace questo layout perché se colleghi qualcosa al contrario non rilasci il fumo magico. La scheda ha un paio di extra, un sensore IR, un interruttore a pulsante e un LED tricolore. I ponticelli possono essere utilizzati per connettersi a una di queste funzioni. Se sei interessato a una di queste schede breakout ESPxx, contattami.

Passaggio 1: cosa ti servirà:

Cosa ti servirà
Cosa ti servirà
Cosa ti servirà
Cosa ti servirà
Cosa ti servirà
Cosa ti servirà

1 – Scheda sensore di temperatura, umidità e pressione BME280 I2C

Ho comprato il mio su Ebay dalla Cina per circa $ 1,25 con spedizione gratuita. Disponibile anche da Adafruit o Sparkfun

1 -.96 , 128x64, display OLED I2C utilizzando il driver SSD1306

Ho comprato il mio su Ebay dalla Cina per circa $ 4,00. Il mio è bianco. Puoi trovare il blu e il bianco con un'area gialla in alto. Alcuni sono venduti come SPI e I2C. Potrebbe essere necessario spostare alcuni resistori per selezionare il funzionamento I2C. La parte importante è che utilizza il chip del driver SD1306. Disponibile anche da Adafruit.

1 – NodeMCU ESP8266-12 con CH340

Puoi utilizzare qualsiasi modulo ESP8266-12 che desideri. Preferisco quelli con il bridge da USB a seriale CH340. Qualche anno fa c'è stata un'ondata di falsi chip bridge FTDI e SI, quindi non mi fido più di nient'altro che del CH340.

2 – Guscio DuPont a 4 pin, passo da 0,1 pollici (2,54 mm)

2 – Guscio DuPont a 2 pin, passo da 0,1 pollici (2,54 mm)

12 – Crimpature femmina DuPont per cavi 22-28 awg

Prendo il mio su Ebay. Puoi anche usare Molex o qualsiasi marca tu preferisca. Pin crimpati o IDC A voi la scelta. Fai attenzione a comprare i pin corretti per i tuoi gusci. Non sono mix and match. Puoi anche semplicemente saldare i fili alle schede ed eliminare i connettori. Se usi i pin crimpati, avrai bisogno di una pinza. Non provare a crimpare con un paio di pinze. Non funziona.

Alimentatore da parete 1 – 5V, 1A minimo.

Questi sono economici e disponibili su Ebay. Prendi uno con un connettore micro USB o qualsiasi altra cosa si accoppia con la tua scheda ESP8266.

Avrai anche bisogno di otto pezzi di cavo 22-28 awg per collegare tutto insieme. Oppure puoi semplicemente collegare tutto a un pezzo di tavola perforata. Spetta a voi.

Ho incluso un'immagine di ciò che è stato utilizzato per costruire la stazione meteorologica utilizzando un Witty Cloud ESP8266. Un'immagine descrive in dettaglio dove aggiungere un pin di intestazione ad angolo retto al pickup a 3,3 V. Uno dei due gusci di pin è sostituito da due gusci di un pin. I cavi di terra e da 3,3 V sono inseriti nei gusci a un pin.

Segui questo link per ottenere i file del codice sorgente dal repository GitHub; ESP8266-stazione meteo. La cartella zip o la cartella clonata avrà una cartella WeatherStation che contiene WeatherStation.ino e BME280.h. Questi sono i file del codice sorgente. Ci sono anche diversi file pdf. I file pdf hanno più o meno le stesse informazioni di questo istruibile.

Passaggio 2: strumenti:

Utensili
Utensili
Utensili
Utensili

Dopo aver provato molte marche di crimpatrici, ho scoperto che l'ingegnere giapponese PA-21 o PA-09 funziona meglio per le crimpature maschili e femminili DuPont. È disponibile su Ebay o Amazon. O funzionerà per i pin DuPont. Il PA-09 farà anche i pin per i connettori JST comunemente usati sulle batterie LiPo. Ecco un collegamento a un video su come utilizzare le aggraffatrici Engineer con le crimpature DuPont; Come usare i crimpatori PA-21

Instructables ha recentemente avuto un ottimo tutorial sull'utilizzo delle pinze Weierli Tools SN-28B con perni e gusci DuPont. Puoi vederlo qui; Fai un buon pin-Crimp Dupont OGNI VOLTA!

Passaggio 3: crea l'imbracatura:

Realizza l'imbracatura
Realizza l'imbracatura
Realizza l'imbracatura
Realizza l'imbracatura

Il cablaggio è la chiave di questo progetto. È un cavo a "Y" a quattro fili di base. Sopra c'è una foto dell'imbracatura che ho realizzato. Il display OLED e l'array di sensori BME280 hanno la stessa piedinatura. Ciò significa che i due gusci a quattro pin sono identici dopo aver inserito i fili crimpati. Ho realizzato la mia imbracatura con i doppi fili aggraffati che entrano nei due gusci a due pin che si collegano alla scheda ESP8266. Potresti invece scegliere di inserire i doppi fili aggraffati in uno dei quattro gusci dei pin, rendendolo come una connessione a margherita. O funzionerà.

  1. Taglia tutti i tuoi fili a misura. Mi piace usare colori diversi per ogni filo; rosso per 3.3V, nero per massa, giallo per SCL e verde per SDA.
  2. Spellare un'estremità di ciascun filo di circa 0,1 pollici.
  3. Attorcigliare i fili e aggiungere una piega femmina.
  4. Una volta che tutti i fili hanno una piegatura su un'estremità, spelare tutti i fili di circa 0,2 pollici.
  5. Attorcigliare i fili di due fili dello stesso colore insieme.
  6. Una volta attorcigliato, tagliare a circa 0,1 pollici e aggiungere una piegatura femmina.
  7. Quando tutte le coppie di cavi sono crimpate, è il momento di inserire le estremità crimpate nei gusci.
  8. I due gusci a quattro pin sono riempiti, da sinistra a destra, con rosso, nero, giallo, verde o 3,3 V, Gnd, SCL, SDA.
  9. Uno dei due gusci dei pin ottiene i fili rosso e nero.
  10. L'altro guscio a due pin riceve i fili giallo e verde.

Passaggio 4: Suggerimento:

Consiglio
Consiglio
Consiglio
Consiglio
Consiglio
Consiglio

Ho scoperto che quando uso il filo da 28 awg con i perni a crimpare tendono a cadere. Quello che faccio per evitare questo è spelare l'estremità del filo due volte più a lungo del normale. Attorcigliare i fili scoperti insieme. Quindi piegare il filo attorcigliato per raddoppiare lo spessore. Ora, quando lo aggrappo, il filo è abbastanza spesso da tenerlo saldamente.

Passaggio 5: collega tutto insieme:

Collega tutto insieme
Collega tutto insieme
Collega tutto insieme
Collega tutto insieme
Collega tutto insieme
Collega tutto insieme
  1. Collega i quattro gusci dei pin al display OLED e alle schede BME280.
  2. Allineare il filo rosso con i pin Vcc e 3V3.
  3. Collegare il guscio rosso/nero a due pin a una coppia di pin 3V3 (3,3 V) e GND sulla scheda ESP8266. Ci sono tre punti sulla scheda in cui i pin 3V3 e GND sono adiacenti. Evita i pin Vin (5V) e GND poiché rilasceranno il fumo magico dalle tue schede OLED e BME280. Assicurarsi che il filo rosso sia collegato al pin 3V3.
  4. Collegare il guscio a due pin giallo/verde a D1 e D2 sulla scheda ESP8266. Il filo giallo (SCL) dovrebbe essere su D1.

Ricontrolla le tue connessioni. Se tutto sembra a posto, allora sei pronto per accendere la scheda ESP8266.

Passaggio 6: come ottenere una chiave OpenWeatherMap

Come ottenere una chiave OpenWeatherMap
Come ottenere una chiave OpenWeatherMap

Avrai bisogno di una chiave API per accedere al sito Web OpenWeatherMap.org per ottenere informazioni meteo aggiornate. I prossimi passaggi descrivono in dettaglio come registrarsi con OpenWeatherMap.org e ottenere una chiave API.

Segui questo link a OpenWeatherMap.org.

Fai clic su API vicino al centro della parte superiore della pagina web.

Passaggio 7: come ottenere una chiave OpenWeatherMap, iscriversi

Come ottenere una chiave OpenWeatherMap, Iscriviti
Come ottenere una chiave OpenWeatherMap, Iscriviti

Sul lato sinistro, in Dati meteo attuali, fai clic sul pulsante Iscriviti.

Passaggio 8: come ottenere una chiave OpenWeatherMap, ottenere la chiave API

Come ottenere una chiave OpenWeatherMap, ottenere la chiave API
Come ottenere una chiave OpenWeatherMap, ottenere la chiave API

Fai clic su Ottieni chiave API e inizia nella colonna Gratuito.

Passaggio 9: come ottenere una chiave OpenWeatherMap, registrazione

Come ottenere una chiave OpenWeatherMap, Iscriviti
Come ottenere una chiave OpenWeatherMap, Iscriviti

Fare clic sul pulsante Iscriviti in Come ottenere la chiave API (APPID).

Passaggio 10: come ottenere una chiave OpenWeatherMap, creare un account

Come ottenere una chiave OpenWeatherMap, creare un account
Come ottenere una chiave OpenWeatherMap, creare un account

Compila tutti i campi. Al termine, seleziona la casella di controllo Accetto i Termini di servizio e l'Informativa sulla privacy. Quindi fare clic sul pulsante Crea account.

Controlla la tua email per un messaggio da OpenWeatherMap.org. L'e-mail avrà la tua chiave API. Dovrai copiare la chiave API nel codice sorgente della stazione meteorologica per ottenere il meteo attuale.

Il servizio gratuito OpenWeatherMap.org ha alcune limitazioni. La cosa più importante è che non puoi accedervi più di una volta ogni dieci minuti. Questo non dovrebbe essere un problema perché il tempo non cambia così rapidamente. Le altre limitazioni riguardano le informazioni disponibili. Qualsiasi abbonamento a pagamento fornirà informazioni meteorologiche più dettagliate.

Passaggio 11: configurare l'IDE Arduino:

Configura l'IDE Arduino
Configura l'IDE Arduino

Lo sviluppo del programma è stato eseguito utilizzando l'IDE Arduino versione 1.8.0. Puoi scaricare l'ultimo IDE Arduino qui; Arduino IDE. Il sito web di Arduino ha ottime indicazioni su come installare e utilizzare l'IDE. Il supporto per ESP8266 può essere installato nell'IDE Arduino seguendo le istruzioni fornite da questo link: ESP8266 Addon to Arduino. Nella pagina web, fare clic sul pulsante "Clone or Download" e selezionare "Download Zip". Il file ReadMe.md contiene indicazioni su come aggiungere il supporto ESP8266 all'IDE Arduino. È un semplice file di testo che puoi aprire con qualsiasi editor di testo.

Le schede ESP8266 sono disponibili in tutte le dimensioni, forme e utilizzano diversi chip bridge da USB a seriale. Preferisco le schede che utilizzano il chip bridge CH340. Alcuni anni fa FTDI, SI e altri si sono stancati di cloni economici che affermano di essere le loro parti. I produttori di chip hanno cambiato il codice del driver per funzionare solo con le proprie parti originali. Ciò ha provocato molta frustrazione quando le persone hanno scoperto che i bridge da USB a seriale non funzionavano più. Ora un giorno mi attengo ai bridge USB-seriale basati su CH340 per evitare di acquistare schede che potrebbero funzionare o meno. In ogni caso dovrai trovare e installare il driver corretto per il chip bridge utilizzato sulla tua scheda. Questo è un collegamento al sito ufficiale per i driver CH340; CH341SER_EXE.

L'ESP8266 non dispone di hardware I2C dedicato. Tutti i driver I2C per ESP8266 sono basati sul bit-banging. Una delle migliori librerie I2C di ESP8266 è la libreria brzo_I2C. È stato scritto in linguaggio assembly per ESP8266 per renderlo il più veloce possibile. La libreria di display OLED che sto utilizzando utilizza la libreria brzo_I2C. Ho aggiunto il codice per accedere all'array di sensori BME280 utilizzando la libreria brzo_I2C.

Puoi ottenere la libreria OLED qui: ESP8288-OLED-SSD1306 Library.

Puoi ottenere la libreria brzo_I2C qui: Libreria Brzo_I2C.

Entrambe le librerie dovranno essere installate nel tuo IDE Arduino. Il sito Web di Arduino contiene indicazioni su come installare le librerie zip nell'IDE qui: Come installare le librerie Zip.

Suggerimento: dopo aver installato il pacchetto delle schede ESP8266 e le librerie, chiudere l'IDE Arduino e riaprirlo. Ciò garantirà che le schede e le librerie ESP8266 vengano visualizzate nell'IDE.

Passaggio 12: seleziona la tua scheda:

Seleziona la tua scheda
Seleziona la tua scheda

Apri l'IDE di Arduino. Se non lo hai ancora fatto, installa l'addon ESP8266, la libreria brzo_i2c e la libreria dei driver OLED.

Fare clic su "Strumenti" nella barra dei menu in alto. Scorri verso il basso il menu a discesa fino a dove dice "Board:". Scorri fino al menu a discesa "Gestione scheda" e scorri verso il basso fino a; "NodeMCU 1.0 (modulo ESP-12E)". Fare clic su di esso per selezionarlo. Lascia tutte le altre impostazioni al loro valore predefinito.

Passaggio 13: selezionare la porta seriale:

Seleziona la porta seriale
Seleziona la porta seriale

Fare clic su "Strumenti" nella barra dei menu in alto. Scorri verso il basso il menu a discesa fino alla voce "Porta". Seleziona la porta appropriata per il tuo computer. Se la tua porta non viene visualizzata, la tua scheda non è collegata o non hai caricato il driver per il tuo chip bridge o la tua scheda non è stata collegata quando hai aperto l'IDE Arduino. La soluzione semplice consiste nel chiudere l'IDE di Arduino, collegare la scheda, caricare eventuali driver mancanti, quindi riaprire l'IDE di Arduino.

Passaggio 14: WeatherStation.ino

Puoi utilizzare i pulsanti Download sopra o seguire questo collegamento a GitHub per ottenere il codice sorgente; ESP8266-stazione meteo.

I file WeatherStation.ino e BME280.h devono trovarsi nella stessa cartella. Il nome della cartella deve corrispondere al nome del file.ino (senza l'estensione.ino). Questo è un requisito di Arduino.

Passaggio 15: modifica WeatherStation.ino

Fare clic su "File" nella barra dei menu in alto. Fare clic su "Apri". Nella finestra di dialogo Apri file, trova la cartella WeatherStation e selezionala. Dovresti vedere due schede, una per WeatherStation e una per BME280.h. Se non hai entrambe le schede, hai aperto la cartella sbagliata o non hai scaricato entrambi i file o non li hai salvati nella cartella corretta. Riprova.

Dovrai modificare il file WeatherStation.ino per aggiungere SSID e password per la tua rete WiFi. guarda intorno alla riga 62 per quanto segue;

// inserisci qui l'SSID e la password per la tua rete WiFi

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

Sostituisci "yourssid" con l'SSID della tua rete WiFi.

Sostituisci "password" con la passkey della tua rete WiFi.

Dovrai anche aggiungere la tua chiave OpenWeatherMap e il codice postale del luogo in cui vivi. Guarda intorno alla riga 66 per quanto segue;

// inserisci qui la tua chiave OpenWeatherMap.com e il codice postale

const char* owmkey = "tuachiave"; const char* owmzip = "yourzip, paese";

Sostituisci " yourkey " con la chiave ottenuta da OpenWeatherMap.org.

Sostituisci " yourzip, country " con il tuo codice postale e il tuo paese. Il tuo codice postale dovrebbe essere seguito da una virgola e dal tuo paese ("10001, us").

Successivamente devi impostare il tuo fuso orario e abilitare/disabilitare l'ora legale (DST). Guarda intorno alla riga 85 per quanto segue;

// Il tempo non elaborato restituito è in secondi dal 1970. Per regolare la sottrazione dei fusi orari

// il numero di secondi di differenza per il tuo fuso orario. Il valore negativo // sottrae tempo, il valore positivo aggiunge tempo #define TZ_EASTERN -18000 // numero di secondi in cinque ore #define TZ_CENTRAL -14400 // numero di secondi in quattro ore #define TZ_MOUTAIN -10800 // numero di secondi in tre ore #define TZ_PACIFIC -7200 // numero di secondi in due ore

// Regola l'ora per il tuo fuso orario cambiando TZ_EASTERN con uno degli altri valori.

#define TIMEZONE TZ_EASTERN // cambia questo nel tuo fuso orario

Esiste un gruppo di istruzioni #define che definiscono l'offset temporale per vari fusi orari. Se il tuo fuso orario è presente, sostituisci "TZ_EASTERN" nella definizione "TIMEZONE". Se il tuo fuso orario non è elencato, dovrai crearne uno. Il server NTP indica l'ora come ora di Greenwich. Devi aggiungere o sottrarre un certo numero di ore (in secondi) per arrivare alla tua ora locale. Basta copiare una delle istruzioni " #define TZ_XXX" quindi modificare il nome e il numero di secondi. Quindi cambia "TZ_EASTERN" con il tuo nuovo fuso orario.

Devi anche decidere di utilizzare o meno l'ora legale. Per disabilitare l'ora legale, sostituire "1" con uno "0" nella riga successiva;

#define DST 1 // imposta a 0 per disabilitare l'ora legale

Se abilitata, l'ora legale avanzerà o ritarderà automaticamente l'ora di un'ora, se appropriato.

Passaggio 16: carica il codice sul tuo ESP8266

Carica il codice sul tuo ESP8266
Carica il codice sul tuo ESP8266

Fare clic sull'icona della freccia circolare rivolta verso destra che si trova appena sotto "Modifica" nella barra dei menu in alto. Questo compilerà il codice e lo caricherà sulla tua scheda. Se tutto viene compilato e caricato correttamente, dopo pochi secondi il display OLED dovrebbe accendersi e dovrebbe apparire il messaggio di connessione.

Passaggio 17: come visualizzare il sito Web dei dati meteorologici

Come visualizzare il sito Web dei dati meteorologici
Come visualizzare il sito Web dei dati meteorologici

L'immagine sopra mostra la pagina web servita dalla Stazione Meteo. Puoi accedervi utilizzando il tuo PC, telefono o tablet. Basta aprire un browser e digitare l'indirizzo IP della stazione meteorologica come URL. L'indirizzo IP della stazione meteorologica viene visualizzato su uno degli schermi della stazione meteorologica. Fare clic su Aggiorna pagina per aggiornare le informazioni.

Passaggio 18: Congratulazioni, hai finito

Questo è tutto. Ora dovresti avere una stazione meteorologica funzionante. Il tuo prossimo passo potrebbe essere quello di progettare e realizzare una custodia per ospitare la tua stazione meteorologica. O forse vuoi aggiungere qualche altra schermata per mostrare il raffreddamento da vento, il punto di rugiada, gli orari di alba o tramonto o un grafico delle variazioni della pressione atmosferica o prevedere il tempo utilizzando la pressione atmosferica. Divertiti e divertiti.

Consigliato: