Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Dieses anweisbare zeigt, wie Sie SMS-Textnachrichten von Ihrem Arduino-Projekt mit einem ESP8266-Gerät und einer WiFi-Verbindung senden. Warum SMS verwenden? * SMS-Nachrichten sind viel schneller und zuverlässiger als App-Benachrichtigungsnachrichten. * SMS-Nachrichten können auch dort empfangen werden, wo keine mobilen Datenverbindungen verfügbar sind * Es muss keine Drittanbieteranwendung auf einem Smartphone installiert werden. * SMS ist für nachrichtenkritische Anwendungen unerlässlich an das ESP-Gerät. Für Ihr Projekt könnte dies bei einem anderen Trigger- oder Ereignisstatus ausgelöst werden
Schritt 1: Teile
Für diese Demo benötigen Sie:* ESP8266-Gerät. Ich habe mich für das ESP-01-Paket entschieden, aber jedes andere ESP-Paket/-Gerät sollte auch funktionieren.* 3,3-V-Versorgung* WiFi-Verbindung* Kapow-SMS-Konto* Arduino IDE* ESP8266-Programmiermodul.
Schritt 2: SMS-Anbieter
In diesem Projekt werden SMS-Textnachrichten über ein SMS-Gateway im Internet versendet. Dazu müssen Sie sich bei einem SMS-Anbieter anmelden. Abonnenten werden normalerweise pro SMS abgerechnet. Mein gewählter SMS-Dienstleister ist KAPOW. Ich habe festgestellt, dass die meisten SMS-Anbieter in Großbritannien nur mit Gesellschaften mit beschränkter Haftung und nicht mit Einzelpersonen handeln. KAPOW tut es jedoch und bietet einen zuverlässigen und kostengünstigen Service. Um ein Kapow SMS-Konto zu eröffnen, besuchen Sie den untenstehenden Link.
www.kapow.co.uk
Schritt 3: Verdrahten Sie es
Schaltplan für dieses Projekt ist oben
Schritt 4: Der Code
// ESP8266 Demoprojekt zum Senden von SMS über KAPOW (www.kapow.co.uk)
// https://www.instructables.com/id/How-to-Send-SMS-… #include #include char _sKapow_Host = "kapow.co.uk"; int_iKapow_Port =80; /* <<<< ÄNDERN SIE DIE DETAILS UNTEN */ // Ihre WLAN-Details: char _sWiFi_SSID ="IhrWifiPoint"; // <--- ÄNDERUNG !!! char _sWiFi_Password ="IhrWifFiPassword"; // <--- ÄNDERUNG !!! // Angaben zu Ihrem Kapow-Benutzerkonto: char _sKapow_User ="IhrKapowAccount"; // <--- ÄNDERUNG !!! char _sKapow_Password ="IhrKapowPassword"; // <--- ÄNDERUNG !!! char _sKapow_Mobile ="IhrMobil"; // >>> ÄNDERN SIE DIE DETAILS OBEN */ // Taste ist mit GP0 Pin verbunden const int gp0_Pin = 0; const int iMaxAttempts = 10; int gp0_State = 0; Void setup () { Serial.begin (9600); Serial.println("\nDemo: SMS über KAPOW senden"); // Initialisieren Sie den Druckknopf-Pin als Eingang // und ziehen Sie ihn hoch (intern) pinMode (gp0_Pin, INPUT_PULLUP); // Wifi-Verbindung herstellen WifiConnect(); aufrechtzuerhalten. Void Schleife () {// Druckknopfzustand lesen gp0_State = digitalRead (gp0_Pin); // ist der Druckknopf tief gedrückt? if (gp0_State==0) { Serial.println("Taste gedrückt, um SMS zu senden…"); SendSmsKapow(_sKapow_Mobile, "Dies+ist+ein+Test+SMS+Nachricht+gesendet+von+Ihrem+ESP+Gerät"); } Serial.println ("Schlafen für 1 Sekunde"); Verzögerung (1000); aufrechtzuerhalten. Void WifiConnect () { Serial.print ("\nVerbindung mit WiFi: "); Serial.println (_sWiFi_SSID); WiFi.begin(_sWiFi_SSID, _sWiFi_Password); while (WiFi.status () != WL_CONNECTED) {// erneut versuchen nach einem zweiten Serial.print ("."); Verzögerung (1000); } if (WiFi.status () == WL_CONNECTED) Serial.println ("Mit WiFi verbunden"); } bool SendSmsKapow(char* sMobile, char* sMessage) { WiFiClient clientSms; int iAttempts=0; Serial.print ("Verbindung zum KAPOW-Host herstellen"); während (!clientSms.connect(_sKapow_Host, _iKapow_Port)) {Serial.print("."); iVersuche++; if (iAttempts> iMaxAttempts) {Serial.println ("\nVerbindung zu KAPOW fehlgeschlagen"); true zurückgeben; } Verzögerung (1000); } Serial.println("\nMit KAPOW verbunden"); Verzögerung (1000); Serial.println ("HTTP-Anfrage an KAPOW senden:"); //Eine beispielhafte GET-Anfrage wäre: //https://www.kapow.co.uk/scripts/sendsms.php?username=test&password=test&mobile=07777123456&sms=Test+message char sHttp[500]= ""; strcat(sHttp, "GET /scripts/sendsms.php?username="); strcat(sHttp, _sKapow_User); strcat(sHttp, "&password="); strcat(sHttp, _sKapow_Password); strcat(sHttp, "&mobile="); strcat(sHttp, sMobile); strcat(sHttp, "&sms="); strcat(sHttp, sMessage); strcat(sHttp, "&returnid=TRUE\n\n"); Serial.println (sHttp); clientSms.print(sHttp); Serial.println("Warten auf Antwort (10 Sek.)…"); Verzögerung (10 * 1000); char sReply[100] = ""; int iPos = 0; while (clientSms.available()) { char c = clientSms.read(); Serial.print (c); sAntwort[iPos] = c; iPos++; if (iPos == 99) Pause; } sReply[iPos] = '\0'; // prüfen, ob die Antwort OK enthält bool bResult = (strstr(sReply, "OK") != NULL); if (bResult) Serial.println("\nSMS: Erfolgreich gesendet"); else Serial.println("\nSMS: Senden fehlgeschlagen"); if (!clientSms.connected()) {Serial.println("Verbindung von KAPOW trennen"); clientSms.stop(); } bResult zurückgeben; }
Schritt 5: Flashen Sie den Code
Es gibt viele andere detaillierte Anleitungen, die zeigen, wie man ein ESP8266-Gerät flasht. Also gebe ich nur einen Überblick über mein Setup. Kurz gesagt, ich verwende eine USB-zu-Seriell-FTDI-Schnittstelle und ziehe GP0 beim Zurücksetzen auf niedrig, um den Bootloader-Flash-Prozess zu starten. Ich habe mein eigenes Stripboard-Programmiergerät der Einfachheit halber gebaut. Es hat * eine Buchse für ein ESP-01-Gerät* eine Buchse für die rote FTDI-Schnittstelle zum Anschluss an den PC-Host über USB.* Tasten für RESET, GP0, GP2 TO GROUNDSie können das ESP-Gerät mit den vom FTDI gelieferten 3,3 V flashen Schnittstelle. Stellen Sie sicher, dass die FTDI-Jumper-Einstellungen auch auf 3,3 V eingestellt sind.
Schritt 6: Drücken Sie die Taste
Sie können das Projekt entweder an FTDI für die serielle Protokollausgabe angeschlossen oder eigenständig (auf einem Steckbrett mit externer Stromversorgung) testen. Es wird empfohlen, eine externe 3,3-V-Versorgung zu verwenden, da der FTDI-Versorgungsstrom schwach ist. Die FTDI 3.3v-Versorgung funktionierte jedoch auch für mich, da mein WLAN-Router in Reichweite war. Lassen Sie den ESP an den seriellen / USB-Port angeschlossen, damit Sie das laufende serielle Debug-Protokoll mit dem Serial Monitor der Arduino IDE überwachen können die mit GP0 verbundene Taste. Dadurch wird die folgende SMS-Nachricht gesendet. Überprüfen Sie Ihr Telefon auf die empfangene SMS-Textnachricht. Job erledigt.