Inhoudsopgave:
- Stap 1: Disclaimer
- Stap 2: Stel een gratis IFTTT-account in
- Stap 3: Maak een IFTTT-applet
- Stap 4: Configureer het "dit" gedeelte van uw applet
- Stap 5: Voeg de WebHooks-service toe aan uw applet
- Stap 6: Stel de trigger voor het ontvangen van een webverzoek in
- Stap 7: Geef een gebeurtenisnaam op
- Stap 8: Configureer het "dat" gedeelte van uw applet
- Stap 9: een actieservice instellen
- Stap 10: verbinding maken met Google Spreadsheets
- Stap 11: Kies een actie
- Stap 12: Stel de actie in
- Stap 13: Controleer en voltooi uw applet
- Stap 14: Configuratie-informatie ophalen die later nodig is
- Stap 15: Ga verder naar de Webhooks-documentatie voor de API-sleutel
- Stap 16: Bewaar de API-sleutel
- Stap 17: Verzamel de componenten
- Stap 18: Monteer de componenten
- Stap 19: Schrijf de Arduino-code
- Stap 20: Resultaten
- Stap 21: Tegoeden
Video: Deur- en temperatuurstatusloggerproject - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Deze Instructable laat je zien hoe je een eenvoudige deur- en temperatuurstatuslogger kunt maken voor minder dan $ 10,00 met behulp van een ESP8266 NodeMCU, een DHT11 temperatuur- en vochtigheidssensor, een deur-/raamreedschakelaar, een 10K ohm-weerstand en wat aansluitdraad.
Het ontstaan van dit project kwam voort uit mijn wens om meer domotica te doen met het Arduino-bord. Omdat ik veel had gelezen over de Arduino-compatibele EPS8266 NodeMCU, besloot ik dat dit bord het perfecte goedkope bord zou zijn om mee te experimenteren. Na op internet te hebben gezocht naar domotica-projecten met behulp van de ESP8266-kaarten, besloot ik voor mijn eerste poging een temperatuur- en deurstatuslogger te combineren. Uiteindelijk zal dit project worden gecombineerd met servo's, vochtsensoren en andere elektronica om een kleine kas te automatiseren die mijn grootvader 50 jaar geleden heeft ontworpen en gebouwd. De temperatuursensor wordt gebruikt om te bepalen of het verwarmingssysteem moet worden in- of uitgeschakeld en om de servo's te signaleren om het ventilatiesysteem te openen en te sluiten wanneer dat nodig is. De staat van het ontluchtingssysteem wordt bewaakt door het gebruik van magnetische reed-schakelaars. Ten slotte zullen de vochtsensoren worden gebruikt om een bewateringssysteem te automatiseren.
Stap 1: Disclaimer
Gewoon een korte disclaimer om te verklaren dat we GEEN verantwoordelijkheid nemen voor alles wat er gebeurt als gevolg van het volgen van deze instructable. Het is altijd het beste om de instructies en veiligheidsbladen van de fabrikant te volgen wanneer u iets bouwt, dus raadpleeg die documenten voor alle onderdelen en gereedschappen die u gebruikt om uw eigen onderdelen te bouwen. We geven alleen informatie over de stappen die we hebben gebruikt om de onze te maken. Wij zijn geen professionals. In feite zijn 2 van de 3 van de personen die hebben deelgenomen aan deze build kinderen.
Stap 2: Stel een gratis IFTTT-account in
Als je er nog geen hebt, is het nu het moment om een gratis IFTTT-account in te stellen door naar hun startpagina te gaan. IFTTT staat voor If This Then That en is een gratis platform waarmee je op nieuwe manieren verbinding kunt maken met internetdiensten. stelt u in staat om deze diensten op nieuwe manieren te benutten. Voor dit project gaan we IFTTT gebruiken om een ESP8266 de status van een deur te laten loggen via een reed-schakelaar en temperatuur en vochtigheid via de DHT11-sensor in een Google Spreadsheets-document.
Stap 3: Maak een IFTTT-applet
Terwijl je nog steeds in IFTTT bent, ga je naar het gedeelte "Mijn applets" en maak je een nieuwe applet door op de knop "Nieuwe applet" te klikken.
Stap 4: Configureer het "dit" gedeelte van uw applet
Klik op het woord "dit" in een blauwe kleur - zoals gemarkeerd in de bovenstaande afbeelding.
Stap 5: Voeg de WebHooks-service toe aan uw applet
Zoek in de zoekbalk naar de service "Webhooks" en selecteer het pictogram Webhooks.
Zodra u de "Webhooks"-service hebt gevonden, klikt u erop.
Stap 6: Stel de trigger voor het ontvangen van een webverzoek in
Kies de trigger "Ontvang een webverzoek".
Stap 7: Geef een gebeurtenisnaam op
Geef in het tekstvak uw nieuwe applet een gebeurtenisnaam op. Ik heb "Data Logger" geselecteerd, maar je kunt kiezen wat je wilt.
Stap 8: Configureer het "dat" gedeelte van uw applet
Klik op het "dat" woord in een blauwe kleur - zoals gemarkeerd in de bovenstaande afbeelding.
Stap 9: een actieservice instellen
Zoek in het zoekvak naar de service 'Google Spreadsheets' en klik op het Google Spreadsheets-pictogram.
Stap 10: verbinding maken met Google Spreadsheets
Als u dit nog niet heeft gedaan, hoeft u uw IFTTT-account niet aan Google Spreadsheets te koppelen. Druk op de hierboven weergegeven Connect-knop en volg de instructies op het scherm.
Stap 11: Kies een actie
Klik op "Voeg rij toe aan spreadsheet".
Stap 12: Stel de actie in
Geef een naam op in het tekstvak "Spreadsheetnaam". Ik kies ervoor om "Data_Logger" te gebruiken voor consistentie. Laat de rest van de instelling met rust (u kunt op een ander moment met die instelling experimenteren) en druk vervolgens op de knop "Actie maken" onder aan het scherm.
Stap 13: Controleer en voltooi uw applet
Als u tevreden bent met uw appletconfiguratie, drukt u op de knop "Voltooien".
Stap 14: Configuratie-informatie ophalen die later nodig is
Klik op "Webhooks" zoals hierboven aangegeven.
Stap 15: Ga verder naar de Webhooks-documentatie voor de API-sleutel
Het lijkt misschien vreemd, maar klik op de Documentatie-link in de rechterbovenhoek om door te gaan naar de pagina met uw unieke API-sleutel.
Stap 16: Bewaar de API-sleutel
De eerste regel van het documentatiescherm toont uw unieke API-sleutel. Kopieer en bewaar deze sleutel voor later gebruik.
Het is ook een goed idee om de applet hier te testen. Vergeet niet om {event} te wijzigen in Data_Logger of hoe je je evenement ook noemt en voeg wat gegevens toe aan de 3 lege waarden en klik vervolgens op de knop "Test het" onderaan de pagina. U zou een groen bericht moeten zien met de tekst "Gebeurtenis is geactiveerd". Als dit het geval is, gaat u verder naar Google Documenten en bevestigt u dat de gegevens die u op de testpagina hebt ingevoerd, zijn weergegeven in het Google Spreadsheets-document.
Stap 17: Verzamel de componenten
Je hebt maar een paar onderdelen nodig.
1) ESP8266 NodeMcu-ontwikkelbord
2) DHT11 temperatuur-/vochtigheidssensor
3) Deur/raam reed-schakelaar
4) 10k Ohm Weerstand
5) Aansluitdraad
Stap 18: Monteer de componenten
1) Sluit een van de 3v3-pins op de ESP8266 aan op de vcc-pin op de DHT11.
2) Sluit een van de aardingspennen op de ESP8266 aan op de aardingspen op de DHT11.
3) Sluit pin D4 (ook bekend als pin 2 in de IDE) op de ESP8266 aan op de datapin op de DHT11.
4) Sluit een andere 3v3-pin op de ESP8266 aan op de ene kant van de deur-/raamreedschakelaar.
5) Sluit pin D5 (ook bekend als pin 14 in de IDE) op de ESP8266 aan op de andere kant van de deur-/raamreedschakelaar en sluit deze ook aan op één kant van de 10k ohm-weerstand.
6) Sluit de andere kant van de 10k ohm weerstand aan op een andere aardpen op de ESP8266.
Raadpleeg dit handige diagram of de zeer nuttige video voor ESP8266-pinselecties.
Stap 19: Schrijf de Arduino-code
Kopieer en plak de onderstaande code in je Arduino IDE.
#include #include #include "DHT.h"
#define DHTPIN 2 // met welke digitale pin we zijn verbonden
#define DOORPIN 14 // op welke digitale pin de deurschakelaar staat.
#definieer DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
aantal int = 1;
const char* ssid = "some_ssid"; // verander dit om je ssid const char* wachtwoord = "some_password" te gebruiken; // verander dit om je wachtwoord te gebruiken int sleepTime = 100;
// Maker Webhooks IFTTT
const char* server = "maker.ifttt.com";
// IFTTT URL-bron
const char* resource = "/trigger/SOME_SERVICE_NAME/with/key/SOME_API_KEY"; //Zorg ervoor dat u uw servicenaam en uw api-sleutel gebruikt.
String doorStatus = "Gesloten";
vluchtige bool stateChanged = false;
// Als je uren slaapt, stel dan het interval in per uur * 60 minuten * 60 seconden * 1000 milliseconden
const lang interval = 1,0 * 60 * 60 * 1000; // 1 uur ongetekende lange vorigeMillis = 0 - (2 * interval);
ongeldige instelling () {
Serieel.begin(115200); attachInterrupt(digitalPinToInterrupt(DOORPIN), eventTriggered, CHANGE); pinMode (DEURPIN, INGANG); // Deursensor dht.begin (); WiFi.begin(ssid, wachtwoord);
Serial.print("\nVerbinding maken..");
while (WiFi.status() != WL_CONNECTED) { delay(1000); Serieel.print("."); } Serieel.print("\n"); }
void eventTriggered(){
stateChanged = waar; Serial.println("De deur controleren!"); if (digitalRead(DOORPIN)==HIGH) // Controleer of de deur open is {Serial.println("Deur is gesloten!"); doorStatus = "Gesloten"; } else { Serial.println("Deur staat open!"); doorStatus = "Geopend"; } }
ongeldige checkStatus(){
if (WiFi.status() == WL_CONNECTED) { // Controleer de status van de wifi-verbinding // Het lezen van de temperatuur of vochtigheid duurt ongeveer 250 milliseconden! // Sensormetingen kunnen ook tot 2 seconden 'oud' zijn (het is een zeer trage sensor) float h = dht.readHumidity(); // Lees temperatuur als Celsius (de standaard) float t = dht.readTemperature (); // Lees temperatuur als Fahrenheit (isFahrenheit = true) float f = dht.readTemperature (true); // Controleer of het lezen is mislukt en sluit vroeg af (om het opnieuw te proberen). if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("Kan niet lezen van DHT-sensor!"); //Serial.print("."); // Kan niet lezen van DHT-sensor! opbrengst; } // Bereken warmte-index in Fahrenheit (de standaard) float hif = dht.computeHeatIndex (f, h); // Bereken warmte-index in Celsius (isFahreheit = false) float hic = dht.computeHeatIndex (t, h, false);
Serieel.print("\n");
Serial.print("Temperatuur: "); Serieafdruk(f); Serial.print(" *F ("); Serial.print(t); Serial.print(" *C)"); Serieel.print("\t"); Serial.print("Warmte-index: "); Serial.print(hif); Serial.print(" *F ("); Serial.print(hic); Serial.print(" *C)%"); Serieel.print("\t"); Serial.print("Vochtigheid: "); Serieel.println(h);
if (digitalRead(DOORPIN)==HIGH) // Controleer of de deur open is
{ Serial.println("Deur is gesloten!"); doorStatus = "Gesloten"; } else { Serial.println("Deur staat open!"); doorStatus = "Geopend"; } String jsonObject = String("{"value1\":\"") + f +"*F (" + t + "*C) / "+ hif +"*F (" + hic + "*C) " + "\", \"waarde2\":\"" + h + "\", \"waarde3\":\"" + doorStatus + " \"}"; HTTPClient http; String completeUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin(completeUrl); // http.begin(server); http.addHeader("Inhoudstype", "toepassing/json"); http. POST(jsonObject); http.writeToStream(&Serial); http.end(); //Hechte band
stateChanged = onwaar;
int sleepTimeInMinutes = interval / 1000 / 60; Serial.print("\n\nGa slapen voor "); Serial.print(sleepTimeInMinutes); Serial.println(" minuut(en) …"); } }
lege lus() {
unsigned long currentMillis = millis(); vertraging (4000); //Als we de verstreken tijd hebben overschreden, forceer dan een controle van de deur en temp. if (currentMillis - previousMillis >= interval){ stateChanged = true; vorigeMillis = huidigeMillis; Serial.print(count++); Serial.println(") Controle vanwege verstreken tijd!"); }else if(stateChanged){ Serial.print(count++); Serial.println(") Controle vanwege statuswijziging!"); }
// Als de status is gewijzigd, controleer dan de deur en de temperatuur.
if(stateChanged){ checkStatus(); }
vertraging (slaaptijd);
}
Stap 20: Resultaten
Nadat u de broncode in de vorige stap heeft geüpload, zou u resultaten moeten hebben zoals in het bovenstaande voorbeeld.
Stap 21: Tegoeden
Ik heb veel nuttige hints en tips gevonden van Random Nerd Tutorials en wil ze graag bedanken voor al hun hulp. Vooral hun uitstekende tutorial over ESP32 ESP8266 Publiceer sensormetingen naar Google Spreadsheets waarop grote delen van deze Instructable zijn gebaseerd.
Bovendien heeft de DHT11 Instructable van TheCircuit me geholpen te begrijpen hoe deze zeer goedkope maar interessante kleine sensor te gebruiken.
Verder zijn er veel tutorials over het bewaken van je deuren, zoals de Garage Door Monitor en een andere van Random Nerd Tutorials. Ik heb stukjes en beetjes hiervan gebruikt om me te helpen begrijpen hoe ik mijn reed-schakelaar goed kan laten werken.
Ten slotte kon ik met deze informatie en andere details die ik op internet vond, een systeem maken dat aan mijn behoeften voldeed. Ik hoop dat je dit Instructable nuttig vindt en er zelf een bouwt.
Aanbevolen:
Slimme deur: 3 stappen
Smart Door: Smart Door is een eenvoudige oplossing om uw deur met een paar eenvoudige stappen te verbinden met de smartphone. Smart Door waarschuwt u wanneer u bent vergeten de deur op slot te doen en wanneer iemand uw deur nadert. Wie zijn wij? Twee studenten Informatica van de Inte
De magische deur: 5 stappen
De magische deur: de magische deur Hallo allemaal, ik ben Mustafa Ali Adil Ik kom uit IRAK / BAGHDAD Mijn leeftijd is 9 jaar en ik zit in de vierde klas, ik maak een eenvoudig project om ons te helpen schoon te zijn, vooral tegenwoordig omdat corona- virus zijn naam "De magische deur" Ik gebruikte instructable
ESP8266 - Deur- en raamsensoren - ESP8266. Ouderenhulp (vergeetachtigheid): 5 stappen
ESP8266 - Deur- en raamsensoren - ESP8266. Ouderenhulp (vergeetachtigheid): ESP8266 - Deur- / raamsensoren met GPIO 0 en GPIO 2 (IOT). Het kan worden bekeken op het web of op het lokale netwerk met browsers. Ook zichtbaar via de "HelpIdoso Vxapp" sollicitatie. Maakt gebruik van een 110/220 VAC voeding voor 5Vdc, 1 relais/spanning
Slotwisselaar: deur openen met QR-code: 8 stappen
Lock Changer: Open Door Met QR-code: Hallo, mijn naam is Ben Vanpoucke en ik studeer Nieuwe Media en Communicatie Technologie aan Howest in Kortrijk, België. Als opdracht voor school moesten we een IoT-apparaat maken. Door accommodaties te huren via Airbnb, kwam ik op het idee om een apparte
IOT CA2 - Slimme deur: 3 stappen
IOT CA2 - Smart Door: Beschrijving: Het is een deurvergrendelingssysteem voor een kamer. Geregistreerde gebruikers kunnen een RFID-kaart gebruiken om binnen te komen en de lichten voor de kamer gaan aan. Wordt er op een verkeerde RFID-kaart getikt, dan maakt de camera een foto, gevolgd door een rood led-lampje