INHOUDSOPGAWE:
- Stap 1: Vrywaring
- Stap 2: Stel 'n gratis IFTTT -rekening op
- Stap 3: Skep 'n IFTTT -applet
- Stap 4: Stel die 'hierdie' gedeelte van u applet op
- Stap 5: Voeg die WebHooks -diens by u applet
- Stap 6: Stel die ontvanger vir 'n webversoek in
- Stap 7: Gee 'n gebeurtenisnaam
- Stap 8: Stel die 'daardie' gedeelte van u applet op
- Stap 9: Stel 'n aksiediens op
- Stap 10: Koppel aan Google Blaaie
- Stap 11: Kies 'n aksie
- Stap 12: Stel die aksie op
- Stap 13: Hersien en finaliseer u applet
- Stap 14: Haal later die konfigurasie -inligting op
- Stap 15: Gaan na die Webhooks -dokumentasie vir die API -sleutel
- Stap 16: Stoor die API -sleutel
- Stap 17: Versamel die komponente
- Stap 18: Monteer die komponente
- Stap 19: Skryf die Arduino -kode neer
- Stap 20: Resultate
- Stap 21: Krediete
Video: Deur- en temperatuurstatusloggerprojek: 21 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Hierdie instruksie sal u wys hoe u 'n eenvoudige deur- en temperatuurstatusregistreerder vir minder as $ 10,00 kan maak met behulp van 'n ESP8266 NodeMCU, 'n DHT11 -temperatuur- en humiditeitsensor, 'n deur/venster -rietskakelaar, 'n 10K ohm -weerstand en 'n aansluitdraad.
Die ontstaan van hierdie projek was die gevolg van my begeerte om meer tuisautomatisering met die Arduino -bord te doen, aangesien ek baie gelees het oor die Arduino -versoenbare EPS8266 NodeMCU, het ek besluit dat hierdie bord die perfekte goedkoop bord sou wees om mee te eksperimenteer. Nadat ek op die internet gesoek het na tuisautomatiseringsprojekte met behulp van die ESP8266 -borde, het ek besluit om 'n temperatuur- en deurstatuslogger te kombineer vir my eerste poging. Uiteindelik word hierdie projek gekombineer met servo's, vogsensors en ander elektronika om 'n klein kothuis te outomatiseer wat my oupa 50 jaar gelede ontwerp en gebou het. Die temperatuursensor sal gebruik word om te bepaal of die verwarmingstelsel in- of uitgeskakel moet word, asook om die servo's te sein om die ontluchtingstelsel oop en toe te maak wanneer dit nodig is. Die toestand van die ontluchtingstelsel word gemonitor deur die gebruik van die magnetiese rietskakelaars. Laastens sal die vogsensors gebruik word om 'n besproeiingstelsel te outomatiseer.
Stap 1: Vrywaring
Net 'n vinnige vrywaring om te sê dat ons GEEN verantwoordelikheid neem vir enigiets wat gebeur as gevolg van die opvolging van hierdie instruksies nie. Dit is altyd die beste om die vervaardiger se instruksies en veiligheidsblaaie te volg wanneer u iets bou, raadpleeg die dokumente vir enige onderdele en gereedskap wat u gebruik om u eie te bou. Ons gee eenvoudig inligting oor die stappe wat ons gebruik het om ons s'n te skep. Ons is nie professionele persone nie. In werklikheid is 2 uit 3 van die individue wat aan hierdie konstruksie deelgeneem het, kinders.
Stap 2: Stel 'n gratis IFTTT -rekening op
As u nog nie een het nie, is dit nou die tyd om 'n gratis IFTTT -rekening op te stel deur na hul tuisblad te gaan. IFTTT staan vir If This Then That en is 'n gratis platform waarmee u internetgebaseerde dienste op nuwe maniere kan verbind stel u in staat om hierdie dienste op nuwe maniere te benut. Vir hierdie projek gaan ons IFTTT gebruik om 'n ESP8266 in staat te stel om die status van 'n deur te teken via 'n rietskakelaar en temperatuur en humiditeit via die DHT11 -sensor in 'n Google Sheets -dokument.
Stap 3: Skep 'n IFTTT -applet
Terwyl u nog in IFTTT is, gaan na die afdeling "My applets" en skep 'n nuwe applet deur op die "New Applet" -knoppie te klik.
Stap 4: Stel die 'hierdie' gedeelte van u applet op
Klik op die 'hierdie' woord in 'n blou kleur - soos in die figuur hierbo uitgelig.
Stap 5: Voeg die WebHooks -diens by u applet
Soek in die soekbalk na die diens "Webhooks" en kies die Webhooks -ikoon.
Sodra u die diens "Webhooks" gevind het, klik daarop.
Stap 6: Stel die ontvanger vir 'n webversoek in
Kies die sneller "Ontvang 'n webversoek".
Stap 7: Gee 'n gebeurtenisnaam
Gee 'n gebeurtenisnaam in die tekskassie. Ek het 'Data Logger' gekies, maar u kan kies wat u wil.
Stap 8: Stel die 'daardie' gedeelte van u applet op
Klik op die 'daardie' woord in 'n blou kleur - soos in die figuur hierbo uitgelig.
Stap 9: Stel 'n aksiediens op
Soek in die soekkassie na die diens "Google Blaaie" en klik op die ikoon Google Blaaie.
Stap 10: Koppel aan Google Blaaie
As u dit nog nie gedoen het nie, hoef u nie u IFTTT -rekening aan Google Blaaie te koppel nie. Druk die verbindingsknoppie hierbo getoon en volg die instruksies op die skerm.
Stap 11: Kies 'n aksie
Klik op "Voeg ry by sigblad".
Stap 12: Stel die aksie op
Gee 'n naam in die tekskassie "Sigbladnaam". Ek kies om 'Data_Logger' te gebruik vir konsekwentheid. Laat die res van die instelling alleen (u kan op 'n ander tyd met die instelling eksperimenteer) en druk dan op die knoppie "Skep aksie" onderaan die skerm.
Stap 13: Hersien en finaliseer u applet
As u tevrede is met die konfigurasie van u applet, druk dan op die "Voltooi" -knoppie.
Stap 14: Haal later die konfigurasie -inligting op
Klik op "Webhooks" soos hierbo uitgelig.
Stap 15: Gaan na die Webhooks -dokumentasie vir die API -sleutel
Dit mag vreemd lyk, maar klik op die dokumentasie -skakel regs bo om na die bladsy met u unieke API -sleutel te gaan.
Stap 16: Stoor die API -sleutel
Die eerste reël van die dokumentasie -skerm vertoon u unieke API -sleutel. Kopieer en stoor hierdie sleutel om later te gebruik.
Dit is ook 'n goeie idee om die applet hier te toets. Onthou om die {event} na Data_Logger te verander of wat u ook al u gebeurtenis genoem het, en voeg 'n paar data by die 3 leë waardes, klik dan op die "Test It" -knoppie onderaan die bladsy. U moet 'n groen boodskap sien wat sê: 'Gebeurtenis is geaktiveer'. Gaan dan na Google Dokumente en bevestig dat die data wat u op die toetsbladsy ingevoer het, in die Google Blaaie -dokument verskyn.
Stap 17: Versamel die komponente
U benodig slegs 'n paar dele.
1) ESP8266 NodeMcu -ontwikkelingsraad
2) DHT11 Temperatuur-/humiditeitsensor
3) Deur/venster rietskakelaar
4) Weerstand van 10k Ohm
5) Aansluitdraad
Stap 18: Monteer die komponente
1) Koppel een van die 3v3 -pen op die ESP8266 aan die vcc -pen op die DHT11.
2) Koppel een van die grondpenne op die ESP8266 aan die grondpen op die DHT11.
3) Koppel pen D4 (alias pen 2 in die IDE) op die ESP8266 aan die datapennetjie op die DHT11.
4) Koppel nog 'n 3v3 -pen op die ESP8266 aan die een kant van die deur/venster rietskakelaar.
5) Koppel pen D5 (alias pen 14 in die IDE) aan die ESP8266 aan die ander kant van die deur/venster rietskakelaar en koppel dit ook aan die een kant van die 10k ohm weerstand.
6) Koppel die ander kant van die 10k ohm weerstand aan 'n ander grondpen op die ESP8266.
Raadpleeg hierdie nuttige diagram of die baie nuttige video vir ESP8266 -penkeuses.
Stap 19: Skryf die Arduino -kode neer
Kopieer en plak die onderstaande kode in u Arduino IDE.
#include #include #include "DHT.h"
#define DHTPIN 2 // aan watter digitale pen ons gekoppel is
#define DOORPIN 14 // watter digitale pen die deurskakelaar aan is.
#define DHTTYPE DHT11 // DHT 11
DHT dht (DHTPIN, DHTTYPE);
int telling = 1;
const char* ssid = "some_ssid"; // verander dit om u ssid const char* password = "some_password" te gebruik; // verander dit om u wagwoord int sleepTime = 100 te gebruik;
// Maker Webhooks IFTTT
const char* server = "maker.ifttt.com";
// IFTTT URL -bron
const char* resource = "/trigger/SOME_SERVICE_NAME/with/key/SOME_API_KEY"; // Maak seker dat u u diensnaam en u api -sleutel gebruik.
String doorStatus = "Geslote";
vlugtige bool stateChanged = false;
// As u ure slaap, stel dan die interval in met hr * 60 minute * 60 sekondes * 1000 millisekondes
konst lang interval = 1,0 * 60 * 60 * 1000; // 1 uur ongetekende lang vorigeMillis = 0 - (2 * interval);
ongeldige opstelling () {
Serial.begin (115200); attachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, CHANGE); pinMode (DOORPIN, INPUT); // Deursensor dht.begin (); WiFi.begin (ssid, wagwoord);
Serial.print ("\ nKoppel..");
terwyl (WiFi.status ()! = WL_CONNECTED) {vertraging (1000); Serial.print ("."); } Serial.print ("\ n"); }
void eventTriggered () {
stateChanged = waar; Serial.println ("Deur kyk!"); if (digitalRead (DOORPIN) == HOOG) // Kyk of die deur oop is {Serial.println ("Deur is toe!"); doorStatus = "Geslote"; } anders {Serial.println ("Deur is oop!"); doorStatus = "Oopgemaak"; }}
leegte checkStatus () {
if (WiFi.status () == WL_CONNECTED) {// Gaan die WiFi -verbindingstatus na // Die lees van temperatuur of humiditeit neem ongeveer 250 millisekondes! // Sensorlesings kan ook tot 2 sekondes oud wees (dit is 'n baie stadige sensor) dryf h = dht.readHumidity (); // Lees temperatuur as Celsius (die standaard) float t = dht.readTemperature (); // Lees temperatuur as Fahrenheit (isFahrenheit = true) float f = dht.readTemperature (true); // Kontroleer of enige lees misluk het en vertrek vroeg (om weer te probeer). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("Kan nie lees van DHT -sensor nie!"); //Serial.print ("."); // Kon nie van DHT -sensor lees nie! terugkeer; } // Bereken hitte -indeks in Fahrenheit (die standaard) float hif = dht.computeHeatIndex (f, h); // Bereken hitte -indeks in Celsius (isFahreheit = false) float hic = dht.computeHeatIndex (t, h, false);
Serial.print ("\ n");
Serial.print ("Temperatuur:"); Reeks.afdruk (f); Serial.print (" *F ("); Serial.print (t); Serial.print (" *C)")); Serial.print ("\ t"); Serial.print ("Hitte -indeks:"); Reeks.afdruk (hif); Serial.print (" *F ("); Serial.print (hic); Serial.print (" *C)%"); Serial.print ("\ t"); Serial.print ("Humiditeit:"); Serial.println (h);
if (digitalRead (DOORPIN) == HOOG) // Kyk of die deur oop is
{Serial.println ("Deur is toe!"); doorStatus = "Geslote"; } anders {Serial.println ("Deur is oop!"); doorStatus = "Oopgemaak"; } String jsonObject = String ("{" waarde1 / ": \" ") + f +"*F (" + t +"*C) / " + hif +"*F (" + hic +"*C) " +" / ", \" waarde2 / ": \" " + h +" / ", \" waarde3 / ": \" " + deurStatus +" / "}"; HTTPClient http; String completeUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin (completeUrl); // http.begin (bediener); http.addHeader ("Inhoudstipe", "toepassing/json"); http. POST (jsonObject); http.writeToStream (en reekse); http.end (); // Sluit verbinding
stateChanged = vals;
int sleepTimeInMinutes = interval / 1000 /60; Serial.print ("\ n / nGa slaap vir"); Serial.print (sleepTimeInMinutes); Serial.println ("minuut (e) …"); }}
leemte -lus () {
ongetekende lang stroomMillis = millis (); vertraging (4000); // As ons die verloopte tyd oorskry, dwing dan die deur en temperatuur. as (currentMillis - previousMillis> = interval) {stateChanged = true; vorigeMillis = currentMillis; Serial.print (telling ++); Serial.println (") Kontroleer as gevolg van tydsverloop!"); } anders as (stateChanged) {Serial.print (count ++); Serial.println (") Kontroleer as gevolg van staatsverandering!"); }
// As die toestand verander, kyk dan na die deur en temperatuur.
as (stateChanged) {checkStatus (); }
vertraging (slaaptyd);
}
Stap 20: Resultate
As u die bronkode in die vorige stap opgelaai het, moet u resultate hê soos die voorbeeld hierbo.
Stap 21: Krediete
Ek het baie nuttige wenke en wenke van Random Nerd Tutorials gevind en wil hulle bedank vir al hul hulp. Veral hul uitstekende tutoriaal oor ESP32 ESP8266 Publiseer sensorlesings op Google Sheets waarop die belangrikste gedeeltes van hierdie instruksies gebaseer is.
Boonop het die DHT11 Instructable van TheCircuit my gehelp om te verstaan hoe ek hierdie baie goedkoop, maar interessante klein sensor moet gebruik.
Verder is daar baie tutoriale oor die monitering van u deure, soos die Garage Door Monitor en nog een van Random Nerd Tutorials. Ek het stukke hiervan gebruik om my te help verstaan hoe ek my rietskakelaar reg kan laat werk.
Uiteindelik kon ek, met hierdie inligting sowel as ander besonderhede wat ek op die internet gevind het, 'n stelsel skep wat aan my behoeftes voldoen. Ek hoop dat u hierdie instruksies nuttig vind en u eie bou.
Aanbeveel:
Retro Arcade - (volle grootte aangedryf deur Raspberry Pi): 8 stappe
Retro Arcade - (volgrootte, aangedryf deur Raspberry Pi): Eerstens wou ek u bedank dat u na die bougids vir hierdie Retro Arcade -stelsel gekyk het. Ek neem 'n ouer arcade box en plaas dit in 'n losstaande kas met 'n 24-inch widescreen monitor. Die metings in hierdie gids is moeilik om te gee
Smart Home deur Raspberry Pi: 5 stappe (met foto's)
Smart Home deur Raspberry Pi: Daar is reeds verskeie produkte wat u woonstel slimmer maak, maar die meeste daarvan is eie oplossings. Maar waarom het u 'n internetverbinding nodig om 'n lig met u slimfoon te verander? Dit was een van die redes waarom ek my eie Smar moes bou
Weerstasie deur satelliete: 5 stappe
Weerstasie deur satelliete: hierdie projek is bedoel vir mense wat hul eie weerdata wil versamel. Dit kan windspoed en rigting, temperatuur en lugvogtigheid meet. Dit is ook in staat om elke 100 minute na weersatelliete te luister wat om die aarde wentel. Ek wil
Mens-rekenaar-koppelvlak: funksioneer as 'n gripper (gemaak deur Kirigami) deur polsbeweging met behulp van EMG: 7 stappe
Mens-rekenaar-koppelvlak: Function a Gripper (gemaak deur Kirigami) deur polsbeweging met behulp van EMG: Dit was dus my eerste poging met 'n mens-rekenaar-koppelvlak. Ek het die spieraktiveringsseine van my polsbeweging vasgelê met 'n EMG-sensor, dit verwerk deur luislang en arduino en het 'n origami -gebaseerde grijper aangestuur
ROOMBA Aangedryf deur ARDUINO YUN Via Wifi App deur STEFANO DALL'OLIO: 4 stappe (met foto's)
ROOMBA Aangedryf deur ARDUINO YUN Via Wifi App deur STEFANO DALL'OLIO: Met hierdie gids deel ek die kode om ARDUINO YUN aan Roomba te koppel om Roomba via Wifi te bestuur. Die kode en die app is volledig deur myself gemaak en ontwikkel Stefano Dall ' Olio.My Roomba is Roomba 620, maar jy kan dieselfde kode vir ander Roomb gebruik