INHOUDSOPGAWE:

Arduino-gebaseerde stembeheerde IOT-aflosskakelaar (Google Home en Alexa word ondersteun): 11 stappe
Arduino-gebaseerde stembeheerde IOT-aflosskakelaar (Google Home en Alexa word ondersteun): 11 stappe

Video: Arduino-gebaseerde stembeheerde IOT-aflosskakelaar (Google Home en Alexa word ondersteun): 11 stappe

Video: Arduino-gebaseerde stembeheerde IOT-aflosskakelaar (Google Home en Alexa word ondersteun): 11 stappe
Video: Массимо Банци: Как Arduino пробуждает воображение 2024, Junie
Anonim
Arduino-gebaseerde stembeheerde IOT-aflosskakelaar (Google Home en Alexa word ondersteun)
Arduino-gebaseerde stembeheerde IOT-aflosskakelaar (Google Home en Alexa word ondersteun)

Hierdie projek beskryf hoe u 'n Arduino-gebaseerde, stembeheerde IOT-aflosskakelaar kan maak. Dit is 'n relais wat u op afstand kan aan- en afskakel met behulp van 'n app vir iOS en Android, asook om dit aan IFTTT te koppel en dit ook met u stem te beheer met behulp van Google Home en/of Alexa. Ons behandel alle stappe wat nodig is om die toestel te skep, die app aan te sluit en ook by die verskillende IOT -dienste aan te sluit.

