作者:白蘋果 | 更新時(shí)間:2018-11-13 | 瀏覽量:1703
本作品利用esp8266和arduinoUNO板以及用貝殼物聯(lián)網(wǎng)頁(yè)端的設(shè)備遙控作為控制器,實(shí)現(xiàn)
原理是在公開設(shè)備對(duì)話界面,輸入設(shè)備遙控命令,服務(wù)器會(huì)向該(在線)設(shè)備發(fā)送如下命令:
{"M":"say","ID":"G7f00000109c4000173ce","NAME":"guest","C":"play","T":"1457528107"}\n
{"M":"say","ID":"G7f00000109c4000173ce","NAME":"guest","C":"stop","T":"1457528107"}\n
利用該命令中的對(duì)設(shè)備控制唯一有效的字符串“play”或“stop”的字符串抓取從而實(shí)現(xiàn)在網(wǎng)頁(yè)/微信小程序上的LED亮滅控制
關(guān)鍵語(yǔ)句如下,小白實(shí)操,求大神別笑。。
int pinRelay = 4;
String comdata = "";
void setup()
{
Serial.begin(115200);
}
void loop() {
while (Serial.available() > 0)
{
comdata += char(Serial.read());
delay(2);
}
if (comdata.length() > 0)
{
int idx1 = comdata.indexOf("play");
int idx2 = comdata.indexOf("stop");
//調(diào)用indexOf功能,此功能可以抓取串口中字符串的指定字符或字符串,并且返回一個(gè)正數(shù)值(抓取成功)或負(fù)數(shù)值(抓取失?。?br />
if(idx1>0)
{
digitalWrite(pinRelay,HIGH);
}
//play命令控制LED亮
else if(idx2>0)
{
digitalWrite(pinRelay, LOW);
}
//stop命令控制LED滅
Serial.println(comdata);//讀取從網(wǎng)頁(yè)發(fā)送過(guò)來(lái)的命令顯示在串口監(jiān)視器中
comdata = "";
}
}