După montarea modulului Wi-Fi pe placa Arduino, operați această aplicație pe telefonul mobil pentru a conecta comunicația Wi-Fi între telefonul mobil și Arduino, apăsând cele 10 butoane furnizate pe telefonul mobil pentru a recunoaște apăsarea butonului de pe Arduino pentru a efectua operația dorită.aplicație care permite
- Un singur buton: 10
(Date trimise către Arduino atunci când fiecare buton este apăsat)
Butonul 1: „0” (hexazecimal 30) Butonul 2: „1” (hexazecimal 31)
Butonul 3: „2” (hexazecimal 32) Butonul 4: „3” (hexazecimal 33)
Butonul 5: „4” (hexazecimal 34) Butonul 6: „5” (hexazecimal 35)
Butonul 7: „6” (hexazecimal 36) Butonul 8: „7” (hexazecimal 37)
Butonul 9: „8” (hexazecimal 38) Butonul 10: „9” (hexazecimal 39)
(Exemplu de program în Arduino)
LED-ul conectat la portul digital 5 al Arduino se aprinde când butonul 1 este apăsat o dată și se stinge când este apăsat din nou. (Comutare acțiune)
///// Controlul LED-urilor prin Wi-Fi
Includeți SoftwareSerial.h în prima parte.
SoftwareSerial esp8266(2,3);
void setup()
{
Serial începe (9600);
esp8266.begin(9600); // baud rate of esp
pinMode(5, IEȘIRE);
digitalWrite(, LOW);
sendData("AT+RST\r\n",2000); // resetarea modulului
sendData("AT+CWMODE=2\r\n",1000); // setat ca AP (punct de acces)
sendData("AT+CIFSR\r\n",1000); // obține adresa ip
sendData("AT+CIPMUX=1\r\n",1000); // setat la mai multe conexiuni
sendData("AT+CIPSERVER=1,80\r\n",1000); // server pe portul 80
}
buclă goală ()
{
if(esp8266.available()) // dacă esp trimite un mesaj
{
if(esp8266.find("+IPD,"))
{
întârziere (200); // citește toate datele seriale
int connectionId = esp8266.read();
esp8266.find("?");
int Număr = esp8266.read();
dacă(Număr==0x30){
if(digitalRead(5)==HIGH) digitalWrite(5, LOW);
else digitalWrite(5, HIGH);
}
// comandă de închidere
String closeCommand = "AT+CIPCLOSE=";
closeCommand += connectionId; // atașați ID-ul conexiunii
closeCommand += "\r\n";
sendData(closeCommand,1000); // strânsă legătură
}
}
}
String sendData (comandă String, const int timeout)
{
Răspuns șir = "";
esp8266.print(comandă); // trimite caracterul citit la esp8266
long int time = milis();
while( (time+timeout) > millis())
{
în timp ce(sp8266.disponibil())
{
// Dacă există date primite în esp, trimiteți-le în serie
char c = esp8266.read(); // citește următorul caracter
răspuns+=c;
}
}
răspunsul returnat;
}
Ultima actualizare
5 dec. 2024