Після встановлення модуля Wi-Fi на плату Arduino, запустіть цю програму на мобільному телефоні для підключення Wi-Fi зв’язку між мобільним телефоном і Arduino, натиснувши 10 кнопок на мобільному телефоні, щоб розпізнати натискання кнопки на Arduino для виконання потрібної операції
- Одна кнопка: 10
(Дані надсилаються на Arduino, коли натискається кожна кнопка)
Кнопка 1: «0» (шістнадцяткове число 30) Кнопка 2: «1» (шістнадцяткове число 31)
Кнопка 3: «2» (шістнадцяткове число 32) Кнопка 4: «3» (шістнадцяткове число 33)
Кнопка 5: «4» (шістнадцяткове число 34) Кнопка 6: «5» (шістнадцяткове число 35)
Кнопка 7: «6» (шістнадцяткове число 36) Кнопка 8: «7» (шістнадцяткове число 37)
Кнопка 9: «8» (шістнадцяткове число 38) Кнопка 10: «9» (шістнадцяткове число 39)
(Приклад програми на Arduino)
Світлодіод, підключений до цифрового порту 5 Arduino, вмикається, коли кнопка 1 натиснута один раз, і вимикається, коли натискається повторно. (Дія перемикання)
///// Керування світлодіодами через Wi-Fi
Включіть SoftwareSerial.h у першу частину.
SoftwareSerial esp8266(2,3);
void setup()
{
Serial.begin(9600);
esp8266.begin(9600); // швидкість передачі esp
pinMode(5, ВИВІД);
digitalWrite(, LOW);
sendData("AT+RST\r\n",2000); // скидання модуля
sendData("AT+CWMODE=2\r\n",1000); // встановити як AP (точку доступу)
sendData("AT+CIFSR\r\n",1000); // отримати ip-адресу
sendData("AT+CIPMUX=1\r\n",1000); // встановити кілька підключень
sendData("AT+CIPSERVER=1,80\r\n",1000); // сервер на порту 80
}
void loop()
{
if(esp8266.available()) // якщо esp надсилає повідомлення
{
if(esp8266.find("+IPD,"))
{
затримка (200); // читати всі послідовні дані
int connectionId = esp8266.read();
esp8266.find("?");
int Number = esp8266.read();
if(Number==0x30){
if(digitalRead(5)==HIGH) digitalWrite(5, LOW);
else digitalWrite(5, HIGH);
}
// команда закриття
Рядок closeCommand = "AT+CIPCLOSE=";
closeCommand += ConnectionId; // приєднати ідентифікатор з'єднання
closeCommand += "\r\n";
sendData(closeCommand,1000); // закрити з'єднання
}
}
}
String sendData (команда String, час очікування const int)
{
Рядок відповіді = "";
esp8266.print(команда); // відправити символ читання на esp8266
довгий час int = millis();
while( (час+тайм-аут) > millis())
{
while(esp8266.available())
{
// Якщо в esp є отримані дані, надішліть їх послідовно
char c = esp8266.read(); // читання наступного символу
відповідь+=c;
}
}
зворотна відповідь;
}