Taula de continguts:
- Pas 1: Instal·leu Arduino IDE, taulers i biblioteques ESP8266 i el vostre compte de ThingSpeak
- Pas 2: explorar l'esbós
- Pas 3: explicacions sobre …
- Pas 4: Comunicacions
- Pas 5: variables principals
Vídeo: Com construir el vostre propi anemòmetre mitjançant interruptors Reed, sensor d'efecte Hall i alguns retalls a Nodemcu - Part 2 - Programari: 5 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Introducció
Aquesta és la seqüela del primer post "Com construir el vostre propi anemòmetre amb interruptors Reed, sensor d'efecte Hall i alguns retalls a Nodemcu - Part 1 - Maquinari" - on mostro com muntar els dispositius de mesura de la velocitat i la direcció del vent. Aquí explotarem el programari de control de mesurament dissenyat per utilitzar-lo en un Nodemcu mitjançant l'IDE Arduino.
Descripció del Projecte
A la publicació anterior, els dispositius armats i connectats al Nodemcu poden mesurar la velocitat i la direcció del vent. El programari de control es va dissenyar per llegir la rotació de l’anemòmetre durant un període de temps, calcular la velocitat lineal, llegir la direcció en què es troba la paleta, mostrar els resultats a l’OLED, publicar els resultats a ThingSpeak i dormir durant 15 minuts fins que la següent mesura.
Exempció de responsabilitat: aquest anemòmetre no s’ha d’utilitzar amb finalitats professionals. Només és per a ús acadèmic o domèstic.
Nota: l’anglès no és el meu idioma natural. Si trobeu errors gramaticals que us impedeixen comprendre el projecte, feu-me-ho saber per corregir-los. Moltes gràcies.
Pas 1: Instal·leu Arduino IDE, taulers i biblioteques ESP8266 i el vostre compte de ThingSpeak
Instal·lació d’Arduino IDE i Nodemcu
Si mai no heu instal·lat l'IDE, l'Arduino llegeix el tutorial a l'enllaç - Com instal·lar Arduino IDE - on trobaràs les instruccions completes.
El següent pas, per instal·lar la placa Nodemcu, utilitzeu aquest tutorial del Magesh Jayakumar Instructables, que és molt complet. Com instal·lar Nodemcu no Arduino IDE
Instal·lació de biblioteques
El següent pas heu d'instal·lar les biblioteques que utilitza l'esbós. Són habituals i podeu seguir els passos que es mostren a continuació.
Biblioteca ThingSpeak:
Biblioteca ESP8266 -
Creació d’un compte de ThingSpeak
Per utilitzar ThingSpeak (https://thingspeak.com/) heu de crear un compte (encara és gratuït per a un nombre determinat d’interaccions) on podeu desar les dades mesurades al vostre anemòmetre i controlar les condicions del vent a casa vostra, fins i tot a través del mòbil. En utilitzar ThingSpeak, podeu donar accés públic a les vostres dades recopilades a qui hi estigui interessat. Aquest és un bon avantatge del ThingSpeak. Introduïu la pàgina d'inici i seguiu els passos per crear el vostre compte.
Un cop creat el compte, introduïu aquest tutorial - Introducció a ThingSpeak - per crear els vostres canals. Està força ben explicat. En resum, heu de crear un canal on s’emmagatzemaran les dades. Aquest canal té un identificador i una API clau que s'han de fer referència a l'esbós cada vegada que vulgueu enregistrar dades. ThingSpeak emmagatzemarà totes les dades en un banc i les mostrarà cada vegada que accediu al vostre compte, de la manera que hàgiu configurat.
Pas 2: explorar l'esbós
Diagrama de flux
Al diagrama podeu entendre el fluxograma de l’esbós. En despertar (enllaçar) el Nodemcu, es connectarà a la vostra xarxa Wi-Fi, els paràmetres del qual heu configurat i començarà a comptar 1 minut de temps per realitzar les mesures. En primer lloc, comptarà les rotacions de l’anemòmetre durant 25 segons, calculeu la velocitat lineal i llegir la direcció del vent. Els resultats es mostren a l’OLED. Torneu a fer els mateixos passos i, per a aquesta segona lectura, es transmetrà a ThingSpeak.
A continuació, Nodemcu dorm durant 15 minuts per estalviar la bateria. Com que faig servir un petit panell solar, és imprescindible que ho faci. Si utilitzeu una font de 5V, podeu modificar el programa perquè no dormi i seguir mesurant les dades.
Estructura dels programes
Al diagrama podeu veure l'estructura de l'esbós.
Anemòmetre_Instructibles
És el programa principal que carrega les biblioteques, inicia les variables, controla la interrupció del fitxer adjunt, crida totes les funcions, calcula la velocitat del vent, determina la seva direcció i la posa a dormir.
comunicacions
Connecteu el WiFi i envieu les dades a ThingSpeak.
credencials.h
Les claus de la vostra xarxa WiFi i els identificadors del vostre compte a ThingSpeak. Aquí és on canviarà els ID i les API de claus.
defineix.h
Conté totes les variables del programa. Aquí és on podeu canviar els temps de lectura o quant de temps ha de dormir el nodemcu.
funcions
Conté les funcions per combinar els paràmetres i llegir el multiplexor, així com la funció per llegir les rotacions de l'anemòmetre.
oledDisplay
Mostra els resultats de la velocitat i la direcció del vent a la pantalla.
Pas 3: explicacions sobre …
Adjunta interrupció
La rotació de l’anemòmetre es mesura mitjançant la funció attachInterrupt () (i detachInterrupt ()) al GPIO 12 (pin D6) del Nodemcu (té una funció d’interrupció als pins D0-D8).
Les interrupcions són esdeveniments o condicions que fan que el microcontrolador aturi l'execució de la tasca que realitza, treballi temporalment en una tasca diferent i torni a la tasca inicial.
Podeu llegir el detall de la funció a l’enllaç del tutorial d’Arduino. Vegeu attachInterrupt ().
Sintaxi: attachInterrupt (pin, funció de devolució de trucada, tipus / mode d'interrupció);
pin = D6
funció de devolució de trucada = rpm_anemometer: compta cada impuls en una variable.
tipus / mode d’interrupció = RISING: interromp quan el pin passa de menor a major.
A cada pols produït pel magneto al sensor Hall, el pin passa de menor a major i la funció de recompte s'activa i suma el pols en una variable, durant els 25 segons establerts. Un cop expirat el temps, el comptador es desconnecta (detachInterrupt ()) i la rutina calcula la velocitat mentre es desconnecta.
Càlcul de la velocitat del vent
Un cop s’ha determinat quantes rotacions va donar l’anemòmetre en 25 segons, calculem la velocitat.
- RADIO és la mesura des de l’eix central de l’anemòmetre fins a la punta de la bola de ping pong. Heu d’haver mesurat molt bé el vostre (vegeu-ho al diagrama que diu 10 cm).
- RPS (rotacions per segon) = rotacions / 25 segons
- RPM (rotacions per minut) = RPS * 60
- OMEGA (velocitat angular - radians per segon) = 2 * PI * RPS
- Lineal_Velocity (metres per segon) = OMEGA * RADIO
- Linear_Velocity_kmh (Km per hora) = 3,6 * Linear_Velocity i això és el que s'enviarà a ThingSpeak.
Llegiu la direcció de les veletes
Per llegir la posició de la veleta per determinar la direcció del vent, el programa envia senyals baixos i alts al multiplexor amb totes les combinacions dels paràmetres A, B, C (matriu muxABC) i espereu a rebre al pin A0 el resultat que pot tenir qualsevol tensió entre 0 i 3,3 V. Les combinacions es mostren al diagrama.
Per exemple, quan C = 0 (baix), B = 0 (baix), A = 0 (baix) el multiplexor li dóna les dades del pin 0 i envia el senyal a A0 que llegeix el Nodemcu; si C = 0 (baix), B = 0 (baix), A = 1 (alt) el multiplexor us enviarà les dades del pin 1 i així successivament, fins que es completi la lectura dels 8 canals.
Com que el senyal és analògic, el programa es transforma en digital (0 o 1), si el voltatge és inferior o igual a 1,3 V, el senyal és 0; si és superior a 1,3 V, el senyal és 1. El valor de 1,3 V és arbitrari i per a mi funcionava molt bé. Sempre hi ha petites fuites de corrent i això protegeix que no hi hagi falsos positius.
Aquestes dades s’emmagatzemen en un vector val [8] que es compararà amb la matriu d’adreces com la brúixola. Vegeu la matriu del diagrama. Per exemple, si el vector rebut és [0, 0, 1, 0, 0, 0, 0, 0, 0], indica a la matriu la direcció E i correspon a un angle de 90 graus; si [0, 0, 0, 0, 0, 0, 1, 1] indica a la matriu l'adreça WNW i correspon a un angle de 292,5 graus. La N correspon a [1, 0, 0, 0, 0, 0, 0, 0, 0] i angle de 0 graus.
El que s'enviarà a ThingSpeak està inclinat perquè només accepta números.
Pas 4: Comunicacions
Com enviar dades a ThingSpeak
La funció thingspeaksenddata () s’encarrega d’enviar les dades.
ThingSpeak.setField (1, float (linear_velocity_kmh)): envia les dades de velocitat al camp 1 del meu canal
ThingSpeak.setField (2, float (wind_Direction_Angle)): envia les dades de l'adreça al camp 2 del meu canal
ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey): enviar al meu canal myChannelNumber, amb l'API myWriteAPIKey escrita indicada per TS. TS va generar aquestes dades en crear el vostre compte i canal.
A les imatges de dalt podeu veure com ThingSpeak mostra les dades rebudes.
En aquest enllaç podeu accedir a les dades del meu projecte al canal públic de ThingSpeak.
Pas 5: variables principals
paràmetres de la veleta
- MUX_A D5: mux pi A a Nodemcu pin D5
- MUX_B D4: pin mux B al pin D4 de Nodemcu
- MUX_C D3: mux pin C a Nodemcu pin D3
- READPIN 0 - Entrada analògica a NodeMcu = A0
- NO_PINS 8: nombre de pins mux
- val [NO_PINS]: ports del 0 al 7 de mux
- wind_Direction_Angle: angle de direcció del vent
- String windRose [16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - cardenals, col·laterals i sub-col·laterals
- 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} - angles de cada direcció
- Dígit [16] [NO_PINS] - Matriu d'indicacions
- muxABC [8] [3] - Combinacions mux ABC
paràmetres de l’anemòmetre
- rpmcount: compta quantes rotacions completes ha fet l'anemòmetre en el temps assignat
- timemeasure = 25.00 - mesura durantion temps en segons
- timetoSleep = 1: temps de despert de Nodemcu en minuts
- sleepTime = 15: temps per seguir dormint en qüestió de minuts
- rpm, rps - freqüències de rotació (rotacions per minut, rotacions per segon)
- radi - metres: la mesura de la longitud de l’ala de l’anemòmetre
- lineal_velocity: velocitat lineal en m / seg
- lineal_velocitat_kmh: velocitat lineal en km / h
- omega - velocitat radial en rad / seg
A continuació podeu trobar l’esbós complet. Creeu una carpeta nova a la carpeta Arduino de l'ordinador amb el mateix nom que el programa principal (Anemometer_Instructables) i ajunteu-les totes.
Introduïu les dades de la vostra xarxa wifi i l'identificador de ThingSpeak i la clau d'escriptor API a la part Credentials.h i deseu. Puja a Nodemcu i això és tot.
Per provar el funcionament del sistema, recomano un bon ventilador giratori.
Per accedir a les dades per telèfon mòbil, descarregueu l'aplicació per a iOS o Android anomenada ThingView, que, per sort, encara és gratuïta.
Configureu la configuració del vostre compte i estareu a punt per veure les condicions del vent de casa vostra allà on sigueu.
Si teniu interès, accediu al meu canal d’identificació del canal ThingSpeak: 438851, que és públic i allà trobareu les mesures de vent i direcció a casa meva.
Realment espero que us divertiu.
Si teniu cap dubte, no dubteu en posar-vos en contacte amb mi.
Salutacions
Recomanat:
Feu el vostre propi termòstat de calefacció connectat i estalvieu amb la calefacció: 53 passos (amb imatges)
Feu el vostre propi termòstat de calefacció connectat i estalvieu amb la calefacció: Quin és el propòsit? Augmenteu la comoditat escalfant la vostra casa exactament com vulgueu. Estalvieu i reduïu les emissions de gasos d'efecte hivernacle escalfant la vostra casa només quan necessiteu. Mantingueu el control de la vostra calefacció allà on esteu. Estigueu orgullosos de fer-ho
Construir un Arduino de bricolatge en un PCB i alguns consells per a principiants: 17 passos (amb imatges)
Construir un Arduino de bricolatge en un PCB i alguns consells per a principiants: es tracta d’una guia per a qualsevol persona que soldi el seu propi Arduino a partir d’un kit, que es pot comprar a A2D Electronics. Conté molts consells i trucs per construir-lo amb èxit. També coneixereu quins són els diferents components que
Sensor d'efecte Hall a Arduino mitjançant Fidget Spinner: 3 passos (amb imatges)
Sensor d'efecte Hall a Arduino mitjançant Fidget Spinner: resum funcionament: -Un sensor d'efecte Hall és un transductor que varia la seva tensió de sortida en resposta a un camp magnètic. Efecte Hall
Com fer el vostre propi carregador de cotxe USB per a qualsevol iPod o altres dispositius que es carreguin mitjançant USB: 10 passos (amb imatges)
Com fer el vostre propi carregador de cotxe USB per a qualsevol iPod o altres dispositius que es carreguin mitjançant USB: creeu un carregador de cotxe USB per a qualsevol iPod o altre dispositiu que es carregui mitjançant USB combinant un adaptador de cotxe que produeixi un endoll femella de 5v i USB. La part més important d'aquest projecte és assegurar-se que la sortida que l'adaptador de cotxe escollit sigui aposta
Com construir el vostre propi motor a reacció: 10 passos (amb imatges)
Com construir el vostre propi motor a reacció: no cal que sigueu Jay Leno per tenir una motocicleta propulsada a reacció i us mostrarem com fer el vostre propi avió aquí mateix per alimentar els vostres bojos vehicles. Aquest és un projecte en curs i hi haurà molta informació addicional disponible al nostre lloc web