Inhoudsopgave:

Een sms verzenden met een ESP8266: 5 stappen
Een sms verzenden met een ESP8266: 5 stappen

Video: Een sms verzenden met een ESP8266: 5 stappen

Video: Een sms verzenden met een ESP8266: 5 stappen
Video: Laat een ESP8266 of ESP32 data versturen naar Home Assistant #11 2024, November
Anonim
Stuur een sms met een ESP8266
Stuur een sms met een ESP8266

Deze instructable leidt je door de stappen om sms-berichten via internet te verzenden van een ESP8266 NodeMCU-modulekaart naar een mobiele telefoon. Om het bericht te kunnen verzenden, moet u de stappen doorlopen om een virtueel telefoonnummer te krijgen van Twilio, een communicatiebedrijf. Geen creditcard nodig omdat Twilio een gratis proefaccountoptie heeft. Vervolgens download en gebruik je een voorbeeld van een Arduino IDE-programma om sms-berichten te verzenden.

Het voorbeeldprogramma in deze instructable heeft functieaanroepen die u eenvoudig kunt kopiëren, plakken, bewerken en gebruiken in uw eigen projecten.

Benodigdheden

Ik gebruik een NodeMCU ESP8266 CH340G ESP-12E Wireless WIFI Internet Development Board. Ze verkopen voor ongeveer $ 3 op eBay van Chinese leveranciers.

Stap 1: Test uw ESP8266 NodeMCU

Je kunt testen met of zonder breadboard. Zonder het breadboard zal het onboard-lampje aan en uit knipperen, wat effectief is voor de test.

In mijn voorbeeld steek ik de NodeMCU in het Breadboard. Ik steek de negatieve kant van een LED in de grond (G of GND) pin op de NodeMCU. De positieve kant van de LED is via een weerstand (500 tot 5K ohm) verbonden met de NodeMCU pin D4. Wanneer het voorbeeldprogramma wordt uitgevoerd, gaat de ingebouwde LED aan, de externe LED uit, vervolgens gaat de ingebouwde LED uit en de externe LED aan. De LED-lampjes gaan afwisselend aan en uit.

Download en voer het basis Arduino-testprogramma uit: nodeMcuTest.ino. Terwijl het programma wordt uitgevoerd, gaat het LED-lampje aan boord gedurende 1 seconde aan, gaat het 1 seconde uit en blijft het doorlopen. Er worden ook berichten geplaatst die kunnen worden bekeken in de Arduino IDE Tools/Serial Monitor.

+++ Opstelling.

+ Geïnitialiseerd de ingebouwde LED digitale pin voor output. LED is uit. ++ Ga naar lus. + Lusteller = 1 + Lusteller = 2 + Lusteller = 3 …

Zodra u hebt bevestigd dat uw IDE kan worden gebruikt om uw NodeMCU te programmeren, gaat u naar de volgende stap.

Opmerking met betrekking tot bibliotheken, ik heb het volgende geïnstalleerd voor ESP8266-projecten:

  • Arduino WiFi-bibliotheek versie 1.2.7.
  • PubSubClient versie 2.7.0, door Nick O'Leary, voor MQTT-berichten. Niet vereist voor dit project.
  • IRremoteESP8266 versie 2.6.3, voor infrarood. Niet vereist voor dit project.

Als u meer informatie heeft over de vereiste bibliotheken, kunt u een opmerking maken. De reden dat ik geen details heb, is dat ik niet heb vastgelegd wat ik heb geïnstalleerd, sorry.

Over de ESP8266 NodeMCU

Functies,

  • 80 MHz kloksnelheid
  • Bedrijfsspanning: 3.3V
  • Opslag flashgeheugen: 4 MB, SRAM: 64 KB
  • 9 veelgebruikte digitale GPIO-pinnen met het label: D0 tot D8.
  • Van de 9, 4 pinnen kunnen worden gebruikt voor SPI, en 2 pinnen voor I2C.
  • Onderbreek GPIO-pinnen D0-D8.
  • Gebruik niet de 6 pinnen: CLK, SD0, CMD, SD1, SD2, SD3 (GPIO 6-11), omdat deze in gebruik zijn.
  • Getest: knopinvoer met D0-D02.
  • Getest: LED knipperen met D0-D08. Uit naar een weerstand, naar een LED, naar aarde.
  • Noodzaak om te testen, UART1 (TX = GPIO2), Serial1 object: D4 of D7 en D8.

Pin details

NodeMCU Label GPIO pin# D0 16 GPIO alleen lezen/schrijven. Heeft mogelijk geen interrupt-functie. D1 5 Digitale GPIO. -------------------- D2 4 Digitale GPIO. D3 0 Digitale GPIO. ---------- D2 4 I2C:SCL, klok DS3231, PCF8574 ingangsmodules D3 0 I2C:SDA ---------- D4(TX) 2 Ingebouwde, on-board LED. ---------- 3V 3v uitgang G Aarde -------------------- D5 14 Digitale GPIO. D6 12 Digitale GPIO. D7(RX) 13 Werkt voor invoer, bijvoorbeeld infraroodontvangst. D8(TX) 15 Werkt niet voor invoer, bijvoorbeeld infraroodontvangst. ---------- D5 14 SD-kaart: SPI SCK D6 12 SD-kaart: SPI MISO D7(RX) 13 SD-kaart: SPI MOSI D8 15 SD-kaart: CS voor SPI een apparaat in-/uitschakelen. Kan andere digitale pinnen gebruiken. -------------------- RX 03 Systeem-uplod vanaf de IDE, waardoor opnieuw opstarten na uploaden wordt veroorzaakt. TX 01 Systeem-uplod. G Aarde 3V 3v uitgang

Stap 2: Open een gratis Twilio-proefaccount en krijg uw eigen telefoonnummer

Image
Image

Twilio is een bedrijf voor internetcommunicatieplatforms. De producten die in deze instructable worden gebruikt, zijn Twilio programmeerbare berichten en telefoonnummers. Twilio heeft een inventaris van virtuele telefoonnummers die kunnen worden gebruikt om sms-berichten naar elke mobiele telefoon te verzenden en te ontvangen.

In deze stap zult u:

  • Open een Twilio-account, als je er nog geen hebt. Een proefaccount is gratis en vereist geen creditcard. Uw proefaccount heeft een proefsaldo dat wordt gebruikt om telefoonnummers te betalen en sms-berichten uit te wisselen met mobiele telefoons.
  • Koop een Twilio-telefoonnummer. Het is gratis omdat het wordt betaald voor het gebruik van uw proefsaldo.
  • Stuur een bericht vanaf je mobiele telefoon naar je nieuwe telefoonnummer.
  • Zodra Twilio uw bericht heeft ontvangen, wordt er een automatisch antwoordbericht naar uw mobiele telefoon gestuurd.
  • Gebruik de Twilio Console-websitetoepassing om uw berichtenlogboeken te bekijken.

De eerste video hierboven laat zien hoe je een Twilio-account opent. De tweede video laat zien hoe u een Twilio-telefoonnummer kunt kopen.

Link naar de Twilio Console-website om een account te openen.

Link naar de Twilio Console-website om een Twilio-telefoonnummer te kopen.

Uw nieuwe Twilio SMS-compatibele telefoonnummer heeft al een automatisch antwoord geconfigureerd. Stuur als test een sms-bericht vanaf je mobiele telefoon naar je Twilio-telefoonnummer. U krijgt het volgende bericht:

Bedankt voor je bericht. Configureer de sms-URL van uw nummer om dit bericht te wijzigen. Antwoord Hulp voor hulp. Reageer Stop om je af te melden.

Gebruik nu de Twilio Console om uw berichtenlogboeken van de bovenstaande test te bekijken:

www.twilio.com/console/sms/logs

Meer over het gebruik van Twilio

U kunt uw eigen aangepaste automatische reactie maken. Link naar een Studio how-to, hoe je een aangepast SMS-antwoordbericht maakt. Studio is onze Twilio Console-tool met slepen en neerzetten.

U kunt de Twilio Console gebruiken om uw logberichten te bekijken en de logs als CVS te downloaden en in een spreadsheet te laden. U kunt een datum- en tijdbereik selecteren, van en naar telefoonnummers en een status zoals: Niet bezorgd of Verzonden. U heeft ook de mogelijkheid om de logs als CVS-bestanden te downloaden. Aangezien het een limiet van 300 logs per keer heeft, kunt u het selecteren op datum beperken.

Ontwikkelaarslinks

Link naar documentatie en voorbeeldprogramma's om berichten te verzenden.

Link naar programmavoorbeelden om berichtenlogboeken weer te geven.

Link naar eigenschappen van programmaberichten. De lijst met eigenschappen die in de HTTP-aanvraag worden verzonden.

Link om SMS-logboeken voor een bepaalde periode weer te geven.

Stap 3: Stuur een sms vanaf uw NodeMCU

Stuur een sms vanaf uw NodeMCU
Stuur een sms vanaf uw NodeMCU

Download het programma: HttpTwPost.ino, en laad het in je Arduino IDE. Voer in het programma uw WiFi-netwerk-ID en wachtwoord in. Voer uw eigen Twilio-account-SID, auth-token en telefoonnummer in. De Twilio-account-SID en auth-token zijn zichtbaar vanaf het Twilio Console-dashboard. Klik op Auth Token "show", om de Auth Token te bekijken.

// Uw netwerk-SSID en wachtwoordconst char* ssid = "YourNetworkId"; const char* wachtwoord = "YourNetworkPassword"; const char* account_sid = "YourTwilioAccountSID"; const char* auth_token = "YourAuthToken"; String from_number = "+16505551111"; // Nadat codering is toegevoegd, voegt u "+" toe. String naar_nummer = "+16505552222"; String message_body = "Hallo van de NodeMCU.";

Twilio let op: als je telefoonnummers gebruikt met Twilio, kun je het beste nummers opmaken als telefoonnummers in E.164-indeling. E.164-geformatteerde telefoonnummers beginnen met "+" en de landcode. Het telefoonnummer bevat geen spaties, koppeltekens of haakjes. Voorbeeld: +16505551111.

Voer het programma uit. Wanneer het programma start, stuurt het een sms-bericht naar uw mobiele telefoonnummer. Er worden ook berichten geplaatst die kunnen worden bekeken in de Arduino IDE Tools/Serial Monitor. De monitorberichten bevatten de reactie van Twilio.

+++ Installatie.+ Maak verbinding met wifi. …. + Verbonden met WiFi, IP-adres: 192.168.1.76 + Gebruik van vingerafdruk 'BC B0 1A 32 80 5D E6 E4 A2 29 66 2B 08 C8 E0 4C 45 29 3F D0' + Verbinden met api.twilio.com + Verbonden. + Post een HTTP-sms-verzoek. + Verbinding is gesloten. + Reactie: HTTP/1.1 201 GEMAAKT Datum: Do 16 Jul 2020 20:39:49 GMT Inhoudstype: applicatie/xml Inhoudslengte: 878 Verbinding: sluiten Twilio-Concurrent-Requests: 1 Twilio-Request-Id: RQe4fbdd142fca4b2fab24697e74006837 Twilio-Request-Duur: 0.116 Access-Control-Allow-Origin: * Access-Control-Allow-Headers: Accepteren, Autorisatie, Content-Type, If-Match, If-Modified-Since, If-None-Match, If- Ongewijzigd-sinds Access-Control-Allow-Methoden: GET, POST, DELETE, OPTIONS Access-Control-Expose-Headers: ETag Access-Control-Allow-Credentials: true X-Powered-By: AT-5000 X-Shenanigans: geen X-Home-Region: us1 X-API-Domain: api.twilio.com Strict-Transport-Security: max-age=31536000 … + De lus starten.

U kunt de Twilio-berichtenlogboeken bekijken om uw verzonden bericht te bekijken.

Stap 4: Knop om een sms te verzenden

Image
Image

De bovenstaande video toont een ESP8266 NodeMCU die wordt gebruikt om berichten naar een mobiele telefoon te verzenden. In de video is de NodeMCU al gestart en verbonden met het WiFi-netwerk. Wanneer de knop wordt ingedrukt, gaat het ingebouwde LED-lampje branden. Het sms-bericht wordt verzonden naar de Twilio Messaging-service. De dienst stuurt een sms naar mijn mobiele telefoon. Het bericht is ontvangen. De service antwoordt ook aan de NodeMCU dat het bericht in de wachtrij stond om te worden verzonden. Op dat moment was het bericht al aan de telefoon ontvangen. Nadat de NodeMCU het antwoord van Twilio heeft ontvangen, gaat het lampje aan boord uit. Het circuit is klaar om nog een bericht te verzenden.

Hieronder ziet u hoe u het circuit in de video implementeert. Deze stap vereist een breadboard, knop en draden. Voeg een knop toe op het breadboard. De ene kant van de knop wordt aangesloten op de NodeMCU D1-pin. Sluit de andere kant van de knop aan op de NodeMCU-aardingspin (pin G op mijn bord).

Download het programma: HttpTwSendSms.ino en laad het in je Arduino IDE. Hetzelfde als in de vorige stap, voer in het programma uw WiFi-netwerk-ID en wachtwoord in. Voer uw eigen Twilio-account-SID, auth-token en telefoonnummer in.

Wanneer het programma wordt uitgevoerd, maakt de NodeMCU verbinding met het WiFi-netwerk. Wanneer de knop wordt ingedrukt, wordt een bericht verzonden naar het mobiele telefoonnummer.

Stap 5: SMS van een NodeMCU is een geweldige IoT-tool

Nu kunt u de voorbeeldcode en uw Twilio-account gebruiken om sms-berichten via wifi te verzenden.

Proost, Stacy David

Aanbevolen: