esp8266与stm32、手机通讯(原子云)——hal库(有代码)
本文所讲: 正点原子的wifi模块esp8266与正点原子开发板战舰V3(stm32f103zet6)及手机app通讯
esp8266分为三种工作模式:
STA:8266连接到网络比如wifi、手机热点等。
AP:8266作为热点,由手机连接到8266.
STA+AP:两种模式兼容。
本文章的实现是采用第一种方式。
首先百度搜索原子云(手机通讯就是用原子云app),进入设备管理,新建设备,(图中的是我以前建的,如果你第一次使用原子云下图应该没有设备)。
选择ESP8266,填写设备名称和密码。
上图的的编号和你刚才设置的密码接下来会用到。(用你自己的编号)
硬件连接:
必须短接:PB11(RX)和 GBC_TX 以及 PB10(TX)和 GBC_RX。
此时8266与开发板的串口3相连(波特率为115200)。
代码实现:
利用hal库与keil5进行实现。cubemx里配置好串口1(需要在代码里重定义printf函数)和串口3。(既然使用8266了,相信这一步对你来说小菜一碟)
首先了解几个AT指令
AT+CWMODE=1 //设置8266为STA模式
AT+RST //复位
WIFI CONNECTEDWIFI GOT IPAT+CWJAP=“热点名称”,“热点密码”//连接手机热点
AT+ATKCLDSTA=“上面说的编号”,“设置的密码”//连接到原子云
除连接到原子云需要每次上电都配置外,其余指令只需初始化一次,因此我们可以利用串口1和串口助手直接发送AT指令完成前三个指令。
将8266的VCC连到单片机的5V,GND与单片机的GND相连,TXD与单片机的RXD相连,RXD与单片机的TXD相连
发送指令如下图,发送第一个指令时极有可能乱码,再发送一次就好了
发送复位指令后会出现乱码和一个logo,如下图
最后发送连接手机热点的指令。在此步骤之前要先打开手机热点,然后就可以出现下图内容。
完成以上步骤后将8266插到之前的排母上,然后只需在代码里实现连接到原子云即可。
代码实现:
在主函数中添加如下代码
你可能发现代码好像怪怪的,好像多了好多 \ ,这里要提到转义字符的概念,字符串中是不能直接输出 " 的,解决方法就是在 " 前加 \ ,这样就可以输出 " 了,这里的 \ " 就是转义字符。
然后编译,下载到单片机,稍等片刻,即可连接到原子云。
这样就完成了电脑与单片机通讯了吗?并没有!我们现在是在已经连接到手机热点的基础上进行的与原子云连接。那如果将热点关闭,单片机断电。然后打开热点,单片机重新上电会发生什么?你可以试一下,你会发现连接不到原子云了。
这是因为代码的执行速度比8266连接到手机的速度快得多,也就是当8266还没连接到手机时,8266连接原子云的指令已经执行完毕了。
所以在执行连接到原子云的指令之前,应该延时几秒等待8266连接到手机热点,我的8266连接到手机时间是7s左右,所以我延时8s。
上文说过,单片机重新上电后发送的第一条消息会乱码,所以这里我们发送两次指令,间隔500ms。这样就实现了电脑与单片机通讯。
手机与单片机通讯
下载原子云app。
链接:https://pan.baidu.com/s/1Kzpj4MArcxq1judQC3swPA
提取码:t7vu
安装成功之后进入登陆界面,需要输入的token需要到原子云网页里找,进入原子云网页,点击左下角账号信息,即可看到API TOKEN.
登陆成功后会发现一片空白。
点击分组管理,点击创建分组,分组名称随便起。之后点击操作里的分组设置。
之后勾选,并移动到右面,点击保存。
按以上步骤操作后,重新登陆原子云app。即可与单片机通讯。
下面举个例子,手机输入123使led亮灭
代码如下:
首先定义有三个元素的数组,
uint8_t buffer[3];
之后在主函数的while里添加以下代码,
方便你cv
HAL_UART_Receive(&huart3, buffer,3,0xffff);if(strcmp(buffer,"123") == 0){HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);//我自己定义的}
别忘了添加头文件
> #include <string.h>
之后编译,下载到单片机中。即可发现led一直在闪烁。
至此,本文所讲内容结束了,大家也可以尝试用串口中断来实现消息的发送。其实当你把这个功能和项目里其他功能结合时可能会出现一些逻辑上的问题,并不是直接cv就可以的。这里博主希望各位可以在学习过程中自己解决问题,最后希望我们一起进步。
esp8266与stm32、手机通讯(原子云)——hal库(有代码)相关推荐
- STM32控制步进电机:基于HAL库定时器中断的闭环步进电机驱动+精准控制脉冲数
STM32控制步进电机:基于HAL库定时器中断的闭环步进电机驱动+精准控制脉冲数 一.步进电机闭环驱动器 二.CubeMx配置 1.Clock Configuration 2.脉冲端 定时器配置 3. ...
- stm32蓝牙遥控小车(hal库)
一.cubemx配置 我使用的板子是stm32f103rct6,这里我们使用串口1,选择异步模式,注意波特率的选择,一般是9600或者115200,如果波特率选择不对的话是不能进行通讯的(我小车怎么也 ...
- stm32 IOT_基于STM32平台的cubeMX和HAL库详解
课程简介: <朱有鹏老师单片机完全学习系列课程>总共5季,其中第1.2季是51单片机学习,第3.4.5季是STM32单片机与RTOS学习.整个课程时长约250小时,是一套零基础.全面系统. ...
- VL53L0x TOF激光测距的 stm32 HAL库驱动代码
VL53L0x 是ST公司生成的 TOF激光测距传感器,得益于非常小巧的尺寸,很容易放入手机.无人机中,提供更加精准.稳定的测距方式. 本文代码,使用 STM32F4xx的 HAL库. VL53L0x ...
- STM32单片机开发应用教程 (HAL库版) ---基于国信长天嵌入式竞赛实训平台(CT117E-M4)教程汇总 与第一章 硬件平台简介
写在前面-- 作为<STM32单片机开发应用教程(HAL库版)-基于国信长天嵌入式竞赛实训平台(CT117E-M4)>教程汇总,第一章将介绍国信长天嵌入式竞赛实训平台(CT117E-M4) ...
- STM32学习笔记-SMT32使用HAL库UART中断方式使用
目录 1.引言 2.配置 3.流程 1.引言 近来需要使用蓝牙模块,再了解到蓝牙模块等无线模块许多使用串口透传,便决定在研究一下串口UART 的使用方法. 由于用的板子种类每次都不一样,有F103 有 ...
- STM32串口通信原理及HAL库代码stm32f1xx_hal_uart.c阅读分析
原理性说明: //参考网址:https://blog.csdn.net/u010561799/article/details/89526266 在USART的发送端有2个寄存器,一个是程序可以看到的U ...
- 四针脚0.96寸OLED屏幕标准库代码转Cube Max创建的HAL库工程代码
stm32学了一个多月了. 刚开始是跟着江科大学的,讲的很好,里面是用标准库. 后来因为Hal库用着简单,就开始学习Hal库,跟的是b站的[小蜜蜂笔记]基于STM32CubeMX的嵌入式开发基础教程. ...
- 手机通讯加密软件Peerio上架,代码全部开源
近日苹果公司与FBI就解锁枪击案犯iPhone手机的分歧对簿公堂,虽然包括斯诺登在内不少安全专家认为作为NSA棱镜项目"合作厂商"之一的苹果公司与FBI在上演一出障人耳目的双簧戏, ...
- stm32 看门狗 BKP(HAL库)
(一)概述 stm32有两个看门狗:硬件看门狗(LSI 40KHz,时间精度不高)和窗口看门狗(APB1). (二)硬件看门狗实现代码 IWDG_HandleTypeDef hiwdg;// 硬件看门 ...
最新文章
- “人机耦合”变成“人机大战” AI同传离成熟还有多远
- mysql 5.1 备份_mysql 5.1备份到5.0 USING BTREE
- Radio stations CodeForces - 762E (cdq分治)
- 网络matlab程序_【Matlab】官网资源盘点
- ASP.NET 抓取网页内容
- python目标检测答案_入门指南:用Python实现实时目标检测(内附代码)
- Windows系统克隆***与防范
- 手机端java编辑器验证正确_java – 使用编辑器验证表的单元格
- 为什么ArcGIS 10.3导出 Shapefile的字段名会被截断成3个汉字?解决方法如下
- STM32学习:按键控制LED
- Lesson 2 Gradient Desent
- 拓端tecdat|用R语言模拟随机服务排队系统
- python高级编程教程_python高级编程——入门语法(一)
- 拍照识别身份证 Android/iOS身份证识别技术
- oracle yyyymmdd 年末,oracle中日期格式'yyyy-mm-dd'和'yyyymmdd'的区别
- 信号降噪方法——基于自适应神经模糊推理系统(ANFIS)的降噪处理
- PR导入视频后无声音
- lzw算法c语言程序,LZW算法压缩c语言实现
- Machine Learning | (1) Scikit-learn与特征工程
- Print a rhombus (C++)
热门文章
- 【大学生Python】根据身高体重计算 BIM 指数
- 太硬核了!十天十场技术干货分享,其中有一个大佬还是我的死党!
- 知道怎么体重变轻吗?
- 视频矩阵系统中三代OSD字符叠加技术全面解析
- react项目启动报错”无法使用 JSX,除非提供了 “--jsx“ 标志。ts(17004)“
- 【浏览器】ie内核等概念
- 同义词搜索是如何做到的?
- 华为nova5pro以后会不会有鸿蒙系统,18个月不卡?这四款华为2年还流畅,支持鸿蒙OS...
- 基于 HTML5 结合互联网+ 的 3D 隧道
- 模糊查询 按字数多少排序