Sommario:
- Passaggio 1: installazione di Arduino IDE, schede e librerie ESP8266 e il tuo account ThingSpeak
- Passaggio 2: esplorazione dello schizzo
- Passaggio 3: spiegazioni su…
- Passaggio 4: comunicazioni
- Passaggio 5: variabili principali
Video: Come Costruire il Tuo Anemometro Usando Interruttori Reed, Sensore ad Effetto Hall e alcuni Scarti su Nodemcu - Parte 2 - Software: 5 Passaggi (con Immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
introduzione
Questo è il seguito del primo post "Come costruire il tuo anemometro usando interruttori a lamella, sensore ad effetto Hall e alcuni frammenti su Nodemcu - Parte 1 - Hardware" - dove mostro come assemblare i dispositivi di misurazione della velocità e della direzione del vento. Qui sfrutteremo il software di controllo della misura progettato per l'uso in un Nodemcu utilizzando l'IDE Arduino.
descrizione del progetto
Nel post precedente, i dispositivi armati e collegati al Nodemcu sono in grado di misurare la velocità e la direzione del vento. Il software di controllo è stato progettato per leggere la rotazione dell'anemometro per un periodo di tempo, calcolare la velocità lineare, leggere la direzione in cui si trova la paletta, mostrare i risultati nell'OLED, pubblicare i risultati in ThingSpeak e dormire per 15 minuti fino a quando la misurazione successiva.
Dichiarazione di non responsabilità: questo anemometro non deve essere utilizzato per scopi professionali. È solo per uso accademico o domestico.
Nota: l'inglese non è la mia lingua naturale. Se trovi errori grammaticali che ti impediscono di comprendere il progetto, fammelo sapere per correggerli. Grazie molte.
Passaggio 1: installazione di Arduino IDE, schede e librerie ESP8266 e il tuo account ThingSpeak
Installazione di Arduino IDE e Nodemcu
Se non hai mai installato l'IDE Arduino leggi il tutorial nel link - Come installare Arduino IDE - dove puoi trovare le istruzioni complete.
Il prossimo passo, per installare la scheda Nodemcu, usa questo tutorial da Magesh Jayakumar Instructables che è molto completo. Come installare Nodemcu senza Arduino IDE
Installazione di librerie
Il passaggio successivo è necessario installare le librerie utilizzate dallo schizzo. Sono comuni e puoi seguire i passaggi mostrati di seguito.
Libreria ThingSpeak -
Libreria ESP8266 -
Creazione di un account ThingSpeak
Per utilizzare ThingSpeak (https://thingspeak.com/) devi creare un account (è comunque gratuito per un certo numero di interazioni) dove puoi salvare i dati misurati nel tuo anemometro e monitorare le condizioni del vento nella tua casa, anche tramite cellulare. Utilizzando ThingSpeak, puoi dare l'accesso pubblico ai tuoi dati raccolti a chiunque sia interessato. Questo è un buon vantaggio di ThingSpeak. Entra nella home page e segui i passaggi per creare il tuo account.
Una volta creato l'account, accedi a questo tutorial - ThingSpeak Getting Started - per creare i tuoi canali. È spiegato abbastanza bene. In sintesi, è necessario creare un canale in cui verranno archiviati i dati. Questo canale ha un ID e un'API chiave a cui fare riferimento nello schizzo ogni volta che si desidera registrare i dati. ThingSpeak memorizzerà tutti i dati in una banca e li mostrerà ogni volta che accedi al tuo account, nel modo che hai configurato.
Passaggio 2: esplorazione dello schizzo
Diagramma di flusso
Nel diagramma, puoi capire il flussogramma dello schizzo. Quando risveglierai (link) il Nodemcu, si connetterà alla tua rete Wi-Fi, di cui hai configurato i parametri e inizierà a contare 1 minuto di tempo per eseguire le misurazioni. Innanzitutto, conterà le rotazioni dell'anemometro per 25 secondi, calcola la velocità lineare e leggere la direzione del vento. I risultati vengono visualizzati sull'OLED. Ripeti gli stessi passaggi e per questa seconda lettura, trasmetterà a ThingSpeak.
Quindi Nodemcu dorme per 15 minuti per risparmiare la batteria. Poiché sto usando un piccolo pannello solare, è imperativo che lo faccia. Se stai usando una sorgente a 5V puoi modificare il programma in modo che non dorma e continui a misurare i dati.
Struttura dei programmi
Nel diagramma, puoi vedere la struttura dello schizzo.
Anemometro_Instructables
È il programma principale che carica le librerie, avvia le variabili, controlla l'interrupt di collegamento, chiama tutte le funzioni, calcola la velocità del vento, ne determina la direzione e lo mette in stop.
comunicazioni
Connetti il WiFi e invia i dati a ThingSpeak.
credenziali.h
Le chiavi della tua rete WiFi e gli identificatori del tuo account in ThingSpeak. Qui è dove cambierai gli ID delle chiavi e le API.
definisce.h
Contiene tutte le variabili del programma. Qui è dove puoi cambiare i tempi di lettura o per quanto tempo il nodemcu dovrebbe dormire.
funzioni
Contiene le funzioni per combinare i parametri e leggere il multiplexer e la funzione per leggere le rotazioni dell'anemometro.
oledDisplay
Mostra i risultati sullo schermo della velocità e della direzione del vento.
Passaggio 3: spiegazioni su…
Allega interruzione
La rotazione dell'anemometro è misurata dalla funzione attachInterrupt () (e detachInterrupt ()) nel GPIO 12 (pin D6) del Nodemcu (ha funzione di interrupt sui suoi pin D0-D8).
Gli interrupt sono eventi o condizioni che fanno sì che il microcontrollore interrompa l'esecuzione dell'attività che sta eseguendo, lavori in un'attività diversa temporaneamente e torni all'attività iniziale.
Puoi leggere il dettaglio della funzione nel link per il tutorial di Arduino. Vedere attachInterrupt().
Sintassi: attachInterrupt (pin, funzione di callback, tipo/modalità di interruzione);
pin = D6
funzione di callback = rpm_anemometer - conta ogni impulso su una variabile.
tipo/modalità di interruzione = RISING - interruzione quando il pin passa da basso ad alto.
Ad ogni impulso prodotto dal magnete nel sensore di Hall, il pin va da basso ad alto e si attiva la funzione di conteggio sommando gli impulsi in una variabile, durante i 25 secondi stabiliti. Allo scadere del tempo, il contatore viene disconnesso (detachInterrupt()) e la routine calcola la velocità mentre è disconnesso.
Calcolo della velocità del vento
Una volta determinato quante rotazioni ha dato l'anemometro in 25 secondi, calcoliamo la velocità.
- RADIO è la misura dall'asse centrale dell'anemometro alla punta della pallina da ping pong. Devi aver misurato molto bene il tuo - (vedi quello nel diagramma che dice 10 cm).
- RPS (rotazioni al secondo) = rotazioni / 25 secondi
- RPM (rotazioni al minuto) = RPS * 60
- OMEGA (velocità angolare - radianti al secondo) = 2 * PI * RPS
- Linear_Velocity (metri al secondo) = OMEGA * RADIO
- Linear_Velocity_kmh (Km all'ora) = 3.6 * Linear_Velocity e questo è ciò che verrà inviato a ThingSpeak.
Leggi la direzione della banderuola
Per leggere la posizione della banderuola per determinare la direzione del vento il programma invia i segnali basso e alto al multiplexer con tutte le combinazioni dei parametri A, B, C (matrice muxABC) e attende di ricevere sul pin A0 il risultato che può essere qualsiasi tensione compresa tra 0 e 3,3 V. Le combinazioni sono mostrate nel diagramma.
Ad esempio, quando C = 0 (basso), B = 0 (basso), A = 0 (basso) il multiplexer gli fornisce i dati del pin 0 e invia il segnale ad A0 che viene letto dal Nodemcu; se C = 0 (basso), B = 0 (basso), A = 1 (alto) il multiplexer ti invierà i dati del pin 1 e così via, fino al completamento della lettura degli 8 canali.
Essendo il segnale analogico, il programma si trasforma in digitale (0 o 1), se la tensione è minore o uguale a 1.3V il segnale è 0; se è maggiore di 1.3V il segnale è 1. Il valore 1.3V è arbitrario e per me ha funzionato molto bene. Ci sono sempre piccole dispersioni di corrente e questo protegge dall'assenza di falsi positivi.
Questi dati sono memorizzati in un vettore val[8] che verrà confrontato con l'array di indirizzi come bussola. Vedere la matrice nel diagramma. Ad esempio, se il vettore ricevuto è [0, 0, 1, 0, 0, 0, 0, 0, 0] indica nella matrice la direzione E e corrisponde ad un angolo di 90 gradi; se [0, 0, 0, 0, 0, 0, 1, 1] indica nella matrice l'indirizzo WNW e corrisponde ad un angolo di 292,5 gradi. La N corrisponde a [1, 0, 0, 0, 0, 0, 0, 0, 0] e un angolo di 0 gradi.
Ciò che verrà inviato a ThingSpeak è inclinato perché accetta solo numeri.
Passaggio 4: comunicazioni
Come inviare dati a ThingSpeak
La funzione thingspeaksenddata() è responsabile dell'invio dei dati.
ThingSpeak.setField (1, float (linear_velocity_kmh)) - Invia i dati di velocità al campo1 del mio canale
ThingSpeak.setField (2, float (wind_Direction_Angle)) - Invia i dati dell'indirizzo al campo2 del mio canale
ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - Invia al mio canale myChannelNumber, con la scritta myWriteAPIKey API indicata da TS. Questi dati sono stati generati da TS durante la creazione del tuo account e del tuo canale.
Nelle immagini sopra puoi vedere come ThingSpeak mostra i dati ricevuti.
In questo link puoi accedere ai dati del mio progetto nel canale pubblico di ThingSpeak.
Passaggio 5: variabili principali
parametri della banderuola
- MUX_A D5 - mux pi A a Nodemcu pin D5
- MUX_B D4 - mux pin B a Nodemcu pin D4
- MUX_C D3 - mux pin C a Nodemcu pin D3
- READPIN 0 - Ingresso analogico su NodeMcu = A0
- NO_PINS 8 - numero di pin mux
- val[NO_PINS] - porte da 0 a 7 di mux
- wind_Direction_Angle - Angolo della direzione del vento
- String windRose[16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - cardenals, collaterali e sub-garanzie
- windAng[16] = {0, 22,5, 45, 67,5, 90, 112,5, 135, 157,5, 180, 202,5, 225, 247,5, 270, 292,5, 315, 337,5} - angoli di ciascuna direzione
- Cifra [16] [NO_PINS] - Matrice delle direzioni
- muxABC[8] [3] - Combinazioni ABC mux
parametri dell'anemometro
- rpmcount - conta quante rotazioni complete ha fatto l'anemometro nel tempo assegnato
- timemeasure = 25,00 - tempo di durata della misurazione in secondi
- timetoSleep = 1 - Nodemcu tempo di veglia in minuti
- sleepTime = 15 - tempo per continuare a dormire in minuti
- rpm, rps - frequenze di rotazione (rotazioni al minuto, rotazioni al secondo)
- raggio - metri - la misura della lunghezza dell'ala dell'anemometro
- linear_velocity - velocità lineare in m/seg
- linear_velocity_kmh - velocità lineare in km/h
- omega - velocità radiale in rad/seg
Di seguito potete trovare lo schizzo completo. Crea una nuova cartella sulla cartella Arduino del tuo computer con lo stesso nome del programma principale (Anemometer_Instructables) e mettili tutti insieme.
Inserisci i dati della tua rete wifi e il ThingSpeak ID e API Writer Key nella parte Credentials.he salva. Carica su Nodemcu e questo è tutto.
Per testare il funzionamento del sistema consiglio una buona ventola rotante.
Per accedere ai dati da cellulare, scarica l'applicazione per IOS o Android chiamata ThingView, che fortunatamente è ancora gratuita.
Configura le impostazioni del tuo account e sarai pronto a vedere le condizioni del vento di casa ovunque tu sia.
Se sei interessato, accedi al mio canale ThingSpeak Channel ID: 438851, che è pubblico e lì troverai le misurazioni del vento e della direzione a casa mia.
Spero davvero che tu ti diverta.
Se hai qualche dubbio non esitare a contattarmi.
Saluti
Consigliato:
Conversione del sensore ad effetto Hall Logitech 3D Extreme Pro: 9 passaggi
Conversione del sensore ad effetto Hall Logitech 3D Extreme Pro: Il controllo del timone sul mio joystick si stava spegnendo. Ho provato a smontare le pentole e a pulirle, ma non è servito a niente. Quindi ho iniziato a cercare pentole sostitutive e mi sono imbattuto in alcuni siti Web diversi di diversi anni fa che fanno riferimento
Sensore ad effetto Hall Arduino con interruzioni: 4 passaggi
Arduino Hall Effect Sensor With Interrupts: Ciao a tutti, oggi vi mostrerò come collegare un sensore ad effetto hall a un Arduino e utilizzarlo con un interrupt. Strumenti e materiali utilizzati nel video (link affiliati): Arduino Uno: http ://s.click.aliexpress.com/e/biNyW0zKHall sensori ad effetto: h
Sensore ad effetto Hall: Carillon di Natale: 4 passaggi
Sensore ad effetto Hall: Carillon di Natale: questo è un carillon che riproduce la musica una volta aperto (guarda il video!). È un modo fantastico, speciale e unico per incartare i regali per la tua persona speciale! Utilizza un sensore ad effetto hall per verificare se il coperchio è stato aperto dalla mancanza di campo magnetico e
Costruire un Arduino fai da te su un PCB e alcuni suggerimenti per principianti: 17 passaggi (con immagini)
Costruire un Arduino fai-da-te su un PCB e alcuni suggerimenti per i principianti: questo è inteso come una guida per chiunque voglia saldare il proprio Arduino da un kit, che può essere acquistato da A2D Electronics. Contiene molti suggerimenti e trucchi per costruirlo con successo. Imparerai anche quali sono i diversi componenti d
Sensore ad effetto Hall su Arduino utilizzando Fidget Spinner: 3 passaggi (con immagini)
Sensore ad effetto hall su Arduino utilizzando Fidget Spinner: AbstractIn questo progetto sto spiegando come funziona il sensore ad effetto hall misurando la velocità del filatore di fidget con la scheda arduino. funzionamento:-Un sensore ad effetto Hall è un trasduttore che varia la sua tensione di uscita in risposta a un campo magnetico. Effetto Hall