找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 20822|回复: 48
收起左侧

STM32+ESP8266遥控Wifi小车程序设计与安卓APP使用资料下载

  [复制链接]
ID:278846 发表于 2018-1-23 11:08 | 显示全部楼层 |阅读模式
Wifi遥控小车使用说明
本例程采用ESP8266 wifi模块与STM32串口连接,并提供AT指令封装库与STM32通讯,实现如下的通讯方式:
0.png


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. }

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

评分

参与人数 1黑币 +5 收起 理由
liuyuxi1123 + 5 很给力!

查看全部评分

回复

使用道具 举报

ID:281263 发表于 2018-2-1 10:47 | 显示全部楼层
挺不错的源程序,很有用
回复

使用道具 举报

ID:99778 发表于 2018-3-7 23:01 | 显示全部楼层
需要app下一个
回复

使用道具 举报

ID:154092 发表于 2018-3-16 09:55 | 显示全部楼层
太好了 感謝版主您的分享
回复

使用道具 举报

ID:66302 发表于 2018-3-22 22:49 | 显示全部楼层
看看资料
回复

使用道具 举报

ID:65956 发表于 2018-3-31 16:48 | 显示全部楼层
可惜我还没会STM32的单片机
回复

使用道具 举报

ID:300037 发表于 2018-4-15 16:13 | 显示全部楼层
很想下载这个材料怎么办,但是没有足够的黑币,看来我要加油了
回复

使用道具 举报

ID:309487 发表于 2018-4-16 19:00 | 显示全部楼层
学习学习
回复

使用道具 举报

ID:341350 发表于 2018-5-30 14:30 | 显示全部楼层
感谢分享
回复

使用道具 举报

ID:343211 发表于 2018-6-7 13:21 | 显示全部楼层
我正要学习遥操作
回复

使用道具 举报

ID:388978 发表于 2018-8-22 17:22 | 显示全部楼层
大家共同学习,我分享的esp8266:http://www.51hei.com/bbs/dpj-132715-1.html
回复

使用道具 举报

ID:398852 发表于 2018-9-17 09:07 | 显示全部楼层
新手下载观摩
回复

使用道具 举报

ID:216150 发表于 2018-11-14 10:21 | 显示全部楼层
看上去不错谢谢
回复

使用道具 举报

ID:442212 发表于 2018-12-8 16:19 | 显示全部楼层
怎么下载
回复

使用道具 举报

ID:442270 发表于 2018-12-8 17:30 | 显示全部楼层
这东西好,就是没黑笔
回复

使用道具 举报

ID:307935 发表于 2018-12-10 14:28 | 显示全部楼层
支持一下,最近一直在做8266相关的东西。哈哈
回复

使用道具 举报

ID:104779 发表于 2018-12-10 22:45 | 显示全部楼层
请问你是用什么软件编写手机APP的呢?可经公布编手机APP软件吗?
回复

使用道具 举报

ID:462215 发表于 2019-1-16 17:09 | 显示全部楼层
观察学习
回复

使用道具 举报

ID:283315 发表于 2019-1-20 16:12 | 显示全部楼层
请问电机和STM32是怎么连接的  那个引脚接电机
回复

使用道具 举报

ID:138273 发表于 2019-3-13 09:14 | 显示全部楼层
我看马达引脚定义8个,四个轮子都单独控制的吗?
回复

使用道具 举报

ID:275398 发表于 2019-3-17 22:01 | 显示全部楼层
用手机网络可以使用吗?
回复

使用道具 举报

ID:493202 发表于 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 解决方案。

希望以上一些分享能对大家有帮助,欢迎交流~~
回复

使用道具 举报

ID:286638 发表于 2019-3-21 13:16 | 显示全部楼层
绝对支持,谢谢分享
回复

使用道具 举报

ID:87000 发表于 2019-3-21 15:34 | 显示全部楼层
STM32+ESP8266遥控Wifi小车程序设计与安卓APP使用资料下载
回复

使用道具 举报

ID:498851 发表于 2019-3-27 02:15 来自手机 | 显示全部楼层
好棒的样子,赞,好想试试
回复

使用道具 举报

ID:395480 发表于 2019-4-14 01:35 来自手机 | 显示全部楼层
很好很强大
回复

使用道具 举报

ID:424794 发表于 2019-4-29 08:52 来自手机 | 显示全部楼层
四轮和两轮
回复

使用道具 举报

ID:424794 发表于 2019-4-29 08:53 来自手机 | 显示全部楼层
四轮和两轮小车操作起来有差别的嘛?这个程序
回复

使用道具 举报

ID:523089 发表于 2019-5-4 17:04 | 显示全部楼层
敢问楼主大神,怎么改动让小车变为点动???
回复

使用道具 举报

ID:523089 发表于 2019-5-4 17:05 | 显示全部楼层
199610123 发表于 2019-4-29 08:53
四轮和两轮小车操作起来有差别的嘛?这个程序

这个程序输出的是8口,两个机的,只接前面4个io就行
回复

使用道具 举报

ID:523089 发表于 2019-5-4 17:21 | 显示全部楼层
点动问题解决了,请问下怎么改成AP模式,手机连8266

回复

使用道具 举报

ID:398067 发表于 2019-6-11 14:00 | 显示全部楼层
一直需要这个例子,谢谢分享
回复

使用道具 举报

ID:398067 发表于 2019-6-11 14:01 | 显示全部楼层
挺不错的源程序,很有用
回复

使用道具 举报

ID:511461 发表于 2019-6-12 16:12 | 显示全部楼层
谢谢大佬分享
回复

使用道具 举报

ID:31534 发表于 2019-6-29 11:26 | 显示全部楼层
怎么下了都是空白的
回复

使用道具 举报

ID:218449 发表于 2019-8-2 20:32 | 显示全部楼层
电机驱动用的什么?
回复

使用道具 举报

ID:564417 发表于 2019-8-9 16:36 | 显示全部楼层
不知道怎么改为在AP模式下
回复

使用道具 举报

ID:564417 发表于 2019-8-9 16:39 | 显示全部楼层
怎么改为在ESP8266的AP模式下,STM32和手机通信进行小车控制
回复

使用道具 举报

ID:563554 发表于 2019-8-22 14:37 | 显示全部楼层
好东西,谢谢
回复

使用道具 举报

ID:532469 发表于 2019-9-7 21:40 | 显示全部楼层
麻烦问一下编程用的是什么软件,是keil吗?还是别的?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表