Voorrade

  • Wemos D1 Mini Lite ESP8285 ('n paar dollar op Amazon)
  • 5V Relay Module vir Arduino/Raspberry Pi
  • 2N2222 NPN transistor
  • Weerstand van 47K ohm
  • 1K ohm weerstand

Stap 1: Bou die stroombaan

Bou die stroombaan
Bou die stroombaan
Bou die stroombaan
Bou die stroombaan
Bou die stroombaan
Bou die stroombaan

Die eerste stap is om die kring aan te sluit. Ek het 'n skematiese en 'n tradisionele bedradingsdiagram ingesluit, afhangende van waaraan u gewoond is. Ek het my eerste kring op 'n prototipe broodbord gedoen en dit dan na 'n PCB oorgeplaas vir 'n meer permanente opstelling en dit in 'n 3D -gedrukte projekkas gehuisves.

Die relais is 'n opto-geïsoleerde H/L 5V-relais, wat beteken dat die snellerbane eerstens opties geïsoleer is van die relaisaktivering self, wat enige moontlike probleem met terugvoer van die relais na die Wemos-mikrobeheerder verwyder. 'N Lekker veiligheid. Tweedens, dit is hoog/laag omskakelbaar, wat beteken dat dit gekonfigureer kan word deur die geel trui wat u op die foto's sien, te beweeg, van die sneller wanneer die sein hoog is (+5V), of as die sein laag is (0V). Die Wemos stuur self 3.3V van sy digitale penne af en ons gebruik D1 as ons snellerbron, wat beteken dat ons dit effens moet versterk, sodat ons naby 'n +5V digitale sein kom om die relais te aktiveer. U kan ook 'n 3.3V -relais gebruik en die transistorversterkerkomponent in die stroombaan uitskakel en direk van D1 na die seinpen op die relais gaan. Ek het nie 3.3V -relais gehad nie, so ons gebruik 'n meer algemene 5V -relais en die amp -stroombaan.

Die DC+ en DC- op die relais sluit aan op die 5V- en GND-penne van die Wemos, wat die nodige spanning verskaf om die relais te bedryf. Die relais word gegradeer van klein spannings tot by netspanning, maar ek gebruik dit om 'n laespanning-bedradingstoepassing te beheer. As u dit gebruik om die netspanning te beheer, moet u seker maak dat u weet wat u doen, dat u gekwalifiseerd is en dat u die nodige voorsorgmaatreëls tref. As dit nie die geval is nie, moet u dit nie gebruik om lynspanningstoepassings te beheer nie.

Speld D1 op die Wemos sluit aan by die 47K ohm -weerstand wat in die basis van die NPN -transistor ingaan. Die sender stuur terug na die grond. Die versamelaar is gekoppel aan die seininvoer op die relais. Die relais is ingestel om op laag te begin, dus as D1 'n sein gee, word die 3.3v sein versterk tot ongeveer 5V en die relais is oop. As D1 laag word, gaan die sein na die relais laag en die relais sluit en voltooi 'n stroombaan.

Ek het vergeet om foto's te neem van my tydelike stroombaan op die prototipe broodbord, maar dit lyk presies soos die Fritzing -diagram hierbo, as dit nuttig is. Ek het 'n aantal foto's van my laaste permanente stroombaan ingesluit, sodat u kan sien hoe dit aangeskakel is, as u 'n paar insigte benodig of sigbaarheid benodig oor die spesifieke komponente wat ek gebruik.

Stap 2: Die programmering van die Wemos - Oorsig

Een van die dinge wat ek van die Wemos hou, is dat hulle net soos 'n Arduino geprogrammeer kan word met dieselfde IDE. Daar is egter 'n paar stappe hier.

  1. Installeer die Wemos -bestuurders op die rekenaar, kan met die Wemos praat
  2. Dateer die Arduino IDE op sodat die Wemos -bord beskikbaar is
  3. Doen 'n vinnige "Knip" -toets om seker te maak dat alles reg werk
  4. Maak gereed met Blynk (ek weet dit is verwarrend, maar dit is eintlik anders as die 'knippertoets')
  5. Kry 'n aansoekkode van Blynk
  6. Werk die Wemos/Arduino -kode op met die Blynk -inligting
  7. Laai die kode op na u Wemos -opstelling.

Stap 3: Die programmering van die Wemos - Installeer bestuurders

Die programmering van die Wemos - Installeer bestuurders
Die programmering van die Wemos - Installeer bestuurders

Gaan hierheen (dit lyk asof hierdie skakel periodiek verander, ek sal probeer om dit op datum te hou):

www.wemos.cc/en/latest/ch340_driver.html

En laai die korrekte bestuurderpakket vir u bedryfstelsel af. Pak dan die zip uit na 'n gids en voer die toepassing "SETUP" uit om dit te installeer.

Toe ek dit die eerste keer doen, kry ek 'n vreemde fout omdat dit nie geïnstalleer is nie. Ek het iemand anders se opmerking oor hierdie en hul oplossing gesien, wat vir my gewerk het. As u 'n fout opspoor, probeer dan met die 'Uninstall' -knoppie en gebruik dan weer 'Installeer'. Hopelik sal dit die probleem oplos soos dit vir my gedoen het.

Stap 4: Wemos programmeer - Werk die Arduino IDE by

Wemos programmeer - Werk die Arduino IDE op
Wemos programmeer - Werk die Arduino IDE op
Wemos programmeer - Werk die Arduino IDE op
Wemos programmeer - Werk die Arduino IDE op
Wemos programmeer - Werk die Arduino IDE op
Wemos programmeer - Werk die Arduino IDE op

As u nie die Arduino IDE geïnstalleer het nie, is dit 'n goeie tyd om dit nou te doen. U kan dit aflaai van www.arduino.cc

Hier is 'n verwysing na wat ons in hierdie stap gaan doen.

wiki.wemos.cc/tutorials:get_started:get_st…

  1. Laat ons die nuwe bord installeer sodat dit as 'n opsie in die Arduino IDE verskyn. Stap 2 - 4 word uit die installasiegids op die volgende github -bladsy gehaal.

    github.com/esp8266/Arduino

  2. Begin die Arduino IDE en maak die venster Voorkeure oop.
  3. Voer "https://arduino.esp8266.com/stable/package_esp8266com_index.json" in die veld Addisionele bestuurder -URL's in. U kan verskeie URL's byvoeg en dit met kommas skei.
  4. Open Boards Manager vanaf Tools> Board> Boards Manager (bo), soek na "esp8266" en installeer die lys esp8266.
  5. Op hierdie punt sien u Wemos -borde in die Tools → Board: xxx Kies die Wemos D1 Mini. In my geval, soos u uit die prent kan sien, was die spesifieke naam "LOLIN (WEMOS) D1 R2 & mini"
  6. Koppel 'n USB -kabel tussen die rekenaar en die Wemos
  7. Bevestig dat die 'Poort' nou aktief is in die menu 'Tools' en dat dit korrek lyk.

Stap 5: Die programmering van die Wemos - Knippertoets

Die programmering van die Wemos - Knippertoets
Die programmering van die Wemos - Knippertoets

Voordat ons verder gaan, moet ons seker maak dat ons met die Wemos -bord kan kommunikeer en alles lyk goed. Die maklikste manier om dit te doen, is deur 'n USB -kabel aan te sluit en 'n eenvoudige program na die Wemos te stoot. Blink is die maklikste voorbeeld en het my baie moeite bespaar as ek met nuwe planke werk, dat ek dit altyd eerste doen.

  1. Gaan na: Lêer> Voorbeelde> ESP8266> Knip en laai die knipskets vir 'n Wemos -toestel
  2. Stel die skets op en laai dit op

As die blou LED ongeveer een keer per sekonde begin flikker, is dit goed om na die volgende stap te gaan! Indien nie, gaan dan deur en los die vorige stappe op. Kyk of daar 'n probleem is met die bestuurders en die bestuurder. Ek het 'n paar probleme gehad met die bordpakket vir die ESP8266 en moes dit heeltemal verwyder en weer installeer as gevolg van iets vreemds met weergawes. Moenie moed opgee nie, en soektogte op die internet kan u vriend wees!

Gestel alles is goed, gaan na die volgende stap.

Stap 6: Wemos programmeer - Blynk opstel

Wemos programmeer - Blynk opstel
Wemos programmeer - Blynk opstel
Wemos programmeer - Blynk opstel
Wemos programmeer - Blynk opstel
Wemos programmeer - Blynk opstel
Wemos programmeer - Blynk opstel

In hierdie volgende stappe moet ons 'n rekening met Blynk opstel en 'n teken kry wat ons kan gebruik om die stroombaan wat ons geskep het, te beheer.

  1. Laai die app af en skep 'n rekening (dit is gratis)
  2. Skep 'n nuwe projek
  3. Kies Wemos D1 as die hardeware onder Kies toestel
  4. Gee die projek 'n naam en hou die tipe verbinding as WiFi
  5. Klik op Skep projek
  6. Op hierdie stadium word die Auth Token per e -pos gestuur na die e -posadres wat u gebruik het toe u u Blynk -rekening geskep het. Stoor dit later, ons voeg die waardes in die skets in die volgende stap in.
  7. As u by die leë doekskerm kom, veeg net na links en u kry die widget -kieslys. Kies 'Knoppie' om 'n 'knoppie' by die projek te voeg
  8. Kies die knoppie en konfigureer dan die pen deur daarop te klik en kies "Digitaal" en "D1" as die pi en klik op "Ok"
  9. Op hierdie punt moet alles gereed wees. Om dit aktief te maak, wil u die driehoek -ikoon regs bo kies, maar dit werk nog nie totdat ons die skets opgelaai en gekonfigureer het, wat die volgende stap is!

Stap 7: Die programmering van die Wemos - Die installering van die Blynk -biblioteek

Om 'n Blynk -skets te kan oplaai, moet ons hul biblioteek installeer. Die besonderhede kan hier gevind word.

github.com/blynkkk/blynk-library/releases

Kyk ook vir 'n agtergrond na hul hoofwebwerf hier (https://blynk.io/en/getting-started)

Dit was aanvanklik vir my verwarrend, maar dit is baie makliker as wat dit klink. Pak die lêer net uit na u Arduino -gids. Vir my was dit in / user / Documents / Arduino. Daar was reeds 'n gids met die naam "biblioteke". Die zip -lêer bevat 'n biblioteek en 'tools' gids. As u dit in die Arduino -gids uitpak, voeg dit die inhoud daarvan by biblioteke en skep u gereedskap as dit nie reeds bestaan nie.

Stap 8: Die programmering van die Wemos - die skets

Ons is amper klaar op hierdie punt. Die skets is redelik eenvoudig, dit kom direk van Blynk en verbind in wese die Blynk -diens en die bord. U kan hul bouer hier gebruik:

examples.blynk.cc/?board=WeMos%20D1&shield=ESP8266%20WiFi&example=Widgets%2FTerminal

Of u kan hierdie voorbeeld gebruik wat vir u behoort te werk. Maak net seker dat u die waardes vir die authentic -token en u geloofsbriewe vir u wifi -netwerk vervang.

/*************************************************************

Laai die nuutste Blynk-biblioteek hier af: https://github.com/blynkkk/blynk-library/releases/latest Blynk is 'n platform met iOS- en Android-programme om Arduino, Raspberry Pi en meer oor die internet te beheer. U kan maklik grafiese koppelvlakke vir al u projekte bou deur eenvoudig widgets te sleep en neer te sit. Aflaaie, dokumente, tutoriale: https://www.blynk.cc Sketsopwekker: https://examples.blynk.cc Blynk -gemeenskap: https://community.blynk.cc Volg ons: https://www.fb. com/blynkapp Blynk -biblioteek is gelisensieer onder MIT -lisensie. Hierdie voorbeeldkode is in die publieke domein. ************************************************* ************ U kan enige data stuur/ontvang met WidgetTerminal -voorwerp. Opstel van programprojek: terminale -widget gekoppel aan Virtual Pin V1 *************************************** **********************//*Lewer kommentaar hierop om afdrukke uit te skakel en spasie te bespaar*/ #define BLYNK_PRINT Serial #include #include // You should get Auth Teken in die Blynk -app. // Gaan na die projekinstellings (moer -ikoon). char auth = "YourAuthToken"; // U WiFi -geloofsbriewe. // Stel wagwoord op "" vir oop netwerke. char ssid = "Jou netwerknaam"; char pass = "YourPassword"; // Koppel virtuele seriële terminaal aan Virtual Pin V1 WidgetTerminal terminale (V1); // U kan opdragte vanaf Terminal na u hardeware stuur. Gebruik // dieselfde virtuele pen as u terminale -widget BLYNK_WRITE (V1) {// as u "Marco" in die terminale -widget tik - dit sal reageer: "Polo:" if (String ("Marco") == param.asStr ()) {terminal.println ("U het gesê: 'Marco'"); terminal.println ("Ek het gesê: 'Polo'"); } anders {// Stuur dit terug terminal.print ("U het gesê:"); terminal.write (param.getBuffer (), param.getLength ()); terminale.println (); } // Verseker dat alles terminal.flush () gestuur word; } ongeldige opstelling () {// Ontfoutkonsole Serial.begin (9600); Blynk.begin (auth, ssid, pass); // U kan ook bediener spesifiseer: //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80); //Blynk.begin(auth, ssid, pass, IPAddress (192, 168, 1, 100), 8080); // Dit sal die weergawe van Blynk -sagteware na die Terminal Widget druk wanneer // u hardeware aan Blynk Server terminal.println gekoppel word (F ("Blynk v" BLYNK_VERSION ": toestel begin")); terminal.println (F ("-------------")); terminal.println (F ("Tik 'Marco' en kry 'n antwoord, of tik ')); terminal.println (F ("enigiets anders en laat dit terugdruk.")); terminale.spoel (); } leemte -lus () {Blynk.run (); }

Stap 9: Die programmering van die Wemos - Laaste stap

Image
Image

Sodra die skets gelaai is, moet u die skets opstel en oplaai, en u moet gereed wees om u opstelling te toets!

Maak die Blynk -app oop, klik op die driehoek in die regter boonste hoek vir u Wemos -projek

Klik dan op die knoppie! U moet die relais klik en die status -LED's op die relaisbord dui aan dat die relais van toestand verander het.

Nou kan u die relais aansluit op enige laagspanningstoepassing wat 'n eenvoudige skakelaar benodig en dit vanaf u Blynk -app beheer. Die laaste ding wat ons moet doen, is om IFTTT aan te sluit en Google of Alexa te gebruik om die Blynk -stelsel te beheer, sodat ons dit nie met ons Blynk -app hoef te doen nie.

Stap 10: Beheer Blynk met IFTTT en Google Home of Alexa

Ek neem aan dat u op hierdie stadium vertroud is met IFTTT. Indien nie, is daar 'n paar uitstekende tutoriale wat u sal help om te leer hoe om IFTTT te gebruik en te benut. Dit is baie kragtig en iets wat u sal wil leer as u dit nog nie ken nie.

  1. Skep 'n nuwe applet in IFTTT
  2. Kies Google Assistent as die 'As dit' en gebruik 'n 'Eenvoudige frase' as die sneller. Vir my, aangesien dit my kaggel gaan aan- of uitskakel, was my frase 'skakel die kaggel aan'
  3. Soek vir en gebruik Webhooks vir die gedeelte "Toe dit"
  4. Kies 'Maak 'n webversoek'
  5. Vir die URL wat u wil gebruik:

    "https://blynk-cloud.com/XXXXYYYYZZZZ/update/d5?value=1"

  6. Stel die metode op GET, die inhoudstipe op urlencoded, en u kan die LIGGAAM leeg laat en dan stoor

Wag 'n paar minute en toets dan u frase met u Google Home -toestel. Ek het opgemerk dat dit ongeveer twee minute neem voordat dit gereed is.

LET WEL: hier is nog 'n ding waaraan u aandag moet gee. Let op dat ek 'd5' gebruik in my API -oproep, maar ek het aan pin D1 op die bord gekoppel. Dit het my ongeveer 'n dag geneem om uit te vind dat die nommer van die GPIO -pen en die op die bord gedrukte nommering nie dieselfde is nie. Nadat ek waardes verander het met direkte URL -oproepe en die spanning op verskillende penne met 'n voltmeter getoets het, kon ek agterkom dat 'n oproep na d1 via die API die spanning verander het, maar nie by D1 op die bord nie. d5/GPIO 5 stem eintlik ooreen met D1 op die bord. Sodra ek die aanpassing gemaak het, werk alles pragtig!

Aansluiting by Alexa is identies aan Google home, maar gebruik eerder die Alexa -diens op IFTTT.

Stap 11: Gevolgtrekking

Op hierdie stadium behoort u 'n funksionerende stembeheerde IOT-relais te hê met die Wemos D1 mini lite. Geniet dit en sterkte!

Weereens, elektrisiteit is gevaarlik, dus neem die nodige voorsorgmaatreëls, en as u nie gekwalifiseer is nie, moet u dit nie doen nie.

Aanbeveel: