久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: WIFI小車(chē)APP遠(yuǎn)程控制,無(wú)線智能小車(chē)之ESP8266例程 [打印本頁(yè)]

作者: youngda    時(shí)間: 2019-8-20 11:31
標(biāo)題: WIFI小車(chē)APP遠(yuǎn)程控制,無(wú)線智能小車(chē)之ESP8266例程
原理講解

原理簡(jiǎn)述:利用發(fā)布訂閱模式,即:利用ESP8266 訂閱了一個(gè)主題,再利用app inventor 編寫(xiě)的app 往這個(gè)主題發(fā)布消息,由于ESP8266 訂閱了這個(gè)消息,所以就可以收到app發(fā)布得消息,從而執(zhí)行相應(yīng)得動(dòng)作,比如前進(jìn)\后退\左轉(zhuǎn)\右轉(zhuǎn)。

小車(chē)改裝

如果有小車(chē)的話可以進(jìn)行改裝,改裝成WIFI小車(chē),如果沒(méi)有小車(chē)的話,可以現(xiàn)行組裝。

STM32改裝方案: 建議采用串口通信的方式,ESP8266可以收到手機(jī)app發(fā)來(lái)的控制指令,如果ESP8266收到指令,可通過(guò)串口給stm32發(fā)送信息,stm32收到指令后,對(duì)小車(chē)執(zhí)行相關(guān)動(dòng)作即可。

arduino uno 改裝方案:方案一,這個(gè)可以采用和stm32一樣的原理,利用串口通信,esp8266收到云端指令,通過(guò)串口給arduino 發(fā)信息,arduino收到串口信息,對(duì)小車(chē)執(zhí)行相關(guān)動(dòng)作即可。方案二,更換NodeMCU開(kāi)發(fā)板,把a(bǔ)rduino uno 更換為NodeMCU開(kāi)發(fā)板,直接用NodeMCU當(dāng)作小車(chē)的動(dòng)作控制器,這種方式比較推薦,較為簡(jiǎn)單,nodeMCU收到云端指令,直接執(zhí)行小車(chē)動(dòng)作函數(shù)即可。NodeMCU編程完全兼容arduino開(kāi)發(fā),更換的時(shí)候,把控制引腳對(duì)應(yīng)好就行。

樹(shù)莓派小車(chē)改裝方案:寫(xiě)個(gè)python腳本,腳本為T(mén)CP客戶(hù)端,通過(guò)TCP客戶(hù)端連接到服務(wù)器,當(dāng)app通過(guò)云端發(fā)送控制指令時(shí),樹(shù)莓派就會(huì)收到命令,就可以執(zhí)行相關(guān)小車(chē)動(dòng)作即可。

其他開(kāi)發(fā)板:參考arduino uno 改裝方案即可。

ESP8266 例程代碼


代碼修改:
  1. //用戶(hù)私鑰,可在控制臺(tái)獲取,修改為自己的UID
  2. #define UID  "4d9ec352e0376f2110a0c601a2857225"
  3. //主題名字,可在控制臺(tái)新建
  4. #define TOPIC  "mycar"
復(fù)制代碼


在[巴法創(chuàng)客云控制臺(tái)] 新建一個(gè)主題,主題名字隨意,例如mycar,本實(shí)例用用mycar,使用示例代碼時(shí)應(yīng)修改為自己的主題名字,字母或數(shù)字或字母加數(shù)字組合。UID為用戶(hù)私鑰,在 [巴法創(chuàng)客云控制臺(tái)] 注冊(cè)登陸后可獲得。

小車(chē)控制引腳:

