Po zamontowaniu modułu Wi-Fi na płycie Arduino, uruchomieniu tej aplikacji na telefonie komórkowym w celu połączenia komunikacji Wi-Fi między telefonem komórkowym a Arduino, naciśnięciu 10 przycisków znajdujących się na telefonie komórkowym w celu rozpoznania naciśnięcia przycisku na Arduino, aby wykonać żądaną operację. aplikacja, która pozwala
- Pojedynczy przycisk: 10
(Dane wysyłane do Arduino po naciśnięciu każdego przycisku)
Przycisk 1: „0” (szesnastkowo 30) Przycisk 2: „1” (szesnastkowo 31)
Przycisk 3: „2” (szesnastkowo 32) Przycisk 4: „3” (szesnastkowo 33)
Przycisk 5: „4” (szesnastkowo 34) Przycisk 6: „5” (szesnastkowo 35)
Przycisk 7: „6” (szesnastkowo 36) Przycisk 8: „7” (szesnastkowo 37)
Przycisk 9: „8” (szesnastkowo 38) Przycisk 10: „9” (szesnastkowo 39)
(Przykład programu w Arduino)
Dioda LED podłączona do portu cyfrowego 5 Arduino zapala się po jednokrotnym naciśnięciu przycisku 1 i gaśnie po ponownym naciśnięciu (działanie przełączania)
///// Sterowanie diodami LED przez Wi-Fi
Dołącz SoftwareSerial.h w pierwszej części.
OprogramowanieSerial esp8266(2,3);
anuluj konfigurację ()
{
Serial.begin(9600);
esp8266.begin(9600); // szybkość transmisji esp
tryb pin(5, WYJŚCIE);
digitalWrite(, NISKI);
sendData("AT+RST\r\n",2000); // reset modułu
sendData("AT+CWMODE=2\r\n",1000); // ustaw jako AP (punkt dostępowy)
sendData("AT+CIFSR\r\n",1000); // pobierz adres IP
sendData("AT+CIPMUX=1\r\n",1000); // ustaw na wiele połączeń
sendData("AT+CIPSERVER=1,80\r\n",1000); // serwer na porcie 80
}
pusta pętla ()
{
if(esp8266.available()) // jeśli esp wysyła wiadomość
{
if(esp8266.find("+IPD,""))
{
opóźnienie(200); // odczyt wszystkich danych szeregowych
int identyfikator połączenia = esp8266.read();
esp8266.find("?");
int Liczba = esp8266.read();
if(Liczba==0x30){
if(odczyt cyfrowy(5)==WYSOKI) zapis cyfrowy(5, NISKI);
jeszcze digitalWrite(5, HIGH);
}
// zamknij polecenie
String closeCommand = "AT+CIPCLOSE=";
closeCommand += identyfikator połączenia; // dołącz identyfikator połączenia
closeCommand += "\r\n";
sendData(closeCommand,1000); // zamknij połączenie
}
}
}
String sendData (polecenie String, limit czasu const int)
{
Odpowiedź łańcuchowa = "";
esp8266.print(polecenie); // wyślij odczytany znak do esp8266
długi czas int = millis();
while( (czas + limit czasu) > millis())
{
while(esp8266.dostępny())
{
// Jeśli w esp są odbierane dane, wyślij je szeregowo
char c = esp8266.read(); // przeczytaj następny znak
odpowiedź+=c;
}
}
odpowiedź zwrotna;
}
Ostatnia aktualizacja
17 lis 2022