Bel mijn Arduino
Componenten en benodigdheden
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Over dit project
(Van http://www.instructables.com/id/Call-my-Arduino/)
Hoe u telefoongesprekken naar uw Arduino kunt inschakelen , met behulp van Twilio en Yaler.net
Twilio is een webservice die alles in een telefoon verandert. Het is een REST API voor telefonie, gehost in de cloud. In dit geval vraagt Twilio de Arduino om een nieuw voice.xml-bestand wanneer iemand het vooraf gedefinieerde telefoonnummer van de Arduino belt. De inhoud van het antwoord wordt voorgelezen aan de beller door Alice, een stem van Twilio's tekst-naar-spraak-engine.
Yaler.net maakt webtoegang mogelijk tot embedded apparaten achter een firewall, NAT of een mobiele netwerkrouter. Hier kan Twilio toegang krijgen tot het voice.xml-bestand op de Arduino, dat zich in een lokaal netwerk bevindt en daarom geen eigen openbaar IP-adres heeft (openbaarmaking:ik ben een oprichter van Yaler).
Deze demo gebruikt een temperatuursensor, maar elke andere sensor zou het ook doen. Een echt productvoorbeeld is de Canarische (nu Birdi) rookmelder waarmee bezorgde huiseigenaren hem kunnen bellen om te vragen of de batterij nog in orde is.
Op een meer abstract niveau probeert deze Instructable te laten zien hoe modulaire cloudservices in een open Internet of Things vrij kunnen worden gecombineerd om nieuwe, eenvoudige en betrouwbare oplossingen te bouwen. HTTP en Webhooks FTW! Maar laten we beginnen...
(Hier is een video die dit project uitlegt van IoTLive, onderdeel van IoTDay 2014)
Materiaal
- Arduino Uno (bijv. https://www.adafruit.com/products/50)
- USB-kabel standaard A-B (bijv. http://www.adafruit.com/products/62)
- Arduino Ethernet Shield (bijv. http://www.adafruit.com/products/201)
- Ethernet-kabel (bijv. http://www.adafruit.com/products/995)
- Analoge temperatuursensor (bijv. https://www.adafruit.com/products/165)
- Breadboard draadbundel (bijv. http://www.adafruit.com/products/153)
- Breadboard (bijv. http://www.adafruit.com/products/64)
http://www.youtube.com/watch?v=4IPwkW38oIwStap 1:Bedrading van de sensor
Voeg het Ethernet-schild toe aan de Arduino en sluit de temperatuursensor aan zoals weergegeven. Voor details over temperatuurmeting met de TMP36-sensor, zie b.v. http://learn.adafruit.com/tmp36-temperature-sensor/using-a-temp-sensor
Als je andere (digitale) sensoren wilt toevoegen, houd er dan rekening mee dat sommige pinnen worden gebruikt door het Ethernet-schild.
Stap 2:De Yaler-bibliotheek installeren
Volg de drie stappen voor De bibliotheek installeren op https://yaler.net/arduino Als je dit nog niet hebt gedaan, meld je dan aan op https://yaler.net/ voor een gratis proefaccount en noteer het relay-domein (de geheime sleutel is niet nodig).
Stap 3:Programmeren van de Arduino
Download de TwilioYalerWebService Arduino-broncode
https://bitbucket.org/tamberg/iotworkshop/raw/default/Arduino/TwilioYalerWebService/TwilioYalerWebService.ino?at=default
Open de Arduino-code
Het programma implementeert een zeer eenvoudige webserver die luistert naar inkomende HTTP-verzoeken. Zodra een verzoek binnenkomt, reageert het programma met een XML-document. Het maakt de server niet uit of het URL-pad / . is of /voice.xml.
Het MAC-adres wijzigen
Zorg ervoor dat het MAC-adres in de Arduino-code uniek is. Dit is vooral belangrijk als er meerdere Arduino's in hetzelfde lokale netwerk zitten. Een eenvoudige manier om een (hopelijk) uniek adres te krijgen, is door de MAC van uw computer op te zoeken en vervolgens 1 op te tellen bij het laatste cijfer.
Voer uw relay-domein in
In plaats van een lokale server te maken met EthernetServer-server(80); we maken er een die toegankelijk is via de Yaler-relay try.yaler.net , in de volgende regel:
YalerEthernetServer-server("try.yaler.net", 80, "RELAY_DOMAIN");
Vervang RELAY_DOMAIN met uw relay-domein, b.v. voor gsiot-ffmq-ttd5 typ:
YalerEthernetServer-server("try.yaler.net", 80, "gsiot-ffmq-ttd5");
Merk op dat u net zo goed de lokale server kunt gebruiken, als u weet hoe u port forwarding moet configureren om een gat te openen voor inkomende HTTP-verzoeken in uw lokale firewall. Het belangrijkste is dat Twilio toegang heeft tot de Arduino vanuit de cloud.
Wijzigingen opslaan en uploaden
Sla alle wijzigingen op en upload het programma naar je Arduino. Houd de USB-kabel voorlopig aangesloten op uw ontwikkelcomputer en open de seriële console om de foutopsporingsuitvoer te zien.
Stap 4:Toegang tot de Arduino
Toegang tot uw Arduino vanuit elke browser
De Yaler-bibliotheek maakt uw Arduino (en daarmee het XML-document) toegankelijk vanaf het openbare internet op http://RELAY_DOMAIN.try.yaler.net/, bijv. voor het relay-domein gsiot-ffmq-ttd5 de URL is http://gsiot-ffmq-ttd5.try.yaler.net/ Of, om het er leuker uit te laten zien voor Twilio: http://gsiot-ffmq-ttd5.try.yaler.net/voice.xml
Controleer het XML-document
De inhoud van het XML-document vertelt Twilio wat hij moet antwoorden op een inkomend telefoongesprek. U kunt zelfs de tekst-naar-spraak-stem kiezen. Hier is het Alice. Het XML-formaat van Twilio heet TwiML. Zie https://www.twilio.com/docs/api/twiml voor meer informatie. Merk op dat de antwoordtekst de actuele temperatuur bevat. Verwarm uw sensor en ververs het document in uw webbrowser met F5 om het te zien veranderen.
Problemen oplossen
Als u een lege pagina of een foutmelding krijgt, zorg er dan voor dat uw Ethernet-kabel is aangesloten en controleer https://yaler.net/browser voor browserspecifieke foutopsporing.
Stap 5:Een Twilio-nummer instellen
Aanmelden
Om een Twilio-account te krijgen, moet u zich eerst aanmelden op https://www.twilio.com/
Koop een telefoonnummer
Om gebeld te kunnen worden heb je een nummer nodig, waar een (kleine) prijs voor geldt. Log in, navigeer naar Nummers en selecteer de Twilio Numbers submenu, om de Nummers beheren . te zien tabblad.
Klik op de Koop een nummer -knop, selecteer de Voice selectievakje en klik op Zoeken , kies vervolgens een nummer en klik op Kopen om het te kopen.
Configureer de voice.xml webhook-URL
In de Nummers beheren tabblad, klik op het nummer dat u zojuist hebt gekocht. Stel de Reactie-URL in naar http://RELAY_DOMAIN.try.yaler.net/voice.xml en zorg ervoor dat POST is geselecteerd, bijv. voor het Yaler-relaydomein gsiot-ffmq-ttd5 stel de antwoord-URL in op http://gsiot-ffmq-ttd5.try.yaler.net/voice.xml
Stap 6:Een testoproep plaatsen
Zodra de Arduino is ingesteld, kun je hem vanaf elke telefoon bellen - zelfs die van je opa.
Dat was het, bedankt voor het lezen. @tamberg
Code
Bitbucket
https://bitbucket.org/tamberg/iotworkshop/raw/default/Arduino/TwilioYalerWebService/TwilioYalerWebService.ino?at=defaultSchema's
Productieproces
- Anti-transpirant/deodorantstick
- Raspberry Pi garagedeuropener met streaming video van de deurstatus.
- Elektronentomografie van potloodvormige GaN/(In,Ga)N Core-Shell-nanodraden
- Arduino Spybot
- FlickMote
- Zelfgemaakte tv B-Gone
- Bel mijn Arduino
- Hoofdklok
- Vind mij
- Arduino Power
- Onderhoudssoftware/ CMMS – Een businesscase voorbereiden