本例程中是四驅(qū)小車(chē)

  1. //**************************************************//
  2. #define DIRA D0
  3. #define PWMA D1
  4. #define DIRB D2
  5. #define PWMB D3
  6. #define DIRC D5
  7. #define PWMC D4
  8. #define DIRD D6
  9. #define PWMD D7

  10. //**************************************************//
  11. ```
  12. **控制函數(shù):**
  13. ```javascript
  14. void forward();
  15. void back();
  16. void turnLeft();
  17. void turnRight();
  18. void Stop();

  19. void forward(){//小車(chē)前進(jìn)
  20.    Serial.println("forward");
  21.    digitalWrite(DIRA,HIGH);
  22.    digitalWrite(DIRB,HIGH);
  23.    digitalWrite(DIRC,LOW);
  24.    digitalWrite(DIRD,LOW);
  25.    
  26.    analogWrite(PWMA,500);
  27.    analogWrite(PWMB,500);
  28.    analogWrite(PWMC,500);
  29.    analogWrite(PWMD,500);
  30. }

  31. void back(){//小車(chē)后退
  32.    Serial.println("back");
  33.    digitalWrite(DIRA,LOW);
  34.    digitalWrite(DIRB,LOW);
  35.    digitalWrite(DIRC,HIGH);
  36.    digitalWrite(DIRD,HIGH);
  37.    
  38.    analogWrite(PWMA,500);
  39.    analogWrite(PWMB,500);
  40.    analogWrite(PWMC,500);
  41.    analogWrite(PWMD,500);
  42. }
復(fù)制代碼




ESP8266消息檢測(cè):

  1.      if((TcpClient_Buff.indexOf("&msg=1") > 0)) {
  2.       forward();
  3.       oldtime = millis();
  4.       t_flag = true;
  5.     }else if((TcpClient_Buff.indexOf("&msg=2") > 0)) {
  6.       back();
  7.       oldtime = millis();
  8.       t_flag = true;
  9.     }else if((TcpClient_Buff.indexOf("&msg=3") > 0)) {
  10.       turnLeft();
  11.       oldtime = millis();
  12.       t_flag = true;
  13.     }else if((TcpClient_Buff.indexOf("&msg=4") > 0)) {
  14.       turnRight();
  15.       oldtime = millis();
  16.       t_flag = true;
  17.     }else if((TcpClient_Buff.indexOf("&msg=0") > 0)) {
  18.       Stop();
  19.     }else if((TcpClient_Buff.indexOf("&msg=on") > 0)) {
  20.       up_flag = true;
  21.     }else if((TcpClient_Buff.indexOf("&msg=off") > 0)) {
  22.       up_flag = false;
  23.     }
復(fù)制代碼

程序說(shuō)明:如上所示,通過(guò)字符串匹配,
檢測(cè)到字符串 &msg=1 執(zhí)行前進(jìn)動(dòng)作,
檢測(cè)到字符串 &msg=2 執(zhí)行后退動(dòng)作,
檢測(cè)到字符串 &msg=3 執(zhí)行左轉(zhuǎn)動(dòng)作,
檢測(cè)到字符串 &msg=4 執(zhí)行右轉(zhuǎn)動(dòng)作,
檢測(cè)到字符串 &msg=0 執(zhí)行停止動(dòng)作,
檢測(cè)到字符串 &msg=on 打開(kāi)一直運(yùn)動(dòng)開(kāi)關(guān),
檢測(cè)到字符串 &msg=off 關(guān)閉一直運(yùn)動(dòng)開(kāi)關(guān)。
(默認(rèn)情況下,如果收到前進(jìn)等指令,小車(chē)只會(huì)前進(jìn)1.5s,如果發(fā)送on指令后,再收到前進(jìn)等指令,就會(huì)一直前進(jìn)。off指令是關(guān)閉)。
如果是采用串口通信的同學(xué),當(dāng)收到相關(guān)指令,通過(guò)發(fā)送串口發(fā)送相關(guān)指令控制小車(chē)即可。

WIFI配網(wǎng)

本程序需要給WIFI板配網(wǎng),首先關(guān)注公眾號(hào)“巴法云”,或掃碼




手機(jī)需要先連接到WIFI,在“云設(shè)備”中點(diǎn)擊“WIFI配網(wǎng)”即可,配網(wǎng)成功后設(shè)備會(huì)重啟,稍等幾秒即可,只需配網(wǎng)一次即可,如需再次重新配網(wǎng),需要連續(xù)重啟5次開(kāi)發(fā)板,每次間隔2s內(nèi),開(kāi)發(fā)者也可接串口開(kāi)輸出的調(diào)試信息。
# 程序測(cè)試
在[巴法創(chuàng)客云控制臺(tái)]此主題處(本例程demo中為mycar) 推送消息 1 ,開(kāi)小車(chē)是否正常前進(jìn)。

指令定義 前進(jìn)是推送1,后退是推送2,左轉(zhuǎn)是3,右轉(zhuǎn)是4,停止是0,如需更多動(dòng)作,可在單片機(jī)中自定義即可,簡(jiǎn)單說(shuō)就是檢測(cè)到某個(gè)字符串就執(zhí)行相關(guān)動(dòng)作,這個(gè)應(yīng)該還是很好理解的。例如檢測(cè)到msg=1,單片機(jī)就會(huì)認(rèn)為是前進(jìn)指令,會(huì)執(zhí)行前進(jìn)。在本例程中小車(chē)不會(huì)一直前進(jìn),如果收到前進(jìn)指令,只會(huì)前進(jìn)1.5s,如需一直前進(jìn),推送on,即可,關(guān)閉一直前進(jìn),推送off。

如果測(cè)試程序都正常運(yùn)行,可以通過(guò)生成自己的安卓手機(jī)app進(jìn)行控制。

安卓app制作

安卓app 采用App Inventor開(kāi)發(fā)。**拖拽編程,大家不用擔(dān)心不會(huì)玩。**

Google App Inventor是一個(gè)完全在線開(kāi)發(fā)的Android編程環(huán)境,拋棄復(fù)雜的程式代碼而使用積木式的堆疊法來(lái)完成您的Android程序。而且這款編程軟件不一定非要是專(zhuān)業(yè)的研發(fā)人員,甚至根本不需要掌握任何的程序編制知識(shí)。因?yàn)檫@款軟件已經(jīng)事先將軟件的代碼全部編寫(xiě)完畢,用戶(hù)只需要根據(jù)自己的需求向其中添加服務(wù)選項(xiàng)即可。也就是我們所要做的只是寫(xiě)簡(jiǎn)單的代碼拼裝程序。

需要修改為自己的UID和topic主題,需要和單片機(jī)里的保持一致,不然單片機(jī)會(huì)接收不到消息。


上篇帖子的第三節(jié)(app inventor 開(kāi)發(fā)):[帖子](https://blog.csdn.net/bemfa/article/details/98478379)





作者: 76664289    時(shí)間: 2019-8-21 11:17
謝謝分享,學(xué)習(xí)學(xué)習(xí)




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: avtt国产 | 久久99精品久久久久久 | 粉嫩国产精品一区二区在线观看 | 国产精品久久久久aaaa九色 | www.97zyz.com| 午夜精品久久久久久久久久久久 | 手机在线不卡av | 久久久青草婷婷精品综合日韩 | 中文字幕在线播放第一页 | 三级成人在线观看 | 久久精品国产一区二区三区不卡 | 欧美一级视频免费看 | 亚洲国产成人精品在线 | 亚洲国产成人精品女人久久久 | 麻豆精品国产91久久久久久 | 不卡av电影在线播放 | 99亚洲精品 | 欧美日韩国产一区二区三区 | 99精品视频免费观看 | 国产福利91精品一区二区三区 | 国产一区| 亚洲精品v | 成人av一区二区在线观看 | 国产精品精品视频一区二区三区 | 一区在线播放 | 亚洲图片视频一区 | 情侣av| 久草青青草 | 超碰天天 | 麻豆久久久久久久 | 56pao在线| 中文字幕欧美日韩一区 | 911精品国产| 日韩在线免费视频 | 一区二区三区欧美 | 久久久免费 | 成人影院在线观看 | 国产91精品久久久久久久网曝门 | 亚洲精品久久久一区二区三区 | 免费观看毛片 | 亚洲九九|