Taula de continguts:
- Pas 1: què necessiteu:
- Pas 2: connecteu Arduino a DHT11
- Pas 3: descarregueu Arduino IDE
- Pas 4: connecteu Arduino a l'ordinador
- Pas 5: carregueu la biblioteca
- Pas 6: Obteniu el codi Arduino
- Pas 7: carregueu el codi a Arduino
- Pas 8: baixeu i instal·leu el processament
- Pas 9: processament del codi
- Pas 10: processament de fitxers de codi
- Pas 11: tipus de lletra en procés
- Pas 12: Acabar
- Pas 13: resolució de problemes
Vídeo: Visualització de temperatura i humitat i recollida de dades amb Arduino i processament: 13 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Introducció: es tracta d’un projecte que utilitza una placa Arduino, un sensor (DHT11), un ordinador Windows i un programa de processament (que es pot descarregar gratuïtament) per mostrar les dades de temperatura, humitat en forma de gràfics digitals i de barres, mostrar l’hora i la data i fer un recompte temporitzador durant el programa i registreu totes les dades en format.csv quan el programa estigui tancat.
Inspiració:
Primer he de dir que sóc un principiant total i que he après molt d’aquest projecte. Per tant, intento escriure aquest instructiu per ser llegit i entès per un principiant total.
Havia vist diversos projectes Arduino per mesurar la temperatura i la humitat, però volia un programa que:
1) Mesura de la temperatura i la humitat
2) Vaig mostrar les dades tant en un gràfic (vaig triar un gràfic de barres) com en forma digital
3) Té una funció de rellotge
4) Té un temporitzador de temps d'execució
5) Desa aquestes dades en un format de fitxer.csv (excel).
Em vaig inspirar en programes creats per Sowmith Mandadi, R-B i aaakash3, però cap d’ells era exactament el que volia. Així que vaig aprendre a escriure algun codi bàsic i vaig fer el que volia.
Pas 1: què necessiteu:
Parts i materials: * Ordinador: he utilitzat un sistema operatiu Windows 10 amb un equip Windows
(Estic segur que es podria utilitzar Linux o Mac, simplement no en tinc cap, de manera que no tractaré com utilitzar aquests sistemes operatius)
* Taula Arduino: he utilitzat una placa Arduino Uno, però qualsevol placa Arduino amb USB sí
* Cable USB -Cable A / B USB-igual que el "cable d'impressora" de tipus antic (normalment inclou la placa Arduino)
* Sensor de temperatura / humitat DHT 11: barat de 4 a 8 dòlars
(Nota: hi ha 2 versions que he utilitzat la versió de 3 pins, la versió de 4 pins requerirà l'ús d'una placa de resolució i una resistència de 10 K, el 3 pins té una placa de circuit imprès que inclou la resistència de 10 K) vegeu els diagrames de Fritzing en els passos següents
* Cable de connexió
Cables Dupont (dobles extrems femella) si es connecten a DHT11 de 3 pins sense taulers de suport
Cables M / F de pont estàndard (un extrem masculí un extrem femella) i cables de pont M / M (ambdós extrems mascle) per connectar DHT11 de 4 pins. Consulteu el pas 2 per obtenir més informació.
* Arduino IDE: un programa per escriure programes Arduino (anomenats croquis) gratuït @
www.arduino.cc/ca/Main/Software
* Processament: un programa per escriure esbossos de processament gratuïtament @
processing.org/download/
* Fitxer "DHTLib": un fitxer de biblioteca (es tracta d'un fitxer que entra al programa Arduino IDE a la carpeta anomenada "Biblioteca"), caldrà afegir-lo a l'esbós d'Arduino abans que l'Arduino pugui llegir les dades del DHT11. Vegeu pas 5 per descarregar el fitxer i les instruccions
Pas 2: connecteu Arduino a DHT11
Primer determineu quin DHT11 teniu
He utilitzat el pin de 3 ja que ja té la resistència necessària de 10K.
Si teniu els 4 pins, necessitareu una resistència de 10 K i una placa de control
Connecteu DHT11 a la placa Arduino. Aquest programa demana que es connecti el pin de senyal DHT 11 al pin Arduino # 7, el pin Pos (+) connectat a 5V a Arduino i Neg (-) a GND a Arduino.
Consulteu Diagrames i diagrames Fritzing
Pas 3: descarregueu Arduino IDE
Descarregueu Arduino IDE i instal·leu-lo a l'ordinador
www.arduino.cc/ca/Main/Software
Pas 4: connecteu Arduino a l'ordinador
Instal·leu primer l'IDE Arduino, que té controladors per a la connexió USB Arduino.
Connecteu Arduino a l'ordinador mitjançant USB.
Espereu fins que l’ordinador reconegui la placa Arduino i instal·leu els controladors.
Obriu el programa IDE i comproveu si hi ha connexió en sèrie.
Si la placa Arduino no apareix a Eines> port (cercle vermell), tanqueu l'IDE i torneu a obrir-lo.
* Important * un cop l'IDE estigui obert i la placa Arduino estigui connectada mitjançant USB. La placa Arduino ha d’estar connectada al port sèrie correcte. Als ordinadors Windows, això es coneix com a port COM. Per fer-ho a l’IDE, aneu a Eines> Port:> ports sèrie. Com es veu al diagrama, el port sèrie (cercle vermell) ha de coincidir amb el port que apareix a l'extrem inferior dret del programa IDE (cercle groc).
Pas 5: carregueu la biblioteca
Carregueu la biblioteca del DHT11. Això em va confondre al principi, però és realment senzill.
Baixeu-vos el fitxer anomenat "DHTLib" i descomprimiu-lo. Copieu el fitxer descomprimit "DHTLib".
Podeu trobar referència a aquesta biblioteca a:
playground.arduino.cc/Main/DHTLib
(Va ser escrit per Rob Tillaart basat en treballs d'altres)
Cerqueu la carpeta Arduino a l'ordinador i obriu-la. (Serà allà on hagueu descarregat l'IDE i l'heu instal·lat a l'ordinador)
Vegeu l’esquema
Cerqueu el fitxer anomenat "biblioteques" i obriu-lo i enganxeu la carpeta "DHTLib" al fitxer "biblioteques". Tanqueu-lo i reinicieu l'IDE.
Vegeu l’esquema
Un cop l'IDE s'ha tornat a obrir, podeu comprovar que la biblioteca DHT s'hagi instal·lat. Esbós> Inclou biblioteca.
Vegeu l’esquema
Nota Si feu clic a DHTLib a la pestanya "inclou biblioteca", la biblioteca es col·locarà al codi Arduino com a "#include dht.h".
No cal que ho feu perquè ja es troba al codi que baixareu al pas següent.
Pas 6: Obteniu el codi Arduino
Baixeu-vos el fitxer Temp_Hum_Instructable.zip i descomprimiu-lo. Obriu Temp_Hum_Instructable.ino amb l'IDE Arduino.
Alternativament, mireu el codi següent i copieu i enganxeu o escriviu exactament a l’IDE Arduino:
#incloure
dht DHT; #define DHT11PIN 7 // defineix el pin 7 per a la connexió del senyal DHT11 void setup () {Serial.begin (9600); // obre sèrie} bucle buit () {int chk = DHT.read11 (DHT11PIN); // llegeix DHT11 Serial.print (DHT.temperature, 0); // imprimeix temp en sèrie Serial.print (","); // imprimeix comes en sèrie Serial.print (DHT.humidity, 0); // imprimeix humitat en sèrie Serial.println (); // retard de retorn del carro (2000); // espera 2 segons}
Quan hàgiu acabat, hauria de semblar al diagrama anterior
Pas 7: carregueu el codi a Arduino
Primer, deseu l'esbós a la ubicació i amb un nom que recordareu, per exemple: Temp_Hum.
A continuació, heu de carregar l'esbós a la placa Arduino prement el botó de fletxa apuntant a la dreta (pujar).
Vegeu l’esquema
Això trigarà uns segons; veureu una barra de progrés a la part inferior dreta.
A continuació, veureu: S'ha carregat el missatge a la part inferior esquerra i el text blanc a la part inferior de l'IDE que us explica la memòria
Vegeu l’esquema
Si obteniu un codi d'error (text taronja a la part inferior de l'IDE), hauria de ser un dels següents
- La biblioteca "DHTlib" no s'ha copiat correctament
- El port COM no està configurat correctament
- El sensor no s'ha connectat correctament
- El codi no s'ha carregat correctament a l'IDE. Es pot desplaçar el text taronja i donarà una idea del que està malament. Torneu enrere i comproveu que probablement sigui un simple error.
Un cop fet això, mireu de prop la vostra placa Arduino. Cada parell de segons el petit LED al costat de les lletres "TX" parpellejarà. Es tracta de l’Arduino que envia informació de nou a l’ordinador. Per comprovar-ho, feu clic al símbol de la lupa que hi ha a l'extrem superior dret de l'IDE.
Vegeu l’esquema
Això obrirà el monitor sèrie i mostrarà les dades de temperatura i humitat separades per una coma. Notareu que les dades de temperatura apareixen en centígrads. Això sí, ho convertirem a Fahrenheit més tard (o no, si ho decidiu).
Vegeu l’esquema
A continuació, tanqueu el monitor sèrie i tanqueu l'IDE. (Us heu recordat de desar-lo, no?). Ara mireu de nou la placa Arduino (no la desconnecteu de l’USB que és on s’està alimentant i enviant dades al port sèrie de l’ordinador). Encara parpelleja? Sí, genial. Un cop carregat el programa a l'Arduino, s'executarà sempre que tingui energia.
Nota sobre el codi: si mireu el codi Arduino que comença per "void loop ();". Les següents 5 línies de codi indiquen a Arduino que llegeixi les dades del DHT i que les imprimeixi al bus sèrie separades per una coma. La següent línia "delay (2000);" diu a Arduino que espereu 2 segons (2.000 mil·lisegons) per rebre les dades cada 2 segons. Després es torna a "void loop ();": una ordre que indica a Arduino que ho torni a fer. Canviar el valor a la línia de retard canviarà la freqüència amb què es reben les dades. Exemple: canviarà a (600000) a 10 minuts (600.000 mil·lisegons = 10 minuts). La recepció de dades cada 2 segons acaba sent una gran quantitat de dades, de manera que ja sabeu com canviar la freqüència amb què es llegeixen les dades. Recordeu si canvieu el valor més endavant. cal carregar el nou programa.
D’acord, asseu-te i respira, ja estàs a la meitat del camí. Sí !!
Pas 8: baixeu i instal·leu el processament
processing.org/download/
Bastant senzill, seleccioneu el programa que correspongui al vostre ordinador per a Windows de 64 bits contra 32 bits. Si no ho sabeu, obriu el tauler de control de l'ordinador (la visualització d'icones no la vista de categories) i aneu al sistema que s'hi mostrarà.
Vegeu l’esquema
Baixeu-lo i instal·leu el programa.
La primera vegada que obriu i executeu el processament, probablement rebreu un missatge de seguretat Java. Feu clic a "permetre" per a xarxes privades. Java és el llenguatge informàtic utilitzat per Processing (i Arduino IDE). Curiosament, mai no he tingut el missatge de seguretat amb Arduino IDE, només Processant.
Pas 9: processament del codi
D'acord ara per al codi de processament.
Aquesta va ser la part més desafiant per a mi, però també la que més oportunitats per aprendre. Tot i que el codi Arduino tenia aproximadament 20 línies, aquest codi té +/- 270 línies al codi principal i altres 70 + a les classes.
Ara el primer que us hauríeu de preguntar és "Què són les classes?". Bona pregunta. Això fa referència a la programació orientada a objectes. En resum, hi ha un munt de coses que passen al codi principal: definició de la mida i el color de la pantalla, un rellotge, un temporitzador, codi per mostrar la ubicació del cursor, codi per desar les dades en un fitxer.csv i algunes línies que tracta del codi que mostra els gràfics de barres. Tot i que l'IDE Arduino tenia tot el codi en una pàgina, aquest codi de processament té tres pestanyes. El primer és el codi principal i els dos següents són el codi que mostra els gràfics de barres. (Aquest codi s'emmagatzema en tres fitxers diferents a la carpeta de codi de processament.) Les pestanyes separades s'anomenen "classes" i es defineixen a les línies 48 i 56 i es mostren a continuació a les línies 179-182 del codi principal. Les persones que van escriure el programa de processament anomenen aquesta programació orientada a objectes. (vegeu: https://processing.org/tutorials/objects/ per obtenir una breu descripció).
Bàsicament, el que fan les classes (Recta1, Recta2) d’aquest codi és crear rectangles que es mouen cap amunt i cap avall en funció de les dades rebudes del DHT11 via sèrie. Penseu que el termòmetre a l’antiga com més alt és el mercuri, més calent és, però això es fa amb dades i no amb mercuri. En realitat, les classes creen quatre rectangles, dos rectangles estàtics que representen el fons del termòmetre i dos rectangles dinàmics que responen a les dades i es mouen cap amunt i cap avall. A més de moure els rectangles, el codi canvia el color del rectangle dinàmic i el color de la pantalla digital de Temp i Humitat en funció de les dades que es rebin per sèrie.
Pas 10: processament de fitxers de codi
Només alguns conceptes bàsics sobre el processament del codi:
Us recomano llegir Make: Getting Started withProcessing per Casey Reas i Ben Fry, els fundadors de Processing.
processing.org/books/#reasfry2
No intentaré explicar tots els aspectes del processament o escriure codi per al processament. Com he dit anteriorment, sóc principiant i crec que hi ha molta gent millor per aprendre. Tanmateix, entenc el codi que he escrit (la prova i l’error són bons professors).
1. Primer cal incloure biblioteques (igual que a Arduino) i declarar variables (línies 1-25)
2. A continuació, configureu el tauler de visualització (línies 27-63)
3. Executeu una part repetida del codi; el que vull dir és que aquesta part del codi es repetirà sempre que el programa estigui en execució. Recordareu In Arduino “void loop ();” (Pas 6). A Processament, això és ara "void draw ();" (Línies 65-184)
4. El següent és obtenir dades del port sèrie i assignar-les a variables (int, float, String)
int-
surar-
Cadena-
(Línies 185-245)
4. Per últim, una manera de tancar el programa i desar les dades (línies 246-271)
D'acord: descarregueu el fitxer Temp_Hum_F_3_2 (per Fahrenheit)
O Temp_Hum_C_3_1 (per centígrads)
i descomprimiu el fitxer. Obre amb Processament.
Pas 11: tipus de lletra en procés
Important: crido la vostra atenció sobre les línies 36-37
36 font = loadFont ("SourceCodePro-Bold-48.vlw"); // carrega la font emmagatzemada a les dades
carpeta 37 textFont (tipus de lletra);
Aquesta biblioteca de tipus de lletra "SourceCodePro-Bold-48.vlw" s'inclou a la baixada de fitxers en procés i no cal canviar-la per funcionar.
No obstant això, per canviar el tipus de lletra a una altra, haureu de carregar el nou tipus de lletra a l'esbós de processament I substituir "SourceCodePro-Bold-48.vlw" pel nou tipus de lletra.
. Per sort, el processament ha facilitat la primera part.
Primer obriu l'esbós a i feu clic a:
Eines> Crea tipus de lletra
això obre una finestra
Veure diagrama
Desplaceu-vos cap avall fins al nou tipus de lletra que vulgueu, feu-hi clic i feu clic a D'acord. La font s'ha carregat a la carpeta d'esbossos.
A continuació, substituïu el text "SourceCodePro-Bold-48.vlw" pel nom exacte de la nova font (inclòs el format de fitxer.vlw)
Si no es fa això, el nou tipus de lletra no es carregarà al codi i el codi donarà errors (igual que els errors d'Arduino, al quadre negre de la part inferior del programa).
Pas 12: Acabar
Per iniciar el programa de processament, feu clic a la fletxa, podeu rebre un avís de Java. Feu clic a: Permet l'accés.
Vegeu l’esquema
D'acord, va funcionar el programa? Si és així, obtindreu una pantalla com la que es veu al diagrama.
(No? Vegeu la solució de problemes al següent pas)
Sí? Ara intenteu mantenir el DHT11 al palmell tancat o col·loqueu-lo sota el corrent d’aire càlid d’un assecador. Els números haurien de canviar. Sí? Genial. això vol dir que tot funciona bé.
Per tancar el programa i desar dades, feu clic al quadre que diu "Feu clic aquí per tancar i desar dades".
Ara, per trobar les dades desades, aneu a la carpeta Temp_Hum_F_3_1 o Temp_Hum_C_3_1 Processant (ja hauríeu de poder trobar-la pel vostre compte) obriu-la i cerqueu la carpeta Data. Obriu-lo i hauríeu de veure un fitxer.csv que porta el nom de la data i hora en què vau tancar el programa (exemple 1-10-18--22-30-16.csv vol dir 10 de gener de 2018 22:30:16 PM). Obriu-lo amb Excel (o l'equivalent del full de càlcul Open Office). Hauríeu de veure alguna cosa com el diagrama. Columnes de data, hora, temps d'execució, temperatura i humitat amb dades. Ara podeu representar gràficament les dades amb Excel o amb el que vulgueu fer. (Nota: si mireu la primera entrada de dades, les dades de temperatura i humitat no són correctes, això és normal i només és un error quan s'inicia el programa per primera vegada)
D'acord sí !!!!!
Ho vas fer
Si teniu cap pregunta, envieu-ho i faré tot el possible per respondre i ajudar.
Gràcies per estar amb això i molta sort. Espero que això sigui només un començament …..
El següent per a mi Bluetooth i possiblement Android …
Pas 13: resolució de problemes
Problemes d'Arduino
Si obteniu un codi d'error (text taronja a la part inferior de l'IDE), hauria de ser un dels següents: La biblioteca "DHTlib" no s'ha copiat correctament
El port COM no està configurat correctament
El sensor no s'ha connectat correctament
El codi no s'ha carregat correctament a l'IDE
Si sembla que tot Arduino funciona, recordeu d'obrir el monitor sèrie i veure si es mostren dades
Si veieu les dades correctes, això significa que el costat Arduino està funcionant. Recordeu que heu de tancar el monitor sèrie abans d’iniciar el processament, si el monitor sèrie està obert El processament no pot llegir les dades.
Problemes de processament:
Aquests es mostraran a la part inferior del programa de processament.
Si apareix un error en descriure "tipus de lletra", torneu al pas 11 i carregueu el tipus de lletra tal com es descriu.
Si teniu un error que té el següent aspecte: Error, desactivant serialEvent () per a COM4 nul, només cal que reinicieu l'esbós de processament fent clic a la fletxa com al pas 12
Si apareix un error que indica: Error en obrir el port sèrie: proveu de canviar les línies 32-34 a alguna cosa semblant a on "COM4" coincideixi amb el port COM del vostre esbós Arduino
myPort = newSerial (this, "COM4", 9600); // Port myPort.bufferUntil ('\ n') // espereu fins que el serial tingui dades
Recomanat:
Com fer un registre de dades en temps real de la humitat i la temperatura amb Arduino UNO i targeta SD - Simulació de registre de dades DHT11 a Proteus: 5 passos
Com fer un registre de dades en temps real d’humitat i temperatura amb Arduino UNO i targeta SD | Simulació de registre de dades DHT11 a Proteus: Introducció: hola, aquest és Liono Maker, aquí teniu l'enllaç de YouTube. Estem fent un projecte creatiu amb Arduino i treballem en sistemes incrustats
Adquisició de dades i sistema de visualització de dades per a una moto de carreres elèctrica MotoStudent: 23 passos
Adquisició de dades i sistema de visualització de dades per a una moto de carreres elèctrica MotoStudent: un sistema d’adquisició de dades és una col·lecció de maquinari i programari que treballa junts per tal de recopilar dades de sensors externs, emmagatzemar-les i processar-les després perquè es puguin visualitzar gràficament i analitzar. permetent als enginyers fer
Visualització de la humitat de la temperatura Arduino 24 hores: 3 passos (amb imatges)
Pantalla Arduino d’humitat de temperatura 24 hores: el DHT11 és un sensor ideal per començar. És barat i fàcil de connectar a un Arduino. Informa de la temperatura i la humitat amb un 2% de precisió, i aquest instructiu utilitza un Gameduino 3 com a pantalla gràfica, que mostra 24 hores d’història
Centre de recollida de dades del sensor habilitat per IoT amb ESP8266 i PubNub: 9 passos (amb imatges)
Centre de recollida de dades del sensor habilitat per IoT amb ESP8266 i PubNub: la majoria dels tutorials de l’ESP8266 són a nivell de principiants (parpellejant remotament un led) o massa complexos per a algú que busca alguna cosa per millorar i millorar les seves habilitats de parpelleig de leds. objectius instructius per salvar aquesta bretxa per crear
Temperatura de visualització al mòdul de visualització LED P10 mitjançant Arduino: 3 passos (amb imatges)
Temperatura de visualització al mòdul de visualització LED P10 mitjançant Arduino: en el tutorial anterior s’ha explicat com mostrar text al mòdul de visualització LED Dot Matrix P10 mitjançant Arduino i el connector DMD, que podeu consultar aquí. En aquest tutorial oferirem un senzill tutorial de projecte mitjançant el mòdul P10 com a mitjà de visualització