Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Denne instruksen viser hvordan du sender SMS -meldinger fra arduino -prosjektet ditt ved hjelp av en ESP8266 -enhet og en WiFi -tilkobling. Hvorfor bruke SMS?* SMS -meldinger er mye raskere og påliteligere enn appvarslingsmeldinger. * SMS -meldinger kan også mottas der mobildatatilkoblinger ikke er tilgjengelige * Ingen tredjepartsapplikasjon må installeres på en smarttelefon. * SMS er avgjørende for meldingskritiske applikasjoner. Dette prosjektet sender ganske enkelt en SMS -tekstmelding ved å trykke på en knapp som er koblet til ESP -enheten. For prosjektet ditt kan dette utløses på en annen trigger- eller hendelsesstatus
Trinn 1: Deler
For denne demoen trenger du:* ESP8266 -enhet. Jeg valgte ESP-01-pakken, men enhver annen ESP-pakke/enhet burde også fungere.* 3.3v forsyning* WiFi-tilkobling* Kapow SMS-konto* Arduino IDE* ESP8266 Programmeringsmodul.
Trinn 2: SMS -leverandør
I dette prosjektet sendes SMS -tekstmeldinger via en SMS -gateway på internett. For dette må du abonnere på en SMS -leverandør. Abonnenter belastes normalt per tekstmelding. Min valgte SMS -tjenesteleverandør er KAPOW. Jeg fant ut at de fleste SMS -leverandører i Storbritannia bare vil håndtere aksjeselskaper, og ikke enkeltpersoner. Imidlertid gjør KAPOW en pålitelig og kostnadseffektiv tjeneste. For å åpne en Kapow SMS -konto, gå til lenken nedenfor.
www.kapow.co.uk
Trinn 3: Koble den til
Koblingsskjema for dette prosjektet er ovenfor
Trinn 4: Koden
// ESP8266 Demoprosjekt for å sende SMS via 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; / * <<<< ENDRE DETALJENE NEDENFOR */ // Dine WiFi -detaljer: char _sWiFi_SSID = "YourWifiPoint"; // <--- ENDRE !!! char _sWiFi_Password = "YourWifFiPassword"; // <--- ENDRE !!! // Detaljer om din Kapow -brukerkonto: char _sKapow_User = "YourKapowAccount"; // <--- ENDRE !!! char _sKapow_Password = "YourKapowPassword"; // <--- ENDRE !!! char _sKapow_Mobile = "YourMobile"; // >>> ENDRE DETALJENE OVER */ // -knappen er koblet til GP0 Pin const int gp0_Pin = 0; const int iMaxAttempts = 10; int gp0_State = 0; ugyldig oppsett () {Serial.begin (9600); Serial.println ("\ nDemo: Send SMS via KAPOW"); // initialiser trykknapppinnen som en inngang // og dra den opp høyt (internt) pinMode (gp0_Pin, INPUT_PULLUP); // opprette Wifi -tilkobling WifiConnect (); } void loop () {// lese trykknappstatus gp0_State = digitalRead (gp0_Pin); // er trykknappen nede? if (gp0_State == 0) {Serial.println ("Trykk på knappen for å sende SMS …"); SendSmsKapow (_sKapow_Mobile, "This+is+a+Test+SMS+Message+sent+from+your+ESP+device"); } Serial.println ("Sove i 1 sekund"); forsinkelse (1000); } ugyldig WifiConnect () {Serial.print ("\ nKobler til WiFi:"); Serial.println (_sWiFi_SSID); WiFi.begin (_sWiFi_SSID, _sWiFi_Password); mens (WiFi.status ()! = WL_CONNECTED) {// prøv igjen etter et annet Serial.print ("."); forsinkelse (1000); } if (WiFi.status () == WL_CONNECTED) Serial.println ("Koblet til WiFi"); } bool SendSmsKapow (char* sMobile, char* sMessage) {WiFiClient clientSms; int iAttempts = 0; Serial.print ("Koble til KAPOW -vert"); mens (! clientSms.connect (_sKapow_Host, _iKapow_Port)) {Serial.print ("."); iAttempts ++; if (iAttempts> iMaxAttempts) {Serial.println ("\ nKlarte ikke å koble til KAPOW"); returner sant; } forsinkelse (1000); } Serial.println ("\ nKoblet til KAPOW"); forsinkelse (1000); Serial.println ("Sender HTTP -forespørsel til KAPOW:"); // Et eksempel på en GET -forespørsel vil væ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 ("Venter på svar (10 sekunder) …"); forsinkelse (10 * 1000); char sReply [100] = ""; int iPos = 0; mens (clientSms.available ()) {char c = clientSms.read (); Serial.print (c); sReply [iPos] = c; iPos ++; hvis (iPos == 99) går i stykker; } sReply [iPos] = '\ 0'; // sjekk om svaret inneholder OK bool bResult = (strstr (sReply, "OK")! = NULL); if (bResult) Serial.println ("\ nSMS: Sendt med hell"); ellers Serial.println ("\ nSMS: Kunne ikke sende"); if (! clientSms.connected ()) {Serial.println ("Koble fra KAPOW"); clientSms.stop (); } returner bResult; }
Trinn 5: Flash -koden
Det er mange andre detaljerte instrukser som viser hvordan du blinkerprogrammerer en ESP8266 -enhet. Så jeg vil bare gi en oversikt over oppsettet mitt. I et nøtteskall bruker jeg aUSB til Serial FTDI -grensesnitt, og trekker GP0 lavt ved tilbakestilling for å starte bootloader -blinkprosessen. Jeg bygde min egen stripboard -programmeringsenhet for enkelhets skyld. Den har* en kontakt for en ESP-01-enhet* en kontakt for det røde FTDI-grensesnittet for å koble til PC-vert via USB.* Knapper for RESET, GP0, GP2 TO GROUND Du kan blinke ESP-enheten ved å bruke 3.3v levert av FTDI grensesnitt. Sørg for at FTDI -jumperinnstillingene også er satt til 3,3v.
Trinn 6: Trykk på knappen
Du kan teste prosjektet enten koblet til FTDI for seriell loggutgang, eller frittstående (på brødbrett med ekstern strømforsyning). Det rekommenderes at du bruker en ekstern 3.3v forsyning, ettersom FTDI -strømmen er erak. Imidlertid fungerte FTDI 3.3v -forsyning også for meg, ettersom wifi -ruteren min var innen rekkevidde. La ESP -en være koblet til seriell/usb -porten, slik at du kan overvåke den serielle feilsøkingsloggen som kjører ved hjelp av Arduino IDEs serielle skjerm. På oppstart … Trykk på knappen som er koblet til GP0. Dette sender ut SMS -meldingen som beskrevet nedenfor. Sjekk telefonen din for den mottatte SMS -meldingen. Jobben er utført.