Após montar o módulo Wi-Fi na placa Arduino, operar este aplicativo no celular para conectar a comunicação Wi-Fi entre o celular e o Arduino, pressionando os 10 botões fornecidos no celular, reconhecendo o pressionamento dos botões no o Arduino, e operando a operação desejada. app que permite
- Botão único: 10
(Dados enviados ao Arduino quando cada botão é pressionado)
Botão 1: '0' (hexadecimal 30) Botão 2: '1' (hexadecimal 31)
Botão 3: '2' (hexadecimal 32) Botão 4: '3' (hexadecimal 33)
Botão 5: '4' (hexadecimal 34) Botão 6: '5' (hexadecimal 35)
Botão 7: '6' (hexadecimal 36) Botão 8: '7' (hexadecimal 37)
Botão 9: '8' (hexadecimal 38) Botão 10: '9' (hexadecimal 39)
(Exemplo de programa em Arduino)
O LED conectado à porta digital 5 do Arduino acende quando o botão 1 é pressionado uma vez e desliga quando pressionado novamente. (Ação de alternância)
///// Controlando LEDs via Wi-Fi
Inclua SoftwareSerial.h na primeira parte.
SoftwareSerial esp8266(2,3);
void setup()
{
Serial.begin(9600);
esp8266.begin(9600); // taxa de transmissão de esp
pinMode(5, OUTPUT);
digitalWrite(, BAIXO);
sendData("AT+RST\r\n",2000); // reset do módulo
sendData("AT+CWMODE=2\r\n",1000); // definir como AP (ponto de acesso)
sendData("AT+CIFSR\r\n",1000); // obtém o endereço IP
sendData("AT+CIPMUX=1\r\n",1000); // definido para múltiplas conexões
sendData("AT+CIPSERVER=1,80\r\n",1000); // servidor na porta 80
}
laço vazio()
{
if(esp8266.available()) // se o esp está enviando uma mensagem
{
if(esp8266.find("+IPD,"))
{
atraso(200); // lê todos os dados seriais
int connectionId = esp8266.read();
esp8266.find("?");
int Número = esp8266.read();
if(Número==0x30){
if(digitalRead(5)==HIGH) digitalWrite(5, LOW);
senão digitalWrite(5, HIGH);
}
// fecha comando
String comandoFechar = "AT+CIPCLOSE=";
closeCommand += connectionId; // anexar id de conexão
closeCommand += "\r\n";
sendData(closeCommand,1000); // fecha conexão
}
}
}
String sendData(String command, const int timeout)
{
String resposta = "";
esp8266.print(comando); // envia caractere lido para esp8266
tempo int longo = millis();
while( (tempo+tempo limite) > millis())
{
while(esp8266.available())
{
// Se houver dados recebidos em esp, envie serialmente
char c = esp8266.read(); // lê o próximo caractere
resposta+=c;
}
}
resposta de retorno;
}
Atualizado em
17 de nov. de 2022