esp8266与stm32、手机通讯(原子云)——hal库(有代码)

2023-11-16

本文所讲: 正点原子的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就可以的。这里博主希望各位可以在学习过程中自己解决问题,最后希望我们一起进步。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

esp8266与stm32、手机通讯(原子云)——hal库(有代码) 的相关文章

  • 半导体工艺流程

    本文首发 公众号 半导体产业园 转载链接 https www sohu com a 257666855 100269991 spm smpc content share 1 16073320927520q75qyB comment area

随机推荐

  • Java 简历 专业技能可以这样写

    关于Java的专业技能可以写 1 熟练掌握Java语言以及面向对象设计思想 具有扎实的Java编程功底和编码规范 2 熟练使用Spring SpringMVC MyBatis MyBatis Plus tkmybatis Spring bo
  • Java高并发秒杀系统(二)

    版权声明 本文为博主原创文章 未经博主允许不得转载 https blog csdn net GallenZhang article details 78626730 秒杀系优化分析 1 详情页面 2系统时间 3地址暴露接口 4执行秒杀操作
  • 手把手教你如何快速搭建个人博客

    之前有录制和编写过WordPress搭建个人博客的内容 但是都比较麻烦 需要在控制台黑框复制运行相关的命令 很多没接触过过的用户还是有一定的困难 那么今天就把最最最简单的方法分享给大家 全程都是可视化的操作 不需要在复制相关的命令了 赶快跟
  • GitHub上精确搜索查找项目笔记

    1 通过in关键词限制搜索范围 1 abc in name 项目名里面包含abc 2 abc in description 项目描述包含abc 3 abc in readme 项目的readme文件里包含abc 4 还可以通过abc in
  • Error: failed to download “stable/openebs“

    安装openebs出现下面的异常 Error failed to download stable openebs hint running helm repo update may help 解决方案 未修改前的helm repo源 修改h
  • 解决在 Win7 旗舰版虚拟机中安装 VMware Tools 失败问题

    报错提示如下 安装程序无法自动安装Virtual Machine Communication Interface VMCI 驱动程序 必须手动安装此驱动程序 解决方法 安装以下两个补丁 1 kb4474419 2 kb4490628 按顺序
  • android 调用短信,Android实现接收短信和发送短信功能

    在学接收短信和发送短信之前 先简单介绍一下 SMS 短消息服务 SMS Short Message Service 短信息服务 是一种存储和转发服务 也就是说 短信息并不是直接从发信人发送到接收人 而是始终通过 SMS 中心进行转发 如果接
  • linux运行rs程序,【linux-基础】安装scp,rz,rs命令

    在测试中需要在两台虚拟机之间传递文件 首先想到的是scp命令 结果提示 bash scp command not found 想当然用yum install scp命令安装 结果提示 No package scp available 后来发
  • WebDriver概述

    什么是WebDriver Webdriver Selenium2 0 是一种用于Web应用程序的自动测试工具 它提供了一套友好的API Webdriver完全就是一套类库 不依赖于任何测试框架 除了必要的浏览器驱动 WebDriver AP
  • 用Python画奥运五环

    最近接触到了Python的一个有趣的库turtle 写了一个画奥运五环的程序 代码如下 用turtle模块绘画奥运五环 import turtle 设置公共属性 turtle width 10 第一个环 turtle color black
  • 华为OD机试 - 最大社交距离(Java)

    题目描述 疫情期间需要大家保证一定的社交距离 公司组织开交流会议 座位一排共 N 个座位 编号分别为 0 N 1 要求员工一个接着一个进入会议室 并且可以在任何时候离开会议室 满足 每当一个员工进入时 需要坐到最大社交距离 最大化自己和其他
  • IOS开发笔记之常用的第三方库(太多了。)

    图像 1 图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用 可显示来自手机的图片或者是网络图片 可自动从网络下载图片并进行缓存 可对图片进行缩放等操作 下载 https github com mwa
  • js-- 1-100循环

  • Linux系统中运行.sh文件的几种方法

    在Linux系统中执行 sh文件的几种方法 1 cd到 sh文件所在的目录 然后执行 xxx sh 前提 该 sh文件要有可执行的权限 chmod u x xxx sh 2 在任何路径下 输入 sh文件的绝对路径进行执行 前提 该 sh文件
  • 统计代码耗时

    二 常规方法 2 1 时间差统计 这种方式是最简单的方法 记录下开始时间 再记录下结束时间 计算时间差即可 public class TimeDiffTest public static void main String args thro
  • 安鸾之中间件系列

    声明 文中所涉及的技术 思路和工具仅供以安全为目的的学习交流使用 任何人不得将其用于非法用途以及盈利等目的 否则后果自行承担 本文转发于涂寐 s Blogs https 0xtlu github io 0x00 tomcat8弱口令 0o0
  • upx3.94手动脱壳

    工具 吾爱破解论坛Ollydbg ImportREConstructor upx3 94下载地址 https github com upx upx releases download v3 94 upx394w zip 环境 XP 还是XP
  • 换盘符cd的用法

    如果是在本盘内切换文件夹 直接使用cd 后面跟地址即可 如果是跨区切换地址 cd 后面就需要跟 d 斜杠d d就代表着跨分区切换地址 cd d d C ProgramData Anaconda3 Scripts gt cd d d d gt
  • linux之查看端口占用

    第一章 linux之帮助命令 第二章 linux命令行快捷键 第三章 linux之防火墙 第四章 linux之服务开机自启 第五章 linux之关机与重启 第六章 linux之环境变量 第七章 linux之目录操作命令 第八章 linux之
  • esp8266与stm32、手机通讯(原子云)——hal库(有代码)

    本文所讲 正点原子的wifi模块esp8266与正点原子开发板战舰V3 stm32f103zet6 及手机app通讯 esp8266分为三种工作模式 STA 8266连接到网络比如wifi 手机热点等 AP 8266作为热点 由手机连接到8