INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Hierdie instruksies demonstreer hoe u sms -boodskappe vanaf u arduino -projek met 'n ESP8266 -toestel en 'n WiFi -verbinding kan stuur. * SMS -boodskappe kan ook ontvang word waar mobiele dataverbindings nie beskikbaar is nie * Geen derdeparty -toepassing hoef op 'n slimfoon geïnstalleer te word nie. * SMS is noodsaaklik vir boodskapkritiese toepassings. Vir u projek kan dit veroorsaak word op 'n ander sneller of gebeurtenisstatus
Stap 1: Onderdele
Vir hierdie demonstrasie benodig u:* ESP8266 -toestel. Ek het die ESP-01 pakket gekies, maar enige ander ESP pakket/toestel behoort ook te werk.* 3.3v toevoer* WiFi verbinding* Kapow SMS rekening* Arduino IDE* ESP8266 programmeermodule.
Stap 2: SMS -verskaffer
In hierdie projek word SMS -teksboodskappe via 'n SMS -gateway op die internet gestuur. Hiervoor moet u inteken op 'n SMS -verskaffer. Abonnees word normaalweg per SMS -heffing gehef. My gekose SMS -diensverskaffer is KAPOW. Ek het gevind dat die meeste sms -verskaffers in die Verenigde Koninkryk slegs met beperkte maatskappye handel, en nie met individue nie. KAPOW doen wel en lewer 'n betroubare en koste -effektiewe diens. Om 'n Kapow SMS -rekening oop te maak, besoek die onderstaande skakel.
www.kapow.co.uk
Stap 3: Verbind dit
Bedradingsdiagram vir hierdie projek is hierbo
Stap 4: Die kode
// ESP8266 Demoprojek om SMS via KAPOW te stuur (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; / * <<<< VERANDER DIE DETAILS HIERONDER */ // U WiFi -besonderhede: char _sWiFi_SSID = "YourWifiPoint"; // <--- VERANDER !!! char _sWiFi_Password = "YourWifFiPassword"; // <--- VERANDER !!! // Jou Kapow -gebruikersrekeningbesonderhede: char _sKapow_User = "YourKapowAccount"; // <--- VERANDER !!! char _sKapow_Password = "YourKapowPassword"; // <--- VERANDER !!! char _sKapow_Mobile = "YourMobile"; // >>> VERANDER DIE BESONDERHEDE BO */ // knoppie is gekoppel aan GP0 Pin const int gp0_Pin = 0; const int iMaxAttempts = 10; int gp0_State = 0; ongeldige opstelling () {Serial.begin (9600); Serial.println ("\ nDemo: Stuur SMS via KAPOW"); // initialiseer die drukknoppen as 'n invoer // en trek dit hoog (intern) pinMode (gp0_Pin, INPUT_PULLUP); // vestig Wifi -verbinding WifiConnect (); } leemte lus () {// lees drukknoppie staat gp0_State = digitalRead (gp0_Pin); // word die drukknop laag ingedruk? if (gp0_State == 0) {Serial.println ("Knoppie ingedruk om SMS te stuur …"); SendSmsKapow (_sKapow_Mobile, "This+is+a+Test+SMS+Message+sent+from+your+ESP+device"); } Serial.println ("Slaap vir 1 sekonde"); vertraging (1000); } ongeldig WifiConnect () {Serial.print ("\ nKoppel aan WiFi:"); Serial.println (_sWiFi_SSID); WiFi.begin (_sWiFi_SSID, _sWiFi_Password); terwyl (WiFi.status ()! = WL_CONNECTED) {// probeer weer na 'n tweede Serial.print ("."); vertraging (1000); } if (WiFi.status () == WL_CONNECTED) Serial.println ("Koppel aan WiFi"); } bool SendSmsKapow (char* sMobile, char* sMessage) {WiFiClient clientSms; int iAttempts = 0; Serial.print ("Koppel aan KAPOW -gasheer"); terwyl (! clientSms.connect (_sKapow_Host, _iKapow_Port)) {Serial.print ("."); iAttempts ++; if (iAttempts> iMaxAttempts) {Serial.println ("\ n Kon nie aan KAPOW koppel nie"); terugkeer waar; } vertraging (1000); } Serial.println ("\ nKoppel aan KAPOW"); vertraging (1000); Serial.println ("Stuur HTTP -versoek na KAPOW:"); // 'n Voorbeeld GET -versoek sou wees: //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 ("Wag vir reaksie (10 sekondes) …"); vertraging (10 * 1000); char sReply [100] = ""; int iPos = 0; terwyl (clientSms.available ()) {char c = clientSms.read (); Reeks.afdruk (c); sReply [iPos] = c; iPos ++; as (iPos == 99) breek; } sReply [iPos] = '\ 0'; // kyk of die antwoord OK bevat bool bResult = (strstr (sReply, "OK")! = NULL); if (bResult) Serial.println ("\ nSMS: Suksesvol gestuur"); anders Serial.println ("\ nSMS: kon nie stuur nie"); if (! clientSms.connected ()) {Serial.println ("Ontkoppel van KAPOW"); clientSms.stop (); } gee bResult terug; }
Stap 5: Flits die kode
Daar is baie ander gedetailleerde instruksies wat wys hoe om 'n ESP8266 -toestel te flitsprogrammeer. Dus gee ek net 'n oorsig van my opstelling. In 'n neutedop gebruik ek 'n USB -na -Seriële FTDI -koppelvlak, en trek GP0 laag op reset om die selflaaiproses te begin. Dit het* 'n aansluiting vir 'n ESP-01-toestel* 'n aansluiting vir die rooi FTDI-koppelvlak om via 'n USB-aansluiting in 'n rekenaargashouer te koppel. koppelvlak. Maak seker dat die FTDI -trui -instellings ook ingestel is op 3.3v.
Stap 6: Druk die knoppie
U kan die projek toets, óf gekoppel aan FTDI vir seriële aanmelduitsette, of selfstandig (op broodbord met eksterne kragtoevoer). Dit word aanbeveel dat u 'n eksterne 3.3v -toevoer gebruik, aangesien die FTDI -stroomstroom erak is. Die FTDI 3.3v -toevoer het egter ook vir my gewerk, aangesien my wifi -router binne bereik was. Laat die ESP gekoppel aan die seriële/usb -poort, sodat u die lopende seriële ontfoutingslogboek kan monitor met behulp van die Arduino IDE se seriële monitor. die knoppie wat aan GP0 gekoppel is. Dit sal die SMS -boodskap soos hieronder uitstuur. Kontroleer u telefoon vir die ontvangde SMS -boodskap. Werk gedoen.