បន្ទាប់ពីដំឡើងម៉ូឌុល Wi-Fi នៅលើបន្ទះ Arduino ដំណើរការកម្មវិធីនេះនៅលើទូរសព្ទចល័ត ដើម្បីភ្ជាប់ទំនាក់ទំនង Wi-Fi រវាងទូរសព្ទដៃ និង Arduino ដោយចុចប៊ូតុងចំនួន 10 ដែលមាននៅលើទូរសព្ទដៃ ដើម្បីសម្គាល់ការចុចប៊ូតុងនៅលើ Arduino ដើម្បីអនុវត្តប្រតិបត្តិការដែលចង់បាន។ កម្មវិធីដែលអនុញ្ញាត
- ប៊ូតុងតែមួយ៖ ១០
(ទិន្នន័យផ្ញើទៅ 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)
LED ដែលភ្ជាប់ទៅច្រកឌីជីថល 5 នៃ Arduino បើកនៅពេលដែលប៊ូតុង 1 ត្រូវបានចុចម្តង ហើយបិទនៅពេលចុចម្តងទៀត។ (បិទ/បើកសកម្មភាព)
///// គ្រប់គ្រង LEDs តាមរយៈ Wi-Fi
រួមបញ្ចូល SoftwareSerial.h នៅក្នុងផ្នែកទីមួយ។
SoftwareSerial esp8266(2,3);
ការកំណត់ទុកជាមោឃៈ ()
{
សៀរៀលចាប់ផ្តើម(9600);
esp8266.begin(9600); // អត្រា baud នៃ esp
pinMode(5, OUTPUT);
digitalWrite(, ទាប);
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
}
ចន្លោះប្រហោង ()
{
if(esp8266.available()) // ប្រសិនបើ esp កំពុងផ្ញើសារ
{
ប្រសិនបើ(esp8266.find("+IPD,"))
{
ការពន្យាពេល (២០០); // អានទិន្នន័យសៀរៀលទាំងអស់។
int connectionId = esp8266.read();
esp8266.find("?");
int លេខ = esp8266.read();
ប្រសិនបើ(លេខ==0x30){
if(digitalRead(5)==HIGH) digitalWrite(5, LOW);
ផ្សេងទៀត digitalWrite(5, HIGH);
}
// បិទពាក្យបញ្ជា
ខ្សែអក្សរ closeCommand = "AT+CIPCLOSE=";
closeCommand += connectionId; // ភ្ជាប់លេខសម្គាល់ការតភ្ជាប់
closeCommand += "\r\n";
sendData(closeCommand,1000); // ទំនាក់ទំនងជិតស្និទ្ធ
}
}
}
String sendData (ពាក្យបញ្ជា String, const int អស់ពេល)
{
ការឆ្លើយតបខ្សែអក្សរ = "";
esp8266.print(ពាក្យបញ្ជា); // ផ្ញើតួអក្សរអានទៅ esp8266
long int time = millis();
while((ពេលវេលា+អស់ពេល) > millis())
{
while(esp8266.available())
{
// ប្រសិនបើមានទិន្នន័យបានទទួលនៅក្នុង esp សូមផ្ញើវាតាមលំដាប់លំដោយ
char c = esp8266.read(); // អានតួអក្សរបន្ទាប់
ការឆ្លើយតប + = គ;
}
}
ការឆ្លើយតបត្រឡប់មកវិញ;
}
បានដំឡើងកំណែនៅ
17 វិច្ឆិកា 2022