Inhoudsopgave:

Spraakgestuurde schakelaar met Alexa en Arduino - Ajarnpa
Spraakgestuurde schakelaar met Alexa en Arduino - Ajarnpa

Video: Spraakgestuurde schakelaar met Alexa en Arduino - Ajarnpa

Video: Spraakgestuurde schakelaar met Alexa en Arduino - Ajarnpa
Video: Hoe Alexa Follow Up Mode te activeren 2024, December
Anonim
Spraakgestuurde schakelaar met Alexa en Arduino
Spraakgestuurde schakelaar met Alexa en Arduino

Het belangrijkste doel van dit project is om de temperatuursensor te gebruiken om de schakelaar (relais) te bedienen om het apparaat in of uit te schakelen.

Lijst met materialen

  1. 12V Relaismodule == > $4.2
  2. Arduino uno == > $ 8
  3. DHT11 temperatuursensor == > $ 3
  4. ESP8266-module == > $ 4.74
  5. N26 optocoupler == > $ 0,60
  6. LM1117 spanningsregelaar == > $ 0,60
  7. Breadboard == > $ 2.2
  8. Jumper draden == > $ 2.5
  9. Drukknop == > $ 2.5

De totale kosten van het project bedragen ongeveer $ 30 dollar. Dit project is opgedeeld in drie delen. Eerst gebruiken we heroku om een app te maken. Ten tweede bouwen we een Amazon Alexa-vaardigheid op om ons werk uit te voeren (belangrijkste onderdeel). Ten derde stellen we onze hardware in en programmeren deze met behulp van Arduino IDE.

Stap 1: Heroku koppelen met GitHub

Heroku koppelen met GitHub
Heroku koppelen met GitHub
Heroku koppelen met GitHub
Heroku koppelen met GitHub
Heroku koppelen met GitHub
Heroku koppelen met GitHub

Heroku is een cloudplatform as a service (PaaS) dat verschillende programmeertalen ondersteunt en wordt gebruikt als een implementatiemodel voor webapplicaties. Ga eerst naar de heroku-site, maak een nieuw account aan of log daar in. Link wordt hieronder gegeven

Heroku-website

Laten we beginnen met het maken van een nieuwe app. Ik heb mijn app-naam "iottempswitch" gegeven wanneer je de app implementeert, de link wordt gegenereerd.

Zodra de app is gemaakt, gaat u naar GitHub. GitHub/

Log daar in of meld je aan als je geen account hebt. Nadat u bent ingelogd, maakt u een nieuwe repository aan. Geef een naam die u wilt kiezen en druk vervolgens op repository maken. Klik op de volgende pagina op README, geef op deze pagina een beschrijving die u met anderen wilt delen. Klik daarna op nieuw bestand vastleggen. Klik vervolgens op de uploadknop.

Er zijn twee opties: u kunt de map slepen en neerzetten of een bestand kiezen. Download de vereiste bestanden van hieronder. Nadat je bestanden hebt geselecteerd, druk je op wijzigingen vastleggen. Open de app die je bij Heroku hebt gemaakt en ga vervolgens naar de sectie Implementeren. Klik daarna op GitHub. Geef de naam van de repository die u aan de GitHub-kant hebt gemaakt. In mijn geval is het Smart-Relay. Kopieer dat en plak het hier. Zodra uw link wordt weergegeven, klikt u op verbinden. Klik vervolgens op deploy branch(manual). Na de implementatie kunt u de link in het buildlogboek zien of u kunt de link in de instellingen zien. We hebben deze link later nodig wanneer we Amazon-vaardigheid maken.

Stap 2: Amazon

Amazone
Amazone
Amazone
Amazone
Amazone
Amazone

Nieuwste afbeeldingen van Alexa-vaardigheid

Op de Amazon Developer-site gebruiken we de Amazon-vaardigheid om de schakelaartrigger te regelen door de temperatuur en vochtigheid in te stellen.

Ga naar de Amazon-ontwikkelaarssite. Link wordt hieronder gegeven.

Amazon-ontwikkelaarswebsite

  • Ga naar de ontwikkelaarsconsole rechtsboven zoals weergegeven in afbeelding i4
  • Ga naar Alexa, selecteer Alexa Skill Kit en maak vervolgens een nieuwe vaardigheid door op Nieuwe vaardigheid toevoegen te klikken.

Wanneer u een nieuwe vaardigheid toevoegt, ziet u de pagina met vaardigheidsinformatie.

1. Vaardigheidsinformatie (zoals weergegeven in afbeelding i7)

we moeten vaardigheidstype, taal, naam, aanroepnaam opgeven.

Vaardigheidstype ==> selecteer aangepast

  • Naam ==> selecteer een naam.
  • Aanroepnaam ==> die u gebruikt tijdens communicatie met Alexa. Bijvoorbeeld: - Alexa, vraag de sensor om de schakelaar aan te zetten of Alexa, vraag hier het licht aan, de aanroepnamen zijn sensor en licht.
  • Taal ==> Engels (India). Selecteer volgens uw land

klik op opslaan en vervolgens op volgende

2. Interactiemodel

Hier zullen we vaardigheidsbouwer gebruiken. Klik dus op Start Skill Builder. u ziet de pagina zoals weergegeven in afbeelding i8.

Eerst creëren we nieuwe intenties. Klik op Toevoegen (aan de linkerkant) en geef een naam die je wilt, ik heb "smartswitch" gebruikt

  • Geef slot type naam "measurement_type" en slot waarden "temperatuur" en "vochtigheid" zoals getoond in afbeelding i9.

  • Voeg daarna de naam van het slottype "query" toe en de slotwaarden zijn "wat" en "is", zoals weergegeven in afbeelding i10.
  • Voeg daarna het slottype "switchstate" toe en de slotwaarden zijn "aan" en "uit", zoals weergegeven in afbeelding i11.
  • Voeg nog een slottype "tempscale" toe en de slotwaarden zijn "fahrenheit" en "celcuis" zoals weergegeven in afbeelding i12.
  • Voeg daarna een nieuw slottype toe hier gebruiken we het bestaande slottype daarvoor moeten we klikken op bestaande slot gebruiken. Zoek in bestaande slot naar amazon.nummer en selecteer dit en voeg het toe. Nadat je het hebt toegevoegd, zie je het in slottypes zoals weergegeven in afbeelding i13.

We zijn dus klaar met slottypes. Het totale slottype dat we gebruiken is 5. Ga nu naar de volgende stap. Klik op de intentie die we hebben gemaakt, in mijn geval is het smartswitch. Aan de rechterkant ziet u de intent-sleuf zoals weergegeven in afbeelding i14.

  • Maak een nieuw slot, geef het de naam "Switch_State" en wijs het toe aan "switchstate" met behulp van de vervolgkeuzeknop zoals weergegeven in afbeelding i15.
  • Maak een nieuw slot, geef het de naam "Sensor_Values" en wijs het toe aan "measurement_type" zoals weergegeven in afbeelding i16.
  • Maak een nieuw slot, geef het de naam "query" en wijs het toe aan "query" zoals weergegeven in afbeelding i17.
  • Maak daarna een nieuw slot "tmp_scale" en wijs het toe aan "tempscale" zoals weergegeven in afbeelding i18.
  • Maak een nieuw slot "Numbers" en wijs het toe aan "Amazon. Numbers" zoals weergegeven in afbeelding i19.

Nu zijn we klaar met Intent-slots. We gebruiken 5 intent-slots. Hierna gaan we naar voorbeelduitingen zoals weergegeven in afbeelding i20.

Voeg deze voorbeelduitingen toe.

schakel trigger in op {Numbers} procent {tmp_scale}

{query} is de schakelstatus

{Switch_State} schakeltrigger

zet schakelaar trigger op {Numbers} graad {tmp_scale}

draai schakelaar {Switch_State}

{query} schakelaar {Switch_State}

{query} is de huidige {Sensor_Values}

Sla daarna het model op en bouw het op. Wacht tot het model is gebouwd en klik daarna op configuratie. Na het bouwen ziet u een bericht zoals weergegeven in afbeelding i21 en i22.

3. Configuratie

Selecteer HTTPS en voeg een link toe die is gegenereerd tijdens het maken van de heroku-app. In mijn geval is dat https://iottempswitch.herokuapp.com/. Klik na het toevoegen van de link op volgende zoals weergegeven in afbeelding i23.

4. SSL-certificaatSelecteer tweede optie en klik op volgende zoals weergegeven in afbeelding i24.

we hebben met succes onze vaardigheid gecreëerd.

Stap 3: Arduino

Arduino
Arduino
Arduino
Arduino
Arduino
Arduino

Open Arduino IDE. Ga vervolgens naar Bestand ==> Voorkeur

Kopieer en plak in Extra Boards Manager de URL en klik op ok, zoals weergegeven in afbeelding i26.

arduino.esp8266.com/versions/2.4.0/package_…

  • Open Board Manager door naar Tools ==> Board ==> Board Manager te gaan.
  • Open Boards Manager en zoek naar nodemcu zoals weergegeven in afbeelding i27.
  • Download daarna de ESP8266WiFi-bibliotheek. Open bibliotheekbeheer: Sketch ==> Bibliotheek opnemen ==> Bibliotheken beheren.
  • Zoek naar de ESP8266WiFi-bibliotheek en installeer deze.
  • Selecteer bord ==> Generieke ESP8266-module.
  • Voordat we de code kunnen uploaden, hebben we drie bibliotheken nodig.

Vereiste bibliotheken

Verplaats deze bibliotheken naar de bibliothekenmap van Arduino

Je moet drie dingen wijzigen in code SSID, PWD en je heroku-app-link. Upload daarna de code. Voor ESP-module moet u op de flash-knop drukken tijdens het uploaden van de code en vervolgens één keer op de reset-knop drukken en vervolgens de flash-knop loslaten. Open na het uploaden van de code de terminal. u zult de uitvoer zien.

Stap 4: Componentbeschrijving

onderdeel Beschrijving
onderdeel Beschrijving
onderdeel Beschrijving
onderdeel Beschrijving
onderdeel Beschrijving
onderdeel Beschrijving
onderdeel Beschrijving
onderdeel Beschrijving

1. Wat is een relais

Relais is een elektromagnetisch apparaat dat wordt gebruikt om twee circuits elektrisch te isoleren en magnetisch te verbinden. Het zijn zeer nuttige apparaten en laten het ene circuit een ander circuit schakelen terwijl ze volledig gescheiden zijn. Ze worden vaak gebruikt om een elektronisch circuit (werkend op een lage spanning) te koppelen aan een elektrisch circuit dat werkt op een zeer hoge spanning. Een relais kan bijvoorbeeld een 5V DC-batterijcircuit maken om een 230V AC-netcircuit te schakelen.

Hoe het werkt

Een relaisschakelaar kan in twee delen worden verdeeld: ingang en uitgang. Het ingangsgedeelte heeft een spoel die een magnetisch veld genereert wanneer er een kleine spanning van een elektronische schakeling op wordt toegepast. Deze spanning wordt de bedrijfsspanning genoemd. Veelgebruikte relais zijn beschikbaar in verschillende configuraties van bedrijfsspanningen zoals 6V, 9V, 12V, 24V enz. Het uitgangsgedeelte bestaat uit contactors die mechanisch in- of uitgeschakeld worden. In een basisrelais zijn er drie schakelaars: normaal open (NO), normaal gesloten (NC) en gemeenschappelijk (COM). Bij geen ingangsstatus is de COM verbonden met NC. Wanneer de bedrijfsspanning wordt toegepast, wordt de relaisspoel bekrachtigd en verandert de COM het contact in NO. Er zijn verschillende relaisconfiguraties beschikbaar, zoals SPST, SPDT, DPDT enz., die een verschillend aantal wisselcontacten hebben. Door de juiste combinatie van contactors te gebruiken, kan het elektrische circuit worden in- en uitgeschakeld. Krijg innerlijke details over de structuur van een relaisschakelaar.

De COM-terminal is de gemeenschappelijke terminal. Als de COIL-klemmen worden bekrachtigd met de nominale spanning, hebben de COM- en de NO-klemmen continuïteit. Als de COIL-klemmen niet worden bekrachtigd, hebben de COM- en de NO-klemmen geen continuïteit.

De NC-klem is de normaal gesloten klem. Het is de terminal die kan worden ingeschakeld, zelfs als het relais geen of voldoende spanning krijgt om te werken.

De NO-terminal is de normaal open-terminal. Het is de klem waar u de gewenste uitgang plaatst wanneer het relais zijn nominale spanning ontvangt. Als er geen spanning op de COIL-klemmen staat of onvoldoende spanning, is de uitgang open en krijgt deze geen spanning. Wanneer de COIL-klemmen de nominale spanning of iets lager ontvangen, krijgt de NO-klem voldoende spanning en kan het apparaat op de uitgang worden ingeschakeld.

2. DHT-temperatuursensor:

DHT11 is een vochtigheids- en temperatuursensor die gekalibreerde digitale output genereert. DHT11 kan worden gekoppeld aan elke microcontroller zoals Arduino, Raspberry Pi, enz. en krijgt onmiddellijke resultaten. DHT11 is een goedkope vochtigheids- en temperatuursensor die een hoge betrouwbaarheid en stabiliteit op lange termijn biedt.

3. ESP8266 Volledige beschrijving:

De ESP8266 WiFi-module is een op zichzelf staande SOC met geïntegreerde TCP/IP-protocolstack die elke microcontroller toegang kan geven tot uw WiFi-netwerk. De ESP8266 kan ofwel een applicatie hosten, netwerkfuncties van een andere applicatie. Elke ESP8266-module is voorgeprogrammeerd met een AT-commando.

De ESP8266 ondersteunt APSD voor VoIP-toepassingen en Bluetooth-co-existentie-interfaces, het bevat een zelfgekalibreerde RF waardoor het onder alle bedrijfsomstandigheden kan werken en vereist geen externe RF-onderdelen.

Functies

  • 802.11 b/g/n
  • Wi-Fi Direct (P2P),
  • soft-APGeïntegreerde TCP/IP-protocolstack
  • Geïntegreerde TR-schakelaar, balun, LNA, eindversterker en bijpassend netwerk
  • Geïntegreerde PLL's, regelaars, DCXO en energiebeheereenheden
  • +19.5dBm uitgangsvermogen in 802.11b-modus
  • Schakel lekstroom uit van <10uA
  • 1 MB Flash-geheugen
  • Geïntegreerde low-power 32-bit CPU kan worden gebruikt als applicatieprocessor
  • SDIO 1.1 / 2.0, SPI, UART
  • STBC, 1×1 MIMO, 2×1 MIMOA-MPDU & A-MSDU-aggregatie & bewakingsinterval van 0,4 ms
  • Wakker worden en pakketten verzenden in < 2 ms
  • Stand-by stroomverbruik van < 1,0 mW (DTIM3)

Pin Beschrijving zoals weergegeven in afbeelding i34.

Voor het aansluiten van de ESP-module met Arduino UNO hebben we een Lm1117 3.3-spanningsregelaar of een andere regelaar nodig, omdat Arduino niet in staat is om 3.3 v aan ESP8266 te leveren.

Opmerking: - Druk tijdens het uploaden van de code op de flitsknop en druk vervolgens één keer op de resetknop en laat vervolgens de flitsknop los, zoals weergegeven in afbeelding i29.

Voor het aansluiten van de DHT11-sensor en het relais gebruiken we twee GPIO-pinnen van de ESP8266-module. Na het uploaden van de code kunt u de RX-, TX-, GPIO0-pinnen loskoppelen. Ik heb GPIO0 gebruikt voor DHT11-sensor en GPIO2 voor relais. DHT11-sensor werkt prima met ESP8266, maar voor relais hebben we één extra ding nodig, namelijk opto-isolator of opto-koppeling. Zie afbeelding i30, i31, i32 en i33.

Stap 5: Aansluitingen

ESP8266 === > DHT11GPIO0 === > Uitgangspin

ESP8266 === > Relais GPIO2 ===> Ingang

ARDUINO ===> ESP8266

Gnd ===> GndTX === > TX

RX === > RX

Reset-knop === > RST

Flitsknop === > GPIO0

Stap 6: Alle dingen controleren

Alle dingen controleren
Alle dingen controleren
Alle dingen controleren
Alle dingen controleren
Alle dingen controleren
Alle dingen controleren
Alle dingen controleren
Alle dingen controleren

We hebben met succes onze app gemaakt, vaardigheid en onze hardware is klaar. Het is dus tijd om te controleren.

Daarvoor staat uw ESP8266 aan omdat onze server op ESP8266 draait. Hier heb ik geen sensor aangesloten op ESP8266. Ik controleer alleen of het werkt of niet, maar je kunt de sensor, relais aansluiten op ESP8266. Zodra het is verbonden met Heroku, ziet u verbonden. Ga voor het testen naar de Amazon-vaardigheid die je hebt gemaakt en klik vervolgens op de testpagina. Zodra het is geverifieerd dat het werkt, zal ik mijn sensor verbinden met ESP8266. U kunt resultaten zien zoals weergegeven in afbeeldingen i35, i36, 37, 38, 39, 40.

Als u het gebruikt zonder ESP8266 aan te sluiten, krijgt u deze foutmelding zoals weergegeven in afbeelding i41.

Uiting die je kunt gebruiken

schakel trigger in op {Numbers} procent {tmp_scale}

vb: - zet de schakelaarschakelaar op 50 procent luchtvochtigheid

{query} is de schakelstatus

ex- aan/uit is de schakeltoestand

{Switch_State} schakeltrigger

ex - aan/uit schakelaar trigger

zet schakelaar trigger op {Numbers} graad {tmp_scale}

ex - schakel trigger in op 76 graden Fahrenheit

ex - zet schakelaar trigger op 24 graden celcius

draai schakelaar {Switch_State}

ex - schakelaar aan/uit zetten

Zie afbeelding i41 tot i46 voor resultaten.

Vraag arduino terwijl je met AlexaAlexa praat om de schakelaar aan/uit te zetten

Alexa, vraag Arduino om de schakelaar op 24 graden Celsius te zetten.

Alexa, vraag Arduino om de schakelaartrigger in te stellen op 50 procent luchtvochtigheid

Alexa, vraag Arduino om de schakelaar aan/uit te zetten

Stap 7: VUI (Voice User Interface)-diagram

VUI (Voice User Interface)-diagram
VUI (Voice User Interface)-diagram

Stap 8: Demo

Image
Image

1. Stel de trigger in voor temperatuur en vochtigheid.

2. Stel de trigger in op 20 graden Celsius.

3. Stel de trekker in op 80 procent luchtvochtigheid.

Stap 9: Schematisch

Aanbevolen: