Inhoudsopgave:

Domotica met Android en Arduino: open de poort als je thuiskomt - Ajarnpa
Domotica met Android en Arduino: open de poort als je thuiskomt - Ajarnpa

Video: Domotica met Android en Arduino: open de poort als je thuiskomt - Ajarnpa

Video: Domotica met Android en Arduino: open de poort als je thuiskomt - Ajarnpa
Video: Domotica by Duotecno Nederlands 2024, November
Anonim
Domotica met Android en Arduino: open de poort als je thuiskomt
Domotica met Android en Arduino: open de poort als je thuiskomt

Deze Instructable gaat over het opzetten van een domoticasysteem dat kan worden bediend via een smartphone, met behulp van een internetverbinding, zodat het overal toegankelijk is. Bovendien zal het bepaalde acties uitvoeren wanneer aan een criterium wordt voldaan (zoals bijvoorbeeld het licht aandoen wanneer de smartphone verbinding maakt met het wifi-thuisnetwerk, de poort openen wanneer u een door GPS bepaald gebied betreedt, of al het andere dat u maar wilt).

Er wordt een bestaande Android-applicatie gebruikt, die zo min mogelijk codering vereist: upload de code en je bent klaar. Het brein - de microcontroller - zal een Arduino- of Arduino-compatibel bord zijn, zoals een Aruino Uno met een Ethernet-schild of een NodeMCU ESP8266.

Om het systeem te activeren wanneer aan een voorwaarde is voldaan (GPS-positie, tijd, ecc …) zullen we de beruchte Tasker gebruiken; daarover later meer.

Bij het realiseren van het systeem is rekening gehouden met de volgende kernpunten:

  • Het moet goedkoop zijn.
  • Het moet toegankelijk zijn van buiten het lokale thuisnetwerk (d.w.z. uw wifi).
  • Het moet ECHT gemakkelijk en snel te bouwen en op te zetten zijn.
  • Het moet betrouwbaar zijn.

Dat gezegd hebbende, het hele project kost ongeveer 20 € (7,50 € voor een ESP8266, 8 € voor een relaisbord, de rest voor extra hardware), en het kost je ongeveer 30 minuten om alles op te zetten - helemaal niet slecht.

Dus, als je geïnteresseerd bent, volg dan deze eenvoudige en snelle gids en stel je eigen handleiding samen!

Stap 1: De hardware instellen

De hardware instellen
De hardware instellen

Nadat u al uw componenten hebt verzameld, moet u eerst alles aansluiten.

In dit voorbeeld zullen we een gloeilamp aansluiten op de ESP8266; Houd er rekening mee dat je uiterst voorzichtig moet zijn bij het werken met netspanningen - huizen gebruiken 220V, daar kun je aan overlijden! Schakel altijd de stroom uit voordat u eraan werkt, en als u niet zeker bent, zoek dan naar een deskundige hulp!

Dat gezegd hebbende: om dergelijke spannings- en stroomniveaus aan te kunnen (waardoor de kleine ESPR8266 zal doorbranden) moeten we een geschikt relais gebruiken (zoals dit, dat 5V-logica is, geschikt voor de standaard Arduino, of dit, een 3.3V logisch niveaurelais, geschikt voor de 3.3V pinout van de ESP82666); de aansluitingen zijn vrij eenvoudig, volg het schema dat we hebben bijgevoegd.

Merk op dat sommige relaisborden (zoals degene die we hebben gekoppeld) ACTIEF LAAG zijn; dit betekent dat je het relais op aarde moet aansluiten om het te laten inschakelen, en vice versa. Als dit jouw geval is, biedt Homotica een mooie oplossing; we zullen zien welke in de volgende paragraaf.

Stap 2: ESP8266-configuratie

ESP8266-configuratie
ESP8266-configuratie
ESP8266-configuratie
ESP8266-configuratie
ESP8266-configuratie
ESP8266-configuratie

Nu we de hardware van het automatiseringssysteem hebben ingericht, moeten we de microcontroller programmeren.

Om dat te doen, hebben we de Arduino-software nodig om de meegeleverde schets naar de ESP8266 te uploaden; dus navigeer naar de Arduino-downloadpagina en pak de versie die het meest geschikt voor u is.

Eenmaal gedownload, installeer het.

Nu we onze IDE hebben geïnstalleerd, hebben we de bibliotheek nodig die nodig is om de schets te laten werken; om het te installeren, opent u de App Github Repo en kiest u Downloaden met de groene knop aan de rechterkant.

Ga naar de downloadmap op uw pc en gebruik software zoals WinRar of WinZip om het bestand uit te pakken; open de nieuw gemaakte map "homotica-master" en kopieer de binnenmap met de naam "Homotica" naar de map Arduino Editor Libraries (u kunt deze meestal vinden onder C:\Users\your_user_name\Documents\Arduino\libraries). Verwijder de resterende bestanden in "homotica-master", we hebben ze niet nodig

Er ontbreekt één stap bij het uploaden van de code naar de ESP8266: we hebben de bibliotheek nodig om de Arduino IDE met het bord te laten communiceren, want het wordt niet officieel ondersteund.

Volg hiervoor deze stappen (credits: Github ES8266 Arduino Repo):

  • Start Arduino en open het venster Bestanden>Voorkeuren.
  • Typ "https://arduino.esp8266.com/stable/package_esp8266com_index.json" (zonder aanhalingstekens) in het veld Extra Board Manager-URL's. U kunt meerdere URL's toevoegen, gescheiden door komma's.
  • Open Boards Manager vanuit Tools > Board menu en installeer esp8266 platform (zoek naar "esp8266" en download "esp8266 by ESP8266 Community").

Alles is opgezet. Laten we voor de schetscode zorgen.

Open Bestand>Voorbeeld>Homotica>Homotica ESP8266, kopieer ALLE code in een nieuwe schets en wijzig de volgende parameters:

  • ssid: vul hier de naam van je draadloze netwerk in
  • wachtwoord: uw wifi-wachtwoord
  • ip, gateway, subnet: u hoeft deze instelling waarschijnlijk niet aan te raken; verander ip als je wilt dat je ESP8266 een ander adres heeft
  • mUdpPort: de poort die we later in de router openen; als je niet weet wat het is, raak het dan niet aan
  • code: een unieke code van 8 tekens die wordt gebruikt om uw app te authenticeren; je kunt kiezen wat je wilt.

Als u een ACTIVE LOW-configuratie gebruikt, vergeet dan niet homotica.setActiveLow() aan te roepen, zoals weergegeven in de voorbeeldcode!

Om het af te maken: voeg homotica.addUsedPin(5) toe (zoals getoond in het voorbeeld) om de ESP8266 te vertellen welke GPIO het moet verwerken, tussen de while-lus en homotica.set(mUdpPort, code); verwijder alle homotica.simulateUdp(…) regels.

Dit is de code die je zou moeten hebben:

#erbij betrekken

#include #include const char* ssid = "mijnwifinaam"; const char* wachtwoord = "wifiwachtwoord"; IP-adres ip(192, 168, 1, 20); IPAddress-gateway (192, 168, 1, 1); IPAddress-subnet (255, 255, 255, 0); niet-ondertekend int mUdpPort = 5858; statische tekenreekscode = "aBc159"; homotica homotica; void setup() { WiFi.config(ip, gateway, subnet); WiFi.begin(ssid, wachtwoord); while (WiFi.status() != WL_CONNECTED) {vertraging (500); } homotica.addUsedPin(5); homotica.setActiveLow(); //<-- alleen als je het nodig hebt homotica.set(mUdpPort, code); } void loop() { homotica.refresh(); }

Wanneer alles correct is ingesteld, wijzigt u de compilerinstellingen in het menu Extra volgens de bijgevoegde schermafbeelding en selecteert u de poort waarop uw ESP8266 is aangesloten op uw computer in Extra> Poort.

Klik nu op uploaden. Uw microcontroller is helemaal ingesteld en klaar voor gebruik!

Stap 3: Router en IP

Router en IP
Router en IP
Router en IP
Router en IP

Om vanaf elk netwerk met de ESP8266 te communiceren, moeten we de router vertellen dat hij de opdracht moet invoeren die we ernaartoe sturen.

Om dat te doen, navigeer je naar de configuratiepagina van je router (meestal 192.168.1.1) en zoek je naar iets als "virtuele server" of "port forwarding"; u kunt de exacte instelling voor uw routermodel zoeken in Google.

Maak bij port forwarding een nieuwe regel die alle verbindingen met de ESP8266 (degene die eerder is geconfigureerd) toestaat via de ESP8266-poort (nogmaals de eerder geconfigureerde). Noem het Homotica, voer de ESP8266 IP in het IP-veld in en sla op.

Als de router die u gebruikt dit niet toestaat, hoeft u zich geen zorgen te maken: u kunt de app niet gebruiken vanaf het mobiele netwerk, maar het werkt prima vanuit uw wifi-thuisnetwerk.

Om nu vanuit de buitenwereld naar onze router te verwijzen, moeten we het openbare IP-adres weten; het nadeel is dat de meeste internetproviders je geen statisch IP-adres geven, maar een dynamisch IP-adres, dat in de loop van de tijd verandert.

Maar wacht, we kunnen dit oplossen!

Ga naar NoIp, maak een nieuw account aan en maak vervolgens een nieuwe hostnaam aan (zie bijgevoegde afbeelding). Noteer welke hostnaam je hebt (in mijn voorbeeld: https://yourhostname.ddns.net), en ga verder met de volgende stap.

(Opmerking: u wilt misschien dat uw pc uw router-IP automatisch synchroniseert met uw NoIp-hostnaam: download hun gratis app om dat te doen)

Stap 4: App-configuratie

App-configuratie
App-configuratie
App-configuratie
App-configuratie
App-configuratie
App-configuratie

Laten we voor de app zorgen, oké?

Download de app van de Play Store-pagina en open deze.

Open het linkermenu, selecteer Borden en maak een nieuwe aan. We zullen de parameters invullen die we eerder hebben gedefinieerd in de ESP8266-schetscode:

  • Arduino Naam: wat je wilt (laat dit ESP8266 zijn)
  • Host IP: dit zou kunnen zijn:

    • het statische IP-adres van de router waarnaar wordt verwezen via de NoIp-link
    • de ESP8266 IP als u deze alleen wilt gebruiken vanuit uw wifi-thuisnetwerk 192.168.1.20
  • Hostpoort: degene die we eerder hebben ingesteld en geopend 5858
  • Auth-code: de code van 8 tekens die we hebben gedefinieerd in de schets aBc195

Opslaan. Open het menu opnieuw, maak een nieuw apparaat aan; we zullen een gloeilamp bevestigen voor demonstratie:

  • naam: licht
  • Knopnaam: we gebruiken Aan, kies wat je verkiest
  • Pinnummer: de pin waaraan we de gloeilamp hebben bevestigd. Doe voorzichtig! Op de ESP8266 komen de pinlabels (D1, D2…) NIET overeen met de GPIO Pin-naam! Zoek in Google om te bepalen welke pin welke GPIO is (in ons voorbeeld: pin 5 is gelabeld D1)
  • Gedrag: u kunt kiezen tussen aan- en uitzetten, de staat van "duwen" (in- en uitschakelen) van het apparaat wijzigen.

Opslaan. Als je alles tot nu toe correct hebt ingesteld, zou het indrukken van Aan de gloeilamp moeten gaan branden.

Cool, niet?

Nu kun je veel plezier beleven aan het toevoegen van meer apparaten, nog meer borden, en ze in scènes rangschikken.

Maar om op volle kracht te gebruiken wat u zojuist hebt gemaakt, moeten we Tasker gebruiken.

Stap 5: Tasker-integratie

Tasker-integratie
Tasker-integratie
Tasker-integratie
Tasker-integratie
Tasker-integratie
Tasker-integratie

Als u Tasker bezit of wilt kopen, lees dan verder! We zullen het gebruiken om Homotica te vertellen wat te doen en wanneer het te doen.

In dit voorbeeld gaan we het licht aandoen wanneer we verbinding maken met onze wifi thuis EN de tijd is tussen 16.00 en 18.00 uur.

Tasker openen; maak een nieuwe taak aan (laat hem het licht inschakelen), selecteer Toevoegen>Plugin>Homotica, druk op het potloodje om de plug-in te configureren. Selecteer Licht>Aan en Opslaan. Terug naar het hoofdmenu maak een nieuw profiel aan, selecteer Staat>WiFi verbonden, voer de wifi-naam van de tour in het veld SSID in; druk op terug en selecteer Licht inschakelen als activiteit invoeren. Druk nu lang op het linkergedeelte van het nieuw gemaakte profiel, selecteer Toevoegen>Tijd>Van 16:00 tot 18:00 uur en sluit vervolgens.

We zijn klaar. Ons licht gaat aan als we binnen de door ons ingestelde tijd naar huis gaan.

Dat is handig!

Nu is het jouw beurt: wees creatief met Homotica en Tasker, en vergeet niet om ons te laten zien wat je hebt gemaakt!

Aanbevolen: