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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 13883|回復(fù): 11
收起左側(cè)

Wifi遙控小車使用說明與APP及單片機(jī)控制源碼下載

  [復(fù)制鏈接]
ID:376787 發(fā)表于 2018-7-21 18:07 | 顯示全部樓層 |閱讀模式
Wifi遙控小車使用說明
本例程采用ESP8266 wifi模塊與STM32串口連接,并提供AT指令封裝庫(kù)與STM32通訊,實(shí)現(xiàn)如下的通訊方式:
0.png
1、硬件部分
Wifi模塊絲印圖即引腳如下:
硬件連接如下:
Wifi模塊
Stm32核心板
說明
GND
GND

UTXD
PB11(RXD)
串口發(fā)送IO
CH_PD
VCC
3.3V,wifi使能位
URXD
PB10(TXD)
串口接收IO
VCC
3.3V
3.3V
其他

懸空
2、手機(jī)APP部分
APP部分我們采用常用的APP  wifi調(diào)試軟件 ITEAD WIFI,安裝完成后打開
如下界面,點(diǎn)擊Set up進(jìn)入設(shè)置:
進(jìn)入后會(huì)自動(dòng)獲取到手機(jī)的IP,注意手機(jī)是連接到一個(gè)路由器下的,支持局域網(wǎng)內(nèi)調(diào)試,先設(shè)置端口,一般是 8080
然后設(shè)置指令,我們使用到了如下紅框內(nèi)的指令,指令協(xié)議可以參考工程文件interface.h有如下描述:
//指令定義
#define COMM_STOP  'I'//停止
#define COMM_UP    'A'//前進(jìn)
#define COMM_DOWN  'B'//后退
#define COMM_LEFT  'C'//左轉(zhuǎn)
#define COMM_RIGHT 'D'//右轉(zhuǎn)
指令設(shè)置好之后就可以啟動(dòng)服務(wù)了,如下點(diǎn)擊開始就好了
設(shè)置完成后如下,這里記下服務(wù)端IP和端口號(hào),我這里是 192.168.31.195,端口 8080 ,然后返回:
3、stm32軟件部分
設(shè)置完APP軟件后,再來修改我們的工程文件,打開工程“wifi遙控小車”,打開main.c文件,修改紅框內(nèi)信息:
HOST_NAME和HOST_PORT為手機(jī)上面的IP和端口號(hào),SSID為您的路由器名,PSD為路由器密碼,修改好后重新編譯后下載。
下載完成復(fù)位一下,就可以運(yùn)行了,程序會(huì)自動(dòng)連接手機(jī)開啟的服務(wù),實(shí)現(xiàn)TCP/IP通信,連接成功后,看手機(jī)端的設(shè)置會(huì)有如下提示:
本程序還是用了串口1來輸出調(diào)試信息,將串口1連接電腦后也會(huì)在串口調(diào)試助手看到如下信息:
連接成功后即可在如下界面按鍵,操作小車運(yùn)行:
如有其他問題請(qǐng)先詳細(xì)參考wifi模塊資料以及本實(shí)驗(yàn)程序。

單片機(jī)源程序如下:
  1. /********************************* 深圳市航太電子有限公司 *******************************
  2. * 實(shí) 驗(yàn) 名 :小車藍(lán)牙遙控實(shí)驗(yàn)
  3. * 實(shí)驗(yàn)說明 :使用手機(jī)連接藍(lán)牙模塊后,通過手機(jī)發(fā)送指令來控制小車
  4. * 實(shí)驗(yàn)平臺(tái) :航太ARM單片機(jī)開發(fā)板
  5. * 連接方式 :請(qǐng)參考interface.h文件
  6. * 注    意 :指令必須連續(xù)發(fā)送才會(huì)使小車動(dòng)作,若停止發(fā)送指令,則小車會(huì)停止
  7. ****************************************************************************************/

  8. #include "stm32f10x.h"
  9. #include "interface.h"
  10. #include "LCD1602.h"
  11. #include "IRCtrol.h"
  12. #include "motor.h"
  13. #include "uart.h"
  14. #include "ESP8266.h"
  15. #include "serialportAPI.h"
  16. #include <stdlib.h>
  17. #include <stdio.h>

  18. //全局變量定義
  19. unsigned int speed_count=0;//占空比計(jì)數(shù)器 50次一周期
  20. char front_left_speed_duty=SPEED_DUTY;
  21. char front_right_speed_duty=SPEED_DUTY;
  22. char behind_left_speed_duty=SPEED_DUTY;
  23. char behind_right_speed_duty=SPEED_DUTY;

  24. unsigned char tick_5ms = 0;//5ms計(jì)數(shù)器,作為主函數(shù)的基本周期
  25. unsigned char tick_1ms = 0;//1ms計(jì)數(shù)器,作為電機(jī)的基本計(jì)數(shù)器
  26. unsigned char tick_200ms = 0;//刷新顯示
  27. unsigned int tick_3s = 0;//隔3s斷線檢測(cè)

  28. char ctrl_comm = COMM_STOP;//控制指令
  29. unsigned char continue_time=0;
  30. unsigned char wifi_rec_flag=0;//藍(lán)牙控制標(biāo)志位

  31. #define HOST_NAME   "192.168.31.195" //主機(jī)IP
  32. #define HOST_PORT   8080  //主機(jī)端口

  33. #define SSID "Hantech"  //路由器名
  34. #define PSD  "hantechinternet" //密碼

  35. #define RECVBUF_SIZE 16
  36. unsigned char buffer[RECVBUF_SIZE] = {0};

  37. int main(void)
  38. {
  39.         USART1Conf(9600);
  40.         DBG("system begin");
  41.         delay_init();
  42.         GPIOCLKInit();
  43.         UserLEDInit();
  44.         LCD1602Init();
  45.         TIM2_Init();
  46.         MotorInit();
  47.         ServoInit();
  48. //        USART3Conf(9600);

  49.                 while(1)
  50.         {
  51.                 DBG("chang baud");
  52.                
  53.                 UartBegin(115200,&USART3Conf,&PutChar);//每次設(shè)置完波特率后需要做一點(diǎn)延時(shí)
  54.                 delay(500);
  55.                 SetBaud(19200);
  56.                 UartBegin(19200,&USART3Conf,&PutChar);//更改波特率到19200
  57.                 delay(500);
  58.                 if(0 != SetBaud(19200))//在新波特率下檢查是否成功
  59.                 {
  60.                         break;//成功就退出
  61.                 }        
  62.         }

  63.         while(0 == WifiInit(SSID,PSD,HOST_NAME,HOST_PORT));
  64.         
  65. while(1)
  66. {        
  67.                 if(SerialAvailable() > 5)//接收到至少5個(gè)字符
  68.                 {
  69.                         int len;
  70.                         len = recv(buffer, RECVBUF_SIZE, 100);
  71.                         if (len > 0)
  72.                         {
  73.                                         char inChar;
  74.                                         inChar = buffer[0];
  75.         //                          send(buffer, len);
  76.                                         if (ctrl_comm != inChar || continue_time == 1)
  77.                                         {
  78.                                                 wifi_rec_flag = 1;
  79.                                                 ctrl_comm = inChar;
  80.                                         }
  81.                                         continue_time = 60;//更新持續(xù)時(shí)間
  82.                                   tick_3s = 0;//心跳包周期
  83.                         }
  84.                 }
  85.                
  86.                          if(tick_5ms >= 5)
  87.                 {
  88.                         tick_5ms = 0;
  89.                         tick_200ms++;
  90.                         if(tick_200ms >= 40)
  91.                         {
  92.                                 tick_200ms = 0;
  93.                                 tick_3s++;
  94.                                 LEDToggle(LED_PIN);
  95.                                 if(tick_3s >= 15)//15*200=3000
  96.                                 {
  97.                                         tick_3s = 0;
  98.                                         //定時(shí)檢查連接是否正常,如果不正常,wifi復(fù)位重新連接
  99.                                         if (getSystemStatus() != STATUS_GETLINK)
  100.                                         {
  101.                                                 DBG("TCP unlink");
  102.                                                 while(!WifiInit(SSID,PSD,HOST_NAME,HOST_PORT));
  103.                                         }else
  104.                                         {
  105.                                                 DBG("TCP link tick");
  106.                                         }                                       
  107.                                 }
  108.                         }
  109.                         //continue_time--;//200ms 無接收指令就停車
  110.                         if(continue_time == 0)
  111.                         {
  112.                                 continue_time = 1;
  113.                                 CarStop();
  114.                         }
  115.                         //do something
  116.                         if(wifi_rec_flag == 1)//接收到紅外信號(hào)
  117.                         {
  118.                                 wifi_rec_flag = 0;
  119.                                 switch(ctrl_comm)
  120.                                 {
  121.                                         case COMM_UP:    CarGo();break;
  122.                                         case COMM_DOWN:  CarBack();break;
  123.                                         case COMM_LEFT:  CarLeft();break;
  124.                                         case COMM_RIGHT: CarRight();break;
  125.                                         case COMM_STOP:  CarStop();break;
  126.                                         default : break;
  127.                                 }
  128.                                 LCD1602WriteCommand(ctrl_comm);
  129.                                 DBG("recv COMM");
  130.                         }
  131.                 }
  132.                
  133. }
  134. }

復(fù)制代碼
0.png

所有資料51hei提供下載:
wifi遙控小車.zip (6.88 MB, 下載次數(shù): 222)



回復(fù)

使用道具 舉報(bào)

ID:327035 發(fā)表于 2018-11-4 19:28 | 顯示全部樓層
厲害了
回復(fù)

使用道具 舉報(bào)

ID:244589 發(fā)表于 2018-11-6 11:59 | 顯示全部樓層
樓主,可以分享一下原理圖嗎
回復(fù)

使用道具 舉報(bào)

ID:184813 發(fā)表于 2019-12-30 23:00 | 顯示全部樓層
樓主,可以分享一下原理圖嗎
回復(fù)

使用道具 舉報(bào)

ID:184813 發(fā)表于 2020-2-4 20:58 | 顯示全部樓層
#在這里快速回復(fù)#樓主,可以分享一下原理圖嗎
回復(fù)

使用道具 舉報(bào)

ID:80231 發(fā)表于 2020-2-25 23:52 | 顯示全部樓層
多謝!!!!!!!!
回復(fù)

使用道具 舉報(bào)

ID:770561 發(fā)表于 2020-6-5 17:33 | 顯示全部樓層
太棒了。。終于找到了!!
回復(fù)

使用道具 舉報(bào)

ID:826597 發(fā)表于 2020-10-7 16:43 | 顯示全部樓層
感謝分享,非常詳細(xì)
回復(fù)

使用道具 舉報(bào)

ID:862190 發(fā)表于 2020-12-17 15:33 | 顯示全部樓層
太棒了。。終于找到了!!
回復(fù)

使用道具 舉報(bào)

ID:800143 發(fā)表于 2020-12-31 16:31 | 顯示全部樓層
用ESP-8266模塊怎么寫C語言客服端和終端實(shí)時(shí)互傳?
回復(fù)

使用道具 舉報(bào)

ID:800143 發(fā)表于 2020-12-31 16:33 | 顯示全部樓層
用ESP-8266模塊怎么寫客服端與終端的無線互傳?
回復(fù)

使用道具 舉報(bào)

ID:120677 發(fā)表于 2021-1-7 08:37 | 顯示全部樓層
這個(gè)界面做得好
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 岛国av在线免费观看 | 欧美最猛黑人xxxⅹ 粉嫩一区二区三区四区公司1 | 久草中文网 | 水蜜桃亚洲一二三四在线 | 少妇久久久| 色资源在线 | 欧美一级片 | 国产男女精品 | 性国产xxxx乳高跟 | 99re在线观看 | 欧美激情欧美激情在线五月 | 九九成人| 日韩理论电影在线观看 | 黄色免费在线观看网址 | 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | 国产a爽一区二区久久久 | 亚洲欧美一区二区三区国产精品 | 久久久久久亚洲欧洲 | 亚洲视频一区在线播放 | 中文字幕在线网 | 正在播放亚洲 | 成人福利在线视频 | 成人毛片在线视频 | 视频一区二区三区在线观看 | 国产 日韩 欧美 在线 | 亚洲高清免费视频 | 精品国产青草久久久久96 | 国产美女在线观看 | 懂色av一区二区三区在线播放 | 小视频你懂得 | 国产色网站 | 国产综合一区二区 | 午夜影院 | 亚洲精品一区二区三区蜜桃久 | www.亚洲国产精品 | 国产精品久久久久一区二区三区 | 天天久久| 国产精品a久久久久 | 久久精品成人 | 亚洲福利一区 | 国产激情在线 |