标题: STM32+ESP8266遥控Wifi小车程序设计与安卓APP使用资料下载 [打印本页]

作者: 就那一点    时间: 2018-1-23 11:08
标题: STM32+ESP8266遥控Wifi小车程序设计与安卓APP使用资料下载
Wifi遥控小车使用说明
本例程采用ESP8266 wifi模块与STM32串口连接,并提供AT指令封装库与STM32通讯,实现如下的通讯方式:



1、硬件部分
Wifi模块丝印图即引脚如下:
硬件连接如下:
Wifi模块
Stm32核心板
说明
GND
GND

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

悬空

2、手机APP部分
APP部分我们采用常用的APP  wifi调试软件 ITEAD WIFI,安装完成后打开
如下界面,点击Set up进入设置:
进入后会自动获取到手机的IP,注意手机是连接到一个路由器下的,支持局域网内调试,先设置端口,一般是 8080
然后设置指令,我们使用到了如下红框内的指令,指令协议可以参考工程文件interface.h有如下描述:
//指令定义
#define COMM_STOP  'I'//停止
#define COMM_UP    'A'//前进
#define COMM_DOWN  'B'//后退
#define COMM_LEFT  'C'//左转
#define COMM_RIGHT 'D'//右转
指令设置好之后就可以启动服务了,如下点击开始就好了
设置完成后如下,这里记下服务端IP和端口号,我这里是 192.168.31.195,端口 8080 ,然后返回:
3、stm32软件部分
设置完APP软件后,再来修改我们的工程文件,打开工程“wifi遥控小车”,打开main.c文件,修改红框内信息:
HOST_NAME和HOST_PORT为手机上面的IP和端口号,SSID为您的路由器名,PSD为路由器密码,修改好后重新编译后下载。
下载完成复位一下,就可以运行了,程序会自动连接手机开启的服务,实现TCP/IP通信,连接成功后,看手机端的设置会有如下提示:
本程序还是用了串口1来输出调试信息,将串口1连接电脑后也会在串口调试助手看到如下信息:
连接成功后即可在如下界面按键,操作小车运行:

如有其他问题请先详细参考wifi模块资料以及本实验程序。

stm32单片机源程序:
  1. /********************************* 深圳市航太电子 *******************************
  2. * 实 验 名 :小车蓝牙遥控实验
  3. * 实验说明 :使用手机连接蓝牙模块后,通过手机发送指令来控制小车
  4. * 实验平台 :航太ARM单片机开发板
  5. * 连接方式 :请参考interface.h文件
  6. * 注    意 :指令必须连续发送才会使小车动作,若停止发送指令,则小车会停止
  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;//占空比计数器 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计数器,作为主函数的基本周期
  25. unsigned char tick_1ms = 0;//1ms计数器,作为电机的基本计数器
  26. unsigned char tick_200ms = 0;//刷新显示
  27. unsigned int tick_3s = 0;//隔3s断线检测

  28. char ctrl_comm = COMM_STOP;//控制指令
  29. unsigned char continue_time=0;
  30. unsigned char wifi_rec_flag=0;//蓝牙控制标志位

  31. #define HOST_NAME   "192.168.31.195" //主机IP
  32. #define HOST_PORT   8080  //主机端口

  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);//每次设置完波特率后需要做一点延时
  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个字符
  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;//更新持续时间
  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.                                         //定时检查连接是否正常,如果不正常,wifi复位重新连接
  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)//接收到红外信号
  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. }

复制代码


全部资料下载(stm32源码+app+资料):
11.wifi遥控小车实验.7z (1.65 MB, 下载次数: 801)



作者: ldclovehy    时间: 2018-2-1 10:47
挺不错的源程序,很有用
作者: 打工鱼    时间: 2018-3-7 23:01
需要app下一个
作者: billtest36    时间: 2018-3-16 09:55
太好了 感謝版主您的分享
作者: 76711031    时间: 2018-3-22 22:49
看看资料
作者: aking991    时间: 2018-3-31 16:48
可惜我还没会STM32的单片机
作者: qxs_    时间: 2018-4-15 16:13
很想下载这个材料怎么办,但是没有足够的黑币,看来我要加油了
作者: lxz1400810216    时间: 2018-4-16 19:00
学习学习
作者: leuku    时间: 2018-5-30 14:30
感谢分享
作者: liuyuxi1123    时间: 2018-6-7 13:21
我正要学习遥操作
作者: 菊一文字    时间: 2018-8-22 17:22
大家共同学习,我分享的esp8266:http://www.51hei.com/bbs/dpj-132715-1.html
作者: 风和日丽233    时间: 2018-9-17 09:07
新手下载观摩
作者: mhj258258    时间: 2018-11-14 10:21
看上去不错谢谢
作者: wuqiang0102    时间: 2018-12-8 16:19
怎么下载
作者: qwertabcd    时间: 2018-12-8 17:30
这东西好,就是没黑笔
作者: whkang    时间: 2018-12-10 14:28
支持一下,最近一直在做8266相关的东西。哈哈
作者: hozhiwen    时间: 2018-12-10 22:45
请问你是用什么软件编写手机APP的呢?可经公布编手机APP软件吗?
作者: hhhhhhtt    时间: 2019-1-16 17:09
观察学习
作者: HXXXX    时间: 2019-1-20 16:12
请问电机和STM32是怎么连接的  那个引脚接电机
作者: 刚哥哥    时间: 2019-3-13 09:14
我看马达引脚定义8个,四个轮子都单独控制的吗?
作者: zhanglijin    时间: 2019-3-17 22:01
用手机网络可以使用吗?
作者: IoTram    时间: 2019-3-18 14:43
今年年初,ESP-EYE的参考设计正式上线,这绝对是近来AIoT应用的最接地气方案之一。令许多用户惊喜的是,利用ESP-EYE这设计,就可以轻易试水人脸识别的开发。

这里和还没注意到的各位朋友分享一下!

以下是入门指南 :
https://github.com/espressif/esp ... ng_Started_Guide.md
基于搭载 ESP32 芯片、200 W 像素摄像头、数字麦克风、8 MB PSRAM 和 4 MB Flash,开发者就可动手人脸识别的 AI 应用开发。重点来了: 因为有图传功能,用上PSRAM,就可作为内存缓冲功能,存储计算空间多了,视觉上的识别性能表现当然更优。而我的公司就是生产PSRAM的厂商。需要PSRAM可以找我啊 !
利用ESP-EYE能开发的应用方面,我来举例一下:
最主打的,应该是 : 门禁、考勤、自动售卖设备、智能储物锁、VIP识别系统,这些基於人脸识别的系统,都可利用ESP EYE的基础去进行深度开发。
另外,识物应用也有很广泛的应用可能性。如工厂生产线的图像检查、警报装置、环境监察、农作物品质分类。
此外,该开发板还支持 Wi-Fi 图像传输、Micro USB 调试和供电,可以实现语音唤醒,可协助用户开发高度集成的 AI 解决方案。

希望以上一些分享能对大家有帮助,欢迎交流~~
作者: wang8128    时间: 2019-3-21 13:16
绝对支持,谢谢分享
作者: 西点钟灵毓秀    时间: 2019-3-21 15:34
STM32+ESP8266遥控Wifi小车程序设计与安卓APP使用资料下载
作者: yxhall    时间: 2019-3-27 02:15
好棒的样子,赞,好想试试
作者: liumeizhoufind7    时间: 2019-4-14 01:35
很好很强大
作者: 199610123    时间: 2019-4-29 08:52
四轮和两轮
作者: 199610123    时间: 2019-4-29 08:53
四轮和两轮小车操作起来有差别的嘛?这个程序
作者: 强强96    时间: 2019-5-4 17:04
敢问楼主大神,怎么改动让小车变为点动???
作者: 强强96    时间: 2019-5-4 17:05
199610123 发表于 2019-4-29 08:53
四轮和两轮小车操作起来有差别的嘛?这个程序

这个程序输出的是8口,两个机的,只接前面4个io就行
作者: 强强96    时间: 2019-5-4 17:21
点动问题解决了,请问下怎么改成AP模式,手机连8266


作者: lysoon    时间: 2019-6-11 14:00
一直需要这个例子,谢谢分享
作者: lysoon    时间: 2019-6-11 14:01
挺不错的源程序,很有用
作者: aaaaaa。    时间: 2019-6-12 16:12
谢谢大佬分享
作者: shuixinshi    时间: 2019-6-29 11:26
怎么下了都是空白的

作者: 没有名字    时间: 2019-8-2 20:32
电机驱动用的什么?
作者: chang51hei    时间: 2019-8-9 16:36
不知道怎么改为在AP模式下
作者: chang51hei    时间: 2019-8-9 16:39
怎么改为在ESP8266的AP模式下,STM32和手机通信进行小车控制
作者: QSM980405    时间: 2019-8-22 14:37
好东西,谢谢
作者: 马51hei33    时间: 2019-9-7 21:40
麻烦问一下编程用的是什么软件,是keil吗?还是别的?
作者: qcwy16    时间: 2019-12-6 09:37
挺不错的,学习一下
作者: kklkjhs    时间: 2020-5-9 13:13
学习学习
作者: magicfu    时间: 2020-5-10 00:15
感谢牛人分享,很不错
作者: 小小张。。    时间: 2020-11-13 23:59
非常有用感谢分享
作者: 40560335    时间: 2020-11-14 00:33
感谢分享,这个APP挺有意思,收藏了
作者: sdfkdsnfksfsdg    时间: 2020-12-17 15:35
支持一下,最近一直在做8266相关的东西。哈哈

作者: 天下无敌    时间: 2020-12-20 19:22

绝对支持,谢谢分享
作者: 6663    时间: 2021-5-10 19:50
思路清晰
作者: 涛之雨    时间: 2022-3-23 09:20
学习一下,要是再有仿真图就更好了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1