Po namestitvi modula Wi-Fi na ploščo Arduino, upravljanju te aplikacije na mobilnem telefonu za povezavo komunikacije Wi-Fi med mobilnim telefonom in Arduinom, pritisk na 10 gumbov na mobilnem telefonu, da prepoznate pritisk gumba na Arduino za izvedbo želene operacije
- En gumb: 10
(Podatki, poslani Arduinu, ko je vsak gumb pritisnjen)
Gumb 1: '0' (šestnajstiško 30) Gumb 2: '1' (šestnajstiško 31)
Gumb 3: '2' (šestnajstiško 32) Gumb 4: '3' (šestnajstiško 33)
Gumb 5: '4' (šestnajstiško 34) Gumb 6: '5' (šestnajstiško 35)
Gumb 7: '6' (šestnajstiško 36) Gumb 8: '7' (šestnajstiško 37)
Gumb 9: '8' (šestnajstiško 38) Gumb 10: '9' (šestnajstiško 39)
(Primer programa v Arduinu)
LED, priključen na digitalna vrata 5 Arduina, se vklopi, ko enkrat pritisnete gumb 1, in se izklopi, ko ga ponovno pritisnete. (Dejanje preklopa)
///// Upravljanje LED diod prek Wi-Fi
V prvi del vključite SoftwareSerial.h.
SoftwareSerial esp8266(2,3);
praznina nastavitev()
{
Serijski začetek (9600);
esp8266.begin(9600); // hitrost prenosa esp
pinMode(5, IZHOD);
digitalWrite(, LOW);
sendData("AT+RST\r\n",2000); // ponastavitev modula
sendData("AT+CWMODE=2\r\n",1000); // nastavi kot AP (dostopna točka)
sendData("AT+CIFSR\r\n",1000); // pridobi naslov ip
sendData("AT+CIPMUX=1\r\n",1000); // nastavljen na več povezav
sendData("AT+CIPSERVER=1,80\r\n",1000); // strežnik na vratih 80
}
void loop()
{
if(esp8266.available()) // če esp pošilja sporočilo
{
if(esp8266.find("+IPD,"))
{
zamuda (200); // preberi vse serijske podatke
int ConnectionId = esp8266.read();
esp8266.find("?");
int Število = esp8266.read();
če(število==0x30){
if(digitalRead(5)==HIGH) digitalWrite(5, LOW);
else digitalWrite(5, HIGH);
}
// zapri ukaz
String closeCommand = "AT+CIPCLOSE=";
closeCommand += ConnectionId; // pripni ID povezave
closeCommand += "\r\n";
pošljiPodatke(closeCommand,1000); // zapri povezavo
}
}
}
String sendData (ukaz niza, časovna omejitev const int)
{
Odgovor niza = "";
esp8266.print(ukaz); // pošlji prebrani znak na esp8266
dolg int čas = millis();
medtem ko ((čas+časovna omejitev) > millis())
{
medtem ko(esp8266.na voljo())
{
// Če so v esp prejeti podatki, jih pošljite zaporedno
char c = esp8266.read(); // preberite naslednji znak
odgovor+=c;
}
}
povratni odgovor;
}
Posodobljeno dne
5. dec. 2024