Como enviar mensagens de texto SMS do seu projeto Arduino ESP: 6 etapas
Como enviar mensagens de texto SMS do seu projeto Arduino ESP: 6 etapas
Anonim
Como enviar mensagens de texto SMS de seu projeto Arduino ESP
Como enviar mensagens de texto SMS de seu projeto Arduino ESP

Este instrutível demonstra como enviar mensagens de texto SMS de seu projeto Arduino usando um dispositivo ESP8266 e uma conexão WiFi. Por que usar SMS? * As mensagens SMS são muito mais rápidas e confiáveis do que as mensagens de notificação de aplicativos. * Mensagens SMS também podem ser recebidas onde as conexões de dados móveis não estão disponíveis * Nenhum aplicativo de terceiros precisa ser instalado em um smartphone. * O SMS é essencial para aplicativos de mensagens críticas. Este projeto simplesmente envia uma mensagem de texto SMS ao pressionar um botão conectado para o dispositivo ESP. Para o seu projeto, isso pode ser acionado em algum outro acionador ou status de evento

Etapa 1: Peças

Peças
Peças
Peças
Peças

Para esta demonstração, você precisará de: * Dispositivo ESP8266. Escolhi o pacote ESP-01, mas qualquer outro pacote / dispositivo ESP também deve funcionar. * Fornecimento de 3.3v * Conexão WiFi * Conta Kapow SMS * Arduino IDE * Módulo de programação ESP8266.

Etapa 2: Provedor de SMS

Neste projeto, as mensagens de texto SMS são enviadas por meio de um gateway SMS na internet. Para isso, você precisará se inscrever em um provedor de SMS. Os assinantes são normalmente cobrados por mensagem de texto. Meu provedor de serviços de SMS escolhido é KAPOW. Descobri que a maioria dos provedores de SMS no Reino Unido negociam apenas com empresas limitadas, e não indivíduos. No entanto, KAPOW faz e fornece um serviço confiável e de baixo custo. Para abrir uma conta SMS Kapow, visite o link abaixo.

www.kapow.co.uk

Etapa 3: conectando tudo

Fiação
Fiação

O diagrama de fiação para este projeto está acima

Etapa 4: O Código

// Projeto de demonstração ESP8266 para enviar 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; / * <<<< ALTERAR OS DETALHES ABAIXO * / // Seus detalhes WiFi: char _sWiFi_SSID = "SeuWifiPoint"; // <--- MUDAR !!! char _sWiFi_Password = "YourWifFiPassword"; // <--- MUDAR !!! // Detalhes da sua conta de usuário Kapow: char _sKapow_User = "YourKapowAccount"; // <--- MUDAR !!! char _sKapow_Password = "YourKapowPassword"; // <--- MUDAR !!! char _sKapow_Mobile = "SeuMóvel"; // >>> ALTERAR OS DETALHES ACIMA * / // o botão está conectado ao GP0 Pin const int gp0_Pin = 0; const int iMaxAttempts = 10; int gp0_State = 0; void setup () {Serial.begin (9600); Serial.println ("\ nDemo: Enviar SMS via KAPOW"); // inicializar o pino do botão como uma entrada // e colocá-lo alto (internamente) pinMode (gp0_Pin, INPUT_PULLUP); // estabelece a conexão Wifi WifiConnect (); } void loop () {// ler o estado do botão de ação gp0_State = digitalRead (gp0_Pin); // o botão de pressão está pressionado? if (gp0_State == 0) {Serial.println ("Botão pressionado para enviar SMS…"); SendSmsKapow (_sKapow_Mobile, "Este + é + um + Teste + SMS + Mensagem + enviada + de + seu + dispositivo ESP +"); } Serial.println ("Dormindo por 1 segundo"); atraso (1000); } void WifiConnect () {Serial.print ("\ nConectando ao WiFi:"); Serial.println (_sWiFi_SSID); WiFi.begin (_sWiFi_SSID, _sWiFi_Password); while (WiFi.status ()! = WL_CONNECTED) {// tentar novamente após um segundo Serial.print ("."); atraso (1000); } if (WiFi.status () == WL_CONNECTED) Serial.println ("Conectado ao WiFi"); } bool SendSmsKapow (char * sMobile, char * sMessage) {WiFiClient clientSms; int iAttempts = 0; Serial.print ("Conectando ao host KAPOW"); while (! clientSms.connect (_sKapow_Host, _iKapow_Port)) {Serial.print ("."); iAttempts ++; if (iAttempts> iMaxAttempts) {Serial.println ("\ nFalha ao conectar ao KAPOW"); return true; } atraso (1000); } Serial.println ("\ nConectado ao KAPOW"); atraso (1000); Serial.println ("Enviando solicitação HTTP para KAPOW:"); // Um exemplo de solicitação GET seria: //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, "& senha ="); 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 ("Aguardando resposta (10 segundos)…"); atraso (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) quebra; } sReply [iPos] = '\ 0'; // verifique se a resposta contém OK bool bResult = (strstr (sReply, "OK")! = NULL); if (bResult) Serial.println ("\ nSMS: Enviado com sucesso"); else Serial.println ("\ nSMS: Falha ao enviar"); if (! clientSms.connected ()) {Serial.println ("Desconectando do KAPOW"); clientSms.stop (); } return bResult; }

Etapa 5: atualize o código

Flash o código
Flash o código
Flash o código
Flash o código

Existem muitos outros instructables detalhados que mostram como programar em flash um dispositivo ESP8266. Então, vou apenas dar uma visão geral da minha configuração. Em poucas palavras, eu uso a interface USB para FTDI serial e puxo GP0 para baixo na reinicialização para iniciar o processo de flash do bootloader. Construí meu próprio dispositivo de programação de stripboard por conveniência. Ele tem * um soquete para um dispositivo ESP-01 * um soquete para a interface FTDI vermelha para conectar ao host do PC via USB. * Botões para RESET, GP0, GP2 TO GROUNDVocê pode atualizar o dispositivo ESP usando os 3,3v fornecidos pelo FTDI interface. Certifique-se de que as configurações de jumper FTDI também estejam definidas para 3,3v.

Etapa 6: Pressione o botão

Aperte o botão !
Aperte o botão !
Aperte o botão !
Aperte o botão !
Aperte o botão !
Aperte o botão !
Aperte o botão !
Aperte o botão !

Você pode testar o projeto conectado a FTDI para saída de registro serial ou autônomo (na placa de ensaio com fonte de alimentação externa). Recomenda-se usar uma fonte externa de 3,3 V, pois a corrente de alimentação FTDI está acabando. No entanto, o fornecimento FTDI 3.3v também funcionou para mim, pois meu roteador wi-fi estava ao alcance de minhas mãos. Deixe o ESP conectado à porta serial / USB para que você possa monitorar o log de depuração serial em execução usando o Serial Monitor do IDE do Arduino. Ao ligar … Pressione o botão conectado ao GP0. Isso enviará a mensagem SMS abaixo. Verifique no seu telefone a mensagem de texto SMS recebida. Trabalho concluído.