Inhoudsopgave:

LEIDS - Low Energy IOT-deursensor - Ajarnpa
LEIDS - Low Energy IOT-deursensor - Ajarnpa

Video: LEIDS - Low Energy IOT-deursensor - Ajarnpa

Video: LEIDS - Low Energy IOT-deursensor - Ajarnpa
Video: 🔒 AQARA Door Lock & Eve Motion Sensor Enhances Smart Home Security 🤝 2024, November
Anonim
LEIDS - IOT-deursensor met laag energieverbruik
LEIDS - IOT-deursensor met laag energieverbruik

Wat is LEIDS?

LEIDS is een IOT-sensor die is gebaseerd op de ESP8266. Deze sensor maakt gebruik van dit bord, een zacht vergrendelend circuit, een reed-schakelaar en enkele magneten om een deursensor te creëren die u een waarschuwing stuurt wanneer uw deur opent en sluit. Deze sensor kan worden aangesloten op uw MQTT-server, IFTTT of vele andere frameworks die de ESP8266 ondersteunen. Deze instructable gebruikt IFTTT om eenvoudig een sensor te maken die een waarschuwing naar uw mobiele apparaat stuurt, waar u ook bent. De sensor kan ook worden ingesteld om meerdere waarschuwingen mogelijk te maken van afzonderlijke deuren, brievenbussen, ovens en al het andere dat een fysieke open/dicht- of aan/uit-positie heeft. Het voordeel van LEIDS is dat het minimaal stroom verbruikt en alleen stroom verbruikt wanneer een deur open is, en wanneer de deur gesloten is, stuurt het een bericht om u te waarschuwen dat de deur gesloten was en wordt uitgeschakeld. Dit is beter dan de module diep te slapen, omdat deze geen energie verbruikt als de deur niet wordt geopend.

Stap 1: Benodigdheden

Benodigdheden
Benodigdheden
Benodigdheden
Benodigdheden
Benodigdheden
Benodigdheden
Benodigdheden
Benodigdheden

De onderstaande lijsten tonen de gereedschappen en onderdelen die ik voor dit project heb gebruikt. De sensor kan opnieuw worden ontworpen om verschillende onderdelen te gebruiken en er anders uit te zien/functioneren en om vergelijkbare concepten te gebruiken.

Gereedschap:

  • Soldeerbout
  • ESP01-UART of Arduino Uno (programmeur voor ESP8266)
  • 3D-printer (optioneel)
  • Startkabels (optioneel)
  • Breadboard (optioneel)

Onderdelen:

  • ESP8266 ESP-01S x 1
  • Reed Switch x 1 (bij voorkeur NC, ik kon alleen normaal open vinden, dus ik moet twee magneten gebruiken om het als normaal gesloten te laten werken)
  • AMS1117 3.3v-regelaar
  • 2n3904 NPN-transistor x 1
  • P-kanaal Mosfet x 1 (we willen iets met een lage VGS, bij voorkeur een NDP6020P)
  • 3.7v 100 mAh Lipo-batterij x 1
  • Diverse weerstanden (100k ohm, 10k ohm, 220 ohm, 3k3 Ohm)
  • 6x3mm Magneten x 2
  • Dubbelzijdige montagetape
  • Draad
  • Soldeer
  • Perfboard

3D-geprinte onderdelen:

Koffer voor sensor

Stap 2: Zacht vergrendelend circuit - hardware

Zacht vergrendelend circuit - hardware
Zacht vergrendelend circuit - hardware

Het zachte vergrendelingscircuit dat ik gebruik, is een wijziging van een schema dat ik online heb gevonden. Ik ben geen expert en ik geloof dat er betere manieren zijn om dit circuit te bouwen, maar voor mijn doel doet dit circuit het werk!

De manier waarop het werkt, is dat wanneer het reed-geschakeld wordt gesloten door een magnetisch veld, het stroom naar de NPN-transistor toestaat. De NPN-transistor aardt vervolgens de PNP-mosfet, waardoor stroom naar de ESP8266 kan stromen. De ESP8266 wordt ingeschakeld, gebruikt een van zijn pinnen om de PNP-mosfet geaard te houden die de ESP8266 van stroom blijft voorzien. Als de ESP8266 klaar is met zijn taken, zet hij die uitgangspin op LAAG, wat de NPN-transistor onderbreekt en de poort op de PNP-mosfet sluit.

Door een circuit als dit te gebruiken, kan de ESP8266 worden ingeschakeld met een schakelaar en zichzelf vervolgens volledig uitschakelen via een signaal. Hierdoor kan het circuit geen stroom trekken wanneer de sensor is gesloten/uit.

Stap 3: ESP8266 - Hardware

ESP8266 - Hardware
ESP8266 - Hardware

De ESP8266 die ik gebruik, stuurt een bericht om te waarschuwen wanneer een deur (of iets anders) open is en wacht dan tot de deur sluit om een sluitbericht te verzenden en zichzelf uit te schakelen. De ESP8266 wordt gevoed door het zachte vergrendelingscircuit en gebruikt één pin om de reed-schakelaar te lezen en een andere pin om zichzelf aan te houden en vervolgens om zichzelf uit te schakelen. Ik heb ervoor gekozen om de ESP-01's te gebruiken vanwege de kleine vormfactor. De ESP stuurt een webverzoek om ons op de hoogte te stellen wanneer de sensor wordt gewijzigd in "geopend" en "gesloten". De eenvoudigste methode die ik vond, was om IFTTT en Google Spreadsheets te gebruiken. Dit wordt uitgelegd in de volgende stappen.

Stap 4: IFTTT voor externe meldingen - deel 1

IFTTT voor externe meldingen - deel 1
IFTTT voor externe meldingen - deel 1
IFTTT voor externe meldingen - deel 1
IFTTT voor externe meldingen - deel 1
IFTTT voor externe meldingen - deel 1
IFTTT voor externe meldingen - deel 1
IFTTT voor externe meldingen - deel 1
IFTTT voor externe meldingen - deel 1

In deze instructable zal IFTTT worden gebruikt en webhooks en google sheets worden geïmplementeerd om externe meldingen op ons mobiele apparaat te ontvangen. Om van deze diensten gebruik te kunnen maken heeft u het volgende nodig:

  • Een Google-account
  • Een IFTTT-account (kan/moet inloggen met Google-account)
  • De IFTTT-applicatie voor uw mobiele apparaat

Nadat u uw accounts hebt gemaakt/inlogd, zullen we twee applets maken. De foto's bovenaan dit gedeelte laten zien hoe u de webpagina kunt manoeuvreren. De volgende stappen zijn voor de eerste applet, het verzoek om een gebeurtenis. Deze applet krijgt een bericht van de sensor en slaat de gebeurtenis op in een Google-sheets-document. Vervolgens kunt u de geschiedenis van uw sensor bekijken en zien wanneer deze is geopend en gesloten.

  1. Ga naar de link "Mijn Applets" bovenaan
  2. Klik op de knop "Nieuwe applet"
  3. Klik op de blauwe "+dit" knop
  4. Zoek naar "webhooks" en klik erop
  5. Selecteer op de volgende pagina de kaart "Ontvang een webverzoek"
  6. Stel vervolgens de gebeurtenisnaam in op wat je maar wilt, ik heb ervoor gekozen om het "sensor_activated" te noemen
  7. Klik op de volgende pagina op de blauwe "+dat"-knop
  8. Zoek naar de service "google sheets" en selecteer deze
  9. Kies op de volgende pagina de functie "Voeg rij toe aan spreadsheet"
  10. Vul de actie als volgt in:

    • Spreadsheetnaam, ik heb de mijne "Sensorgeschiedenis" genoemd
    • Opgemaakte rij moet er als volgt uitzien:

      {{OccurredAt}} ||| {{Waarde1}} ||| {{Waarde2}}

    • Laat het laatste veld zoals het is, tenzij u wilt wijzigen waar de applet de status van de sensor opslaat
  11. Klik vervolgens op "Actie maken"
  12. Klik ten slotte op "Voltooien" in het laatste scherm

Laten we nu testen of het werkt

  1. Ga naar deze link
  2. Klik vervolgens op de knop "Documentatie" (we gebruiken deze pagina "Documentatie" later opnieuw)
  3. U bevindt zich nu in uw eigen persoonlijke gedeelte voor de IFTTT Webhooks-applet
  4. Vul in het veld waar "{event}" staat de naam van je evenement in. In dit geval is de naam van het evenement "sensor_activated"
  5. Vul nu het veld "waarde1" in, dit is het veld dat de locatie van je sensor zal bevatten, ik ga het invullen met "Voordeur"
  6. Vul nu het veld "waarde2" in, dit is het veld dat de status van de sensor zal hebben, ik ga het invullen met "geopend" alleen om te testen
  7. Klik vervolgens op de blauwe knop "Test het"
  8. Als alles goed is gegaan, zou je een groene "Event is getriggerd" moeten krijgen. bericht bovenaan
  9. Als je nu wilt zien hoe het je bericht heeft opgeslagen, kun je je Google-bladen openen en de spreadsheet vinden die het heeft toegevoegd. Ik heb een afbeelding bijgevoegd om te laten zien hoe de spreadsheet eruit zal zien

Nu verder met de volgende stap door een applet toe te voegen om ons op de hoogte te stellen van de statuswijziging.

Stap 5: IFTTT voor externe meldingen - deel 2

IFTTT voor externe meldingen - deel 2
IFTTT voor externe meldingen - deel 2
IFTTT voor externe meldingen - deel 2
IFTTT voor externe meldingen - deel 2
IFTTT voor externe meldingen - deel 2
IFTTT voor externe meldingen - deel 2

Nu zullen we een applet toevoegen om ons op de hoogte te stellen wanneer de statusspreadsheet een rij krijgt toegevoegd; met andere woorden, wanneer de sensor een gebeurtenis activeert. Zoals eerder zullen we een nieuwe applet maken. De volgende stappen zullen u begeleiden bij het maken van de tweede applet. Aangezien we in de vorige stap iets soortgelijks hebben gedaan, zal ik alleen de dia's toevoegen die anders zijn dan deze stap.

  1. Ga naar de link "Mijn Applets" bovenaan
  2. Klik op de knop "Nieuwe applet"
  3. Klik op de blauwe "+dit" knop
  4. Zoek naar "google sheets" en klik erop
  5. Selecteer op de volgende pagina de kaart "Nieuwe rij toegevoegd aan spreadsheet"
  6. Vul vervolgens de velden in om te verwijzen naar de spreadsheet waarnaar de andere applet schrijft

    • In dit voorbeeld is het pad "IFTTT/MakerWebooks/sensor_activated"
    • De bestandsnaam is "Sensorgeschiedenis"
  7. Klik op de volgende pagina op de blauwe "+dat"-knop
  8. Zoek naar de "meldingen"-service en selecteer deze
  9. Nu moeten we de velden voor de meldingsservice invullen

    • De titel is veranderd in

      {{KolomB}} was {{KolomC}}

    • Het bericht is ingesteld op

      {{KolomB}} was {{KolomC}} op {{KolomA}}

    • De link wordt alleen gelaten
  10. Klik vervolgens op "Actie maken"
  11. Klik ten slotte op "Voltooien" in het laatste scherm

Om het tweede deel van het IFTTT-meldingssysteem te testen, moet u ervoor zorgen dat u de IFTTT-app op uw mobiele apparaat hebt gedownload en inlogt met uw inloggegevens. In mijn geval log ik in met mijn Google-account. Nu kunnen we dit testen door terug te gaan naar de pagina "Documentatie" en de test af te vuren met de gebeurtenisnaam ingesteld als "sensor_activated", het veld "waarde1" ingesteld op de locatie en het veld "waarde2" ingesteld op de status.

Dit zou u een melding moeten sturen. Als je er geen ontvangt, zorg er dan voor dat je bent ingelogd met hetzelfde account en dat je de applicatie toestemming hebt gegeven om je meldingen te sturen.

Stap 6: Arduino IDE en Sketch

Arduino IDE en Sketch
Arduino IDE en Sketch
Arduino IDE en Sketch
Arduino IDE en Sketch

De software die voor het bord wordt gebruikt, is gecompileerd met behulp van de Arduino IDE.

De logica is als volgt:

  • De reed-schakelaar wordt gesloten door de deur te openen
  • De ESP wordt dan ingeschakeld en maakt verbinding met wifi
  • Zodra de wifi-verbinding tot stand is gebracht, stuurt deze een http-verzoek (stuurt een commando naar internet) dat ons vertelt dat er een deur of iets anders is geopend
  • Dan leest het een signaal van de reed-schakelaar om te bepalen of de deur is gesloten
  • Wanneer het ESP-bord ontdekt dat de reed-schakelaar is geopend (d.w.z. de deur was gesloten), stuurt het een ander http-verzoek dat ons vertelt dat de deur gesloten was
  • Dan signaleert het het zachte vergrendelingscircuit om de stroom naar het bord te onderbreken

Arduino IDE downloaden

Ik heb de arduino-code aan deze sectie toegevoegd om te downloaden. Als u de Arduino IDE niet heeft, kunt u deze online downloaden op

Installeer de juiste boardmanager

Om de code naar je ESP-bord te uploaden, moet je een boardmanager in de Arduino IDE installeren met behulp van de volgende stappen.

  • Ga naar Bestand > Voorkeuren om het voorkeurenvenster te openen
  • Zoek in het voorkeurenvenster het veld met de tekst "Extra Board Manager-URL's"
  • Plak de volgende link in dit veld https://arduino.esp8266.com/stable/package_esp8266com_index.json en druk op de knop "OK"
  • Open nu Boards Manager door naar Tools > Board te gaan, dan is het allereerste item Boards Manager
  • Typ "ESP8266" in het bordmenu en installeer "esp8266". Ik selecteer versie 2.5.0 omdat ik wat problemen heb gehad met de nieuwere versies
  • Ga nu terug en selecteer je bord via Extra > Bord > Generic ESP8266 Module
  • Sluit vervolgens de arduino ide af en open deze opnieuw om er zeker van te zijn dat de wijzigingen hebben plaatsgevonden

Open de schets in de Arduino IDE

We moeten vier regels van de code aanpassen, zodat de sensor voor u werkt

  1. Verander de SSID in uw WiFi SSID oftewel de naam van uw wifi
  2. Wijzig het wachtwoord zodat het overeenkomt met het wachtwoord voor uw wifi
  3. Wijzig de url zodat deze overeenkomt met de url van de "Documentatie"-pagina van de "webhook"-service
  4. Verander de locatie van de sensor naar waar je hem wilt plaatsen, dit kan de voordeur, achterdeur, brievenbus, etc. zijn.

Nu u de code aan uw behoeften heeft aangepast, moeten we deze op het bord laden. In mijn geval gebruik ik een USB-programmeur en volg ik de instructies ervoor. Dit kan veel probleemoplossing vereisen, dus ik raad u aan online te zoeken voor een meer diepgaande zelfstudie. In mijn geval steek ik de ESP-01's in de programmer, dan steek ik hem in de computer, dan zet ik de schakelaar van uart naar prog, als laatste trek ik de stekker uit het stopcontact en sluit ik de programmer weer aan. Hierdoor blijft de ESP nu in de programmeermodus. Nu klik ik gewoon op de upload-knop en laat de upload eindigen. Als je wilt zien of hij verbinding maakt, kun je de seriële monitor openen en de statusberichten bekijken. Zodra je de schets hebt geüpload, zullen we alles aan elkaar solderen, in een behuizing plaatsen en op de gewenste locatie monteren.

Stap 7: Behuizing (3D geprint)

Behuizing (3D geprint)
Behuizing (3D geprint)
Behuizing (3D geprint)
Behuizing (3D geprint)
Behuizing (3D geprint)
Behuizing (3D geprint)

Ik heb de volgende behuizing ontworpen om alle componenten te huisvesten, de plaatsing van een magneet mogelijk te maken en de reed-schakelaar uit te lijnen. Het tweede deel wordt alleen gebruikt om een tweede magneet vast te houden waarmee de schakelaar kan worden geopend en gesloten.

Zodra alle componenten aan elkaar zijn gesoldeerd, kunnen we ze in de behuizing drukken. Als je wilt, kun je een beetje hete lijm aan de onderkant toevoegen om alles vast te houden. Dan moeten we een magneet in de behuizing drukken met de elektronica en uitlijnen de reed-schakelaar indien nodig. De andere magneet moet in de andere behuizing worden gedrukt. Zodra beide behuizingen zijn voltooid, kunnen we deze testen door de twee behuizingen samen te voegen, ze vervolgens te scheiden en weer bij elkaar te brengen. We zouden nu twee meldingen moeten krijgen, één voor geopende sensor en één voor gesloten sensor. Houd de twee bij elkaar om te voorkomen dat de batterij leegloopt.

Bevestig montagetape aan de achterkant van de sensoren en breng ze aan op de gewenste plaats. Ik heb de mijne op mijn brievenbus gemonteerd. Test nu of de uitlijning correct is en of de sensor een open en gesloten bericht kan sturen.

Voila, je hebt nu je eigen sensor om je te waarschuwen wanneer deze wordt geopend en gesloten. Laat het me weten als je het leuk vindt en als er iets is waarvan je denkt dat het kan worden verbeterd.

Ik dien deze instructable ook in voor de IOT-wedstrijd, dus zorg ervoor dat je deze en alle andere IOT-projecten waarvan je hebt genoten, leuk vindt en stemt

Stap 8: Toekomstige verbeteringen

Voor dit project liep ik tegen een aantal problemen aan. Het eerste probleem dat ik tegenkwam was het gebruik van een mosfet die een te hoge Vgs had, dus ik moest overschakelen naar een andere. Ten tweede is de reed-schakelaar die ik heb gebruikt normaal open en in mijn geval zou een normaal gesloten schakelaar gemakkelijker te implementeren zijn geweest en veel ruimte hebben bespaard. Ten slotte was de esp 01s erg moeilijk om mee te werken en ik moest knoeien met de gpio-pinnen om het goed te laten werken, maar ik had nog steeds wat problemen. Ik denk dat dit project me veel concepten heeft geleerd en me heeft geholpen om meer ideeën en implementaties te bedenken met behulp van de esp8266-borden en IFTTT.

IoT-uitdaging
IoT-uitdaging
IoT-uitdaging
IoT-uitdaging

Tweede plaats in de IoT-uitdaging

Aanbevolen: