Taula de continguts:
- Pas 1: Exempció de responsabilitat
- Pas 2: configureu un compte IFTTT gratuït
- Pas 3: creeu un applet IFTTT
- Pas 4: configureu la porció "this" del vostre applet
- Pas 5: afegiu el servei WebHooks al vostre applet
- Pas 6: configureu el disparador de recepció de sol·licituds web
- Pas 7: proporcioneu un nom d'esdeveniment
- Pas 8: configureu la porció "que" del vostre applet
- Pas 9: configureu un servei d'acció
- Pas 10: connecteu-vos a Fulls de càlcul de Google
- Pas 11: trieu una acció
- Pas 12: configureu l'acció
- Pas 13: Reviseu i finalitzeu el vostre applet
- Pas 14: Recupereu la informació de configuració necessària més tard
- Pas 15: aneu a la documentació de Webhooks de la clau API
- Pas 16: deseu la clau API
- Pas 17: reuniu els components
- Pas 18: Munteu els components
- Pas 19: escriviu el codi Arduino
- Pas 20: Resultats
- Pas 21: Crèdits
Vídeo: Projecte de registre d’estats de la porta i la temperatura: 21 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Aquest instructiu us mostrarà com fer un registre de l’estat de la porta i la temperatura per menys de $ 10,00 mitjançant un NodeMCU ESP8266, un sensor de temperatura i humitat DHT11, un interruptor de reed de porta / finestra, una resistència de 10K ohm i algun cable de connexió.
La gènesi d’aquest projecte va sorgir del meu desig de fer més domòtica amb la placa Arduino, ja que havia estat llegint molt sobre el NodeMCU EPS8266 compatible amb Arduino, vaig decidir que aquesta placa seria la placa perfecta de baix cost amb la qual experimentar. Després de buscar a Internet projectes domòtics mitjançant les plaques ESP8266, em vaig decidir a combinar un registrador de temperatura i estat de la porta per al meu primer intent. Finalment, aquest projecte es combinarà amb servos, sensors d’humitat i altres aparells electrònics per automatitzar una petita hivernacle que el meu avi va dissenyar i construir fa 50 anys. El sensor de temperatura s’utilitzarà per determinar si el sistema de calefacció s’ha d’engegar o desactivar, així com per indicar als servos que obrin i tanquin el sistema de ventilació quan sigui necessari. L'estat del sistema de ventilació es controlarà mitjançant l'ús dels interruptors magnètics de canya. Finalment, els sensors d’humitat s’utilitzaran per automatitzar un sistema de reg.
Pas 1: Exempció de responsabilitat
Només una exempció de responsabilitat ràpida per afirmar que NO assumim cap responsabilitat per qualsevol cosa que passi com a conseqüència de seguir aquesta instrucció. Sempre és millor que seguiu les instruccions i els fulls de seguretat del fabricant a l'hora de construir qualsevol cosa, així que consulteu aquests documents per conèixer qualsevol de les peces i eines que utilitzeu per construir la vostra. Simplement proporcionem informació sobre els passos que vam fer per crear el nostre. No som professionals. De fet, 2 de cada 3 de les persones que van participar en aquesta construcció són nens.
Pas 2: configureu un compte IFTTT gratuït
Si encara no en teniu, ara és el moment de configurar un compte IFTTT gratuït anant a la seva pàgina principal. IFTTT significa If This Then That i és una plataforma gratuïta que us permet connectar serveis basats en Internet de maneres noves us permetrà aprofitar aquests serveis de maneres noves. Per a aquest projecte utilitzarem IFTTT per permetre a un ESP8266 registrar l’estat d’una porta mitjançant un interruptor reed i la temperatura i la humitat a través del sensor DHT11 en un document de Fulls de càlcul de Google.
Pas 3: creeu un applet IFTTT
Encara estigueu a IFTTT, aneu a la secció "Els meus applets" i creeu un nou applet fent clic al botó "Nou applet".
Pas 4: configureu la porció "this" del vostre applet
Feu clic a la paraula "aquesta" amb un color blau, tal com es ressalta a la figura superior.
Pas 5: afegiu el servei WebHooks al vostre applet
A la barra de cerca, cerqueu el servei "Webhooks" i seleccioneu la icona Webhooks.
Un cop trobeu el servei "Webhooks", feu-hi clic.
Pas 6: configureu el disparador de recepció de sol·licituds web
Trieu el disparador "Rebre una sol·licitud web".
Pas 7: proporcioneu un nom d'esdeveniment
Al quadre de text, proporcioneu a la vostra nova miniaplicació un nom d'esdeveniment. He seleccionat "Data Logger", però podeu triar el que vulgueu.
Pas 8: configureu la porció "que" del vostre applet
Feu clic a la paraula "que" té un color blau, tal com es ressalta a la figura superior.
Pas 9: configureu un servei d'acció
Al quadre de cerca, cerqueu el servei "Fulls de càlcul de Google" i feu clic a la icona de Fulls de càlcul de Google.
Pas 10: connecteu-vos a Fulls de càlcul de Google
Si encara no ho heu fet, no haureu de connectar el vostre compte IFTTT a Fulls de càlcul de Google. Premeu el botó Connecta que es mostra més amunt i seguiu les instruccions que apareixen a la pantalla.
Pas 11: trieu una acció
Feu clic a "Afegeix fila al full de càlcul".
Pas 12: configureu l'acció
Proporcioneu un nom al quadre de text "Nom del full de càlcul". Decideixo utilitzar "Data_Logger" per obtenir més coherència. Deixeu la resta de la configuració sola (podeu experimentar amb aquesta configuració en algun altre moment) i, a continuació, premeu el botó "Crea acció" a la part inferior de la pantalla.
Pas 13: Reviseu i finalitzeu el vostre applet
Un cop satisfet amb la configuració de la miniaplicació, premeu el botó "Finalitza".
Pas 14: Recupereu la informació de configuració necessària més tard
Feu clic a "Webhooks", tal com es ressalta més amunt.
Pas 15: aneu a la documentació de Webhooks de la clau API
Pot semblar estrany, però feu clic a l’enllaç Documentació de la part superior dreta per anar a la pàgina amb la vostra clau API única.
Pas 16: deseu la clau API
La primera línia de la pantalla de documentació mostra la vostra clau API única. Copieu i deseu aquesta clau per utilitzar-la més tard.
També és una bona idea provar l'applet aquí. Recordeu canviar l '{esdeveniment} a Data_Logger o el que hagueu anomenat l'esdeveniment i afegir algunes dades als 3 valors buits i feu clic al botó "Prova-ho" a la part inferior de la pàgina. Hauríeu de veure un missatge verd que diu "S'ha activat l'esdeveniment". Si és així, aneu a Google Docs i confirmeu que les dades que heu introduït a la pàgina de prova apareixen al document Fulls de càlcul de Google.
Pas 17: reuniu els components
Només necessiteu algunes peces.
1) Junta de desenvolupament ESP8266 NodeMcu
2) Sensor de temperatura / humitat DHT11
3) Interruptor de canya de porta / finestra
4) Resistència de 10k Ohm
5) Cable de connexió
Pas 18: Munteu els components
1) Connecteu un dels pins 3v3 de l’ESP8266 al pin vcc del DHT11.
2) Connecteu un dels pins de terra de l’ESP8266 al pin de terra del DHT11.
3) Connecteu el pin D4 (també conegut com el pin 2 a l’IDE) de l’ESP8266 al pin de dades del DHT11.
4) Connecteu un altre pin de 3v3 a l’ESP8266 a un costat de l’interruptor de canya de la porta / finestra.
5) Connecteu el pin D5 (també conegut com el pin 14 a l’IDE) de l’ESP8266 a l’altre costat de l’interruptor reed de la porta / finestra i connecteu-lo també a un costat de la resistència de 10 k ohm.
6) Connecteu l’altre costat de la resistència de 10 k ohms a un altre pin de terra de l’ESP8266.
Per a seleccions de pins ESP8266, consulteu aquest útil diagrama o el vídeo molt útil.
Pas 19: escriviu el codi Arduino
Copieu i enganxeu el codi següent al vostre IDE Arduino.
#include #include #include "DHT.h"
#define DHTPIN 2 // a quin pin digital estem connectats
#define DOORPIN 14 // quin pin digital està activat l'interruptor de la porta.
#define DHTTYPE DHT11 // DHT 11
DHT dht (DHTPIN, DHTTYPE);
int count = 1;
const char * ssid = "some_ssid"; // canvieu-ho per utilitzar el vostre ssid const char * password = "some_password"; // canvieu-ho per utilitzar la vostra contrasenya int sleepTime = 100;
// Maker Webhooks IFTTT
const char * server = "maker.ifttt.com";
// Recurs URL IFTTT
const char * resource = "/ trigger / SOME_SERVICE_NAME / with / key / SOME_API_KEY"; // Assegureu-vos d'utilitzar el nom del servei i la clau API.
String doorStatus = "Tancat";
estat boole volàtil Canviat = fals;
// Si dormiu durant hores, establiu l'interval per h * 60 minuts * 60 segons * 1000 mil·lisegons
intervall llarg const = 1,0 * 60 * 60 * 1000; // 1 hora sense signar anterior Millis = 0 - (interval de 2 *);
configuració nul·la () {
Serial.begin (115200); attachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, CHANGE); pinMode (DOORPIN, INPUT); // Sensor de porta dht.begin (); WiFi.begin (ssid, contrasenya);
Serial.print ("\ nConnexió..");
while (WiFi.status ()! = WL_CONNECTED) {delay (1000); Serial.print ("."); } Serial.print ("\ n"); }
void eventTriggered () {
stateChanged = cert; Serial.println ("Comprovació de la porta!"); if (digitalRead (DOORPIN) == HIGH) // Comproveu si la porta està oberta {Serial.println ("La porta està tancada!"); doorStatus = "Tancat"; } else {Serial.println ("La porta està oberta!"); doorStatus = "Obert"; }}
void checkStatus () {
if (WiFi.status () == WL_CONNECTED) {// Comproveu l'estat de la connexió WiFi // La temperatura o la humitat de lectura triguen uns 250 mil·lisegons! // Les lectures del sensor també poden tenir una antiguitat de fins a 2 segons (és un sensor molt lent) flotant h = dht.readHumidity (); // Llegiu la temperatura com Celsius (per defecte) flotant t = dht.readTemperature (); // Llegiu la temperatura com Fahrenheit (isFahrenheit = true) flotant f = dht.readTemperature (true); // Comproveu si alguna lectura ha fallat i sortiu aviat (per tornar-ho a provar). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("No s'ha pogut llegir del sensor DHT!"); //Serial.print ("."); // No s'ha pogut llegir del sensor DHT. tornar; } // Calculeu l'índex de calor a Fahrenheit (per defecte) float hif = dht.computeHeatIndex (f, h); // Calculeu l'índex de calor en centígrads (isFahreheit = false) float hic = dht.computeHeatIndex (t, h, false);
Serial.print ("\ n");
Serial.print ("Temperatura:"); Serial.print (f); Serial.print ("* F ("); Serial.print (t); Serial.print ("* C)"); Serial.print ("\ t"); Serial.print ("Índex de calor:"); Serial.print (hif); Serial.print ("* F ("); Serial.print (hic); Serial.print ("* C)%"); Serial.print ("\ t"); Serial.print ("Humitat:"); Serial.println (h);
if (digitalRead (DOORPIN) == HIGH) // Comproveu si la porta està oberta
{Serial.println ("La porta està tancada!"); doorStatus = "Tancat"; } else {Serial.println ("La porta està oberta!"); doorStatus = "Obert"; } String jsonObject = String ("{" value1 / ": \" ") + f +" * F ("+ t +" * C) / "+ hif +" * F ("+ hic +" * C) "+" / ", \" value2 / ": \" "+ h +" / ", \" value3 / ": \" "+ doorStatus +" / "}"; HTTPClient http; String completeUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin (completeUrl); // http.begin (servidor); http.addHeader ("Content-Type", "application / json"); http. POST (jsonObject); http.writeToStream (& sèrie); http.end (); // Tanca la connexió
stateChanged = fals;
int sleepTimeInMinutes = interval / 1000/60; Serial.print ("\ n / nDormir"); Serial.print (sleepTimeInMinutes); Serial.println ("minut (s) …"); }}
bucle buit () {
corrent llarg sense signar Millis = millis (); retard (4000); // Si superàvem el temps transcorregut, obligarem a comprovar la porta i la temperatura. if (Miles actuals - Miles anteriors> = interval) {stateChanged = true; anteriorMillis = actualMillis; Serial.print (recompte ++); Serial.println (") Comprovació pel temps transcorregut!"); } else if (stateChanged) {Serial.print (count ++); Serial.println (") Comprovació a causa d'un canvi d'estat!"); }
// Si l'estat ha canviat, comproveu la porta i la temperatura.
if (stateChanged) {checkStatus (); }
endarreriment (sleepTime);
}
Pas 20: Resultats
Un cop hàgiu penjat el codi font al pas anterior, haureu de tenir resultats com l'exemple que es mostra més amunt.
Pas 21: Crèdits
He trobat molts consells i suggeriments útils de Tutorials de Random Nerd i vull agrair-los tota la seva ajuda. Especialment el seu excel·lent tutorial sobre ESP32 ESP8266 Publica lectures de sensors a Fulls de càlcul de Google en què es basen les principals parts d’aquest instructable.
A més, el DHT11 Instructable de TheCircuit em va ajudar a entendre com utilitzar aquest petit sensor molt econòmic però interessant.
A més, hi ha molts tutorials relacionats amb el control de les vostres portes, com ara Garage Door Monitor i un altre de Random Nerd Tutorials. N’he utilitzat trossos per ajudar-me a entendre com fer funcionar correctament el meu interruptor reed.
Finalment, amb aquesta informació i altres detalls que vaig trobar a Internet, vaig poder crear un sistema que satisfés les meves necessitats. Espero que us sigui útil aquest instructiu i en creeu un de vostre.
Recomanat:
NodeMCU Lua Tauler barat de 6 $ amb registre de temperatura i humitat MicroPython, estadístiques Wifi i mòbils: 4 passos
NodeMCU Lua Tauler barat de 6 $ amb registre de temperatura i humitat de MicroPython, estadístiques de Wi-Fi i mòbils: bàsicament és una estació meteorològica en núvol, podeu consultar les dades del vostre telèfon o utilitzar alguns telèfons com a pantalla en viu. Amb el dispositiu NodeMCU podeu registrar dades de temperatura i humitat fora , a l'habitació, hivernacle, laboratori, sala de refrigeració o qualsevol altre lloc completel
Regions dels Estats Units Makey Makey Joc: 5 passos
Regions dels Estats Units Makey Makey Joc: en aquest instructiu els estudiants construiran un joc per reforçar el seu coneixement de les 5 regions dels Estats Units i el seu coneixement de circuits, mitjançant estratègies de col·laboració grupal. Els estudiants de 5è de primària de Virginia Occidental estudien la regió
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
Màquina d'estats finits en un MSP430: 6 passos
Finite State Machine en un MSP430: us mostraré com programar un Launchpad MSP430G2 amb màquines d’estats finits (FSM) mitjançant les eines YAKINDU Statechart Tools directament a Texas Instruments Code Composer Studio. Aquest tutorial conté sis passos: Instal·lació de YAKINDU Statechart Tools com a
Rellotge digital a Arduino amb una màquina d'estats finits: 6 passos
Rellotge digital a Arduino amb una màquina d’estats finits: hey, us mostraré com es pot crear un rellotge digital amb YAKINDU Statechart Tools i funcionar en un Arduino, que utilitza un teclat LCD Shield. el rellotge va ser pres de David Harel. Ha publicat un article sobre