Sommario:

Come inviare messaggi di testo SMS dal tuo progetto Arduino ESP: 6 passaggi
Come inviare messaggi di testo SMS dal tuo progetto Arduino ESP: 6 passaggi

Video: Come inviare messaggi di testo SMS dal tuo progetto Arduino ESP: 6 passaggi

Video: Come inviare messaggi di testo SMS dal tuo progetto Arduino ESP: 6 passaggi
Video: ChatGPT: come usare l'intelligenza artificiale nei progetti con Arduino 2024, Dicembre
Anonim
Come inviare messaggi di testo SMS dal tuo progetto Arduino ESP
Come inviare messaggi di testo SMS dal tuo progetto Arduino ESP

Questa istruzione dimostra come inviare messaggi di testo SMS dal tuo progetto arduino utilizzando un dispositivo ESP8266 e una connessione WiFi. Perché usare gli SMS?* I messaggi SMS sono molto più veloci e affidabili dei messaggi di notifica delle app. * I messaggi SMS possono essere ricevuti anche dove le connessioni dati mobili non sono disponibili * Non è necessario installare un'applicazione di terze parti su uno smartphone.* Gli SMS sono essenziali per le applicazioni di messaggistica critica. Questo progetto invia semplicemente un messaggio di testo SMS premendo un pulsante collegato al dispositivo ESP. Per il tuo progetto questo potrebbe essere attivato su qualche altro stato di trigger o evento

Passaggio 1: parti

Parti
Parti
Parti
Parti

Per questa demo, avrai bisogno di:* dispositivo ESP8266. Ho scelto il pacchetto ESP-01, ma dovrebbe funzionare anche qualsiasi altro pacchetto/dispositivo ESP.* Alimentazione 3.3v* Connessione WiFi* Account SMS Kapow* Arduino IDE* Modulo di programmazione ESP8266.

Passaggio 2: provider SMS

In questo progetto, i messaggi di testo SMS vengono inviati tramite un gateway SMS su Internet. Per questo dovrai abbonarti a un provider di SMS. Gli abbonati pagano normalmente in base al messaggio di testo. Il mio fornitore di servizi SMS scelto è KAPOW. Ho scoperto che la maggior parte dei provider di SMS nel Regno Unito si occuperà solo di società a responsabilità limitata e non di individui. Tuttavia, KAPOW lo fa e fornisce un servizio affidabile ed economico. Per aprire un account SMS Kapow, visita il link sottostante.

www.kapow.co.uk

Passaggio 3: cablarlo

Cablaggio
Cablaggio

Lo schema elettrico per questo progetto è sopra

Passaggio 4: il codice

// Progetto demo ESP8266 per inviare SMS tramite 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; /* <<<< MODIFICA I DETTAGLI SOTTO */ // I tuoi dettagli WiFi: char _sWiFi_SSID ="YourWifiPoint"; // <--- CAMBIA !!! char _sWiFi_Password ="YourWifFiPassword"; // <--- CAMBIA !!! // Dettagli del tuo account utente Kapow: char _sKapow_User ="YourKapowAccount"; // <--- CAMBIA !!! char _sKapow_Password ="YourKapowPassword"; // <--- CAMBIA !!! char _sKapow_Mobile ="Il tuo cellulare"; // >>> CAMBIA I DETTAGLI SOPRA */ // il pulsante è connesso al Pin GP0 const int gp0_Pin = 0; const int iMaxAttempts = 10; int gp0_State = 0; void setup() { Serial.begin(9600); Serial.println("\nDemo: invia SMS tramite KAPOW"); // inizializza il pin del pulsante come input // e alzalo in alto (internamente) pinMode(gp0_Pin, INPUT_PULLUP); // stabilisce la connessione Wifi WifiConnect(); } void loop() { // legge lo stato del pulsante gp0_State = digitalRead(gp0_Pin); // il pulsante è premuto a livello basso? if (gp0_State==0) { Serial.println("Pulsante premuto per inviare SMS…"); SendSmsKapow(_sKapow_Mobile, "Questo+è+un+Test+SMS+messaggio+inviato+dal+tuo+dispositivo+ESP"); } Serial.println("Sleeping per 1 secondo"); ritardo(1000); } void WifiConnect() { Serial.print("\nConnessione al WiFi: "); Serial.println(_sWiFi_SSID); WiFi.begin(_sWiFi_SSID, _sWiFi_Password); while (WiFi.status() != WL_CONNECTED) { // riprova dopo un secondo Serial.print("."); ritardo(1000); } if (WiFi.status() == WL_CONNECTED) Serial.println("Connesso al WiFi"); } bool SendSmsKapow(char* sMobile, char* sMessage) { WiFiClient clientSms; int iTentativi=0; Serial.print("Connessione all'host KAPOW"); while (!clientSms.connect(_sKapow_Host, _iKapow_Port)) { Serial.print("."); iTentativi++; if (iAttempts > iMaxAttempts) { Serial.println("\nImpossibile connettersi a KAPOW"); restituire vero; } ritardo(1000); } Serial.println("\nConnesso a KAPOW"); ritardo(1000); Serial.println("Invio richiesta HTTP a KAPOW:"); //Un esempio di richiesta GET sarebbe: //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("In attesa di risposta (10 sec)…"); ritardo (10 * 1000); char sReply[100] = ""; int iPos = 0; while (clientSms.available()) { char c = clientSms.read(); Serial.print(c); sReply[iPos] = c; iPos++; if (iPos == 99) break; } sReply[iPos] = '\0'; // controlla se la risposta contiene OK bool bResult = (strstr(sReply, "OK") != NULL); if (bRisultato) Serial.println("\nSMS: inviato con successo"); else Serial.println("\nSMS: impossibile inviare"); if (!clientSms.connected()) { Serial.println("Disconnessione da KAPOW"); clientSms.stop(); } restituisce bResult; }

Passaggio 5: lampeggia il codice

Flash il codice
Flash il codice
Flash il codice
Flash il codice

Ci sono molte altre istruzioni dettagliate che mostrano come programmare il flash di un dispositivo ESP8266. Quindi darò solo una panoramica della mia configurazione. In poche parole, uso un'interfaccia FTDI da USB a seriale e tiro GP0 basso al ripristino per avviare il processo di flashing del bootloader. Ho creato il mio dispositivo di programmazione stripboard per comodità. Ha * una presa per un dispositivo ESP-01* una presa per l'interfaccia FTDI rossa da collegare all'host del PC tramite USB.* Pulsanti per RESET, GP0, GP2 A TERRA È possibile eseguire il flashing del dispositivo ESP utilizzando il 3.3v fornito dall'FTDI interfaccia. Assicurati che anche le impostazioni del ponticello FTDI siano impostate su 3.3v.

Passaggio 6: premere il pulsante

Premi il bottone !
Premi il bottone !
Premi il bottone !
Premi il bottone !
Premi il bottone !
Premi il bottone !
Premi il bottone !
Premi il bottone !

È possibile testare il progetto sia collegato a FTDI per l'uscita di registrazione seriale, sia autonomo (su breadboard con alimentazione esterna). Si consiglia di utilizzare un'alimentazione esterna da 3,3 V, poiché la corrente di alimentazione FTDI è scarsa. Tuttavia, l'alimentazione FTDI 3.3v ha funzionato anche per me, poiché il mio router wifi era a portata di mano. Lasciare l'ESP collegato alla porta seriale/usb in modo da poter monitorare il registro di debug seriale in esecuzione utilizzando il monitor seriale dell'IDE Arduino. All'accensione…Premere il pulsante collegato a GP0. Questo invierà il messaggio SMS come di seguito. Controlla il tuo telefono per il messaggio di testo SMS ricevuto. Lavoro fatto.

Consigliato: