0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32最小系统板与ESP01S接入机智云教程

机智云 2024-09-04 08:02 次阅读

本次采用STM32F103C8T6单片机、ESP-01S 模块、红外避障模块、蜂鸣器模块,OLED(0.96 iic)、继电器模块 、超声波模块,接入机智云平台,分别演示机智云平台的各类型数据点的用法。为嵌入式学习添砖加瓦,快速接入机智云云平台。

使用到的模块

ed0335ce-6a50-11ef-bb4b-92fbcf53809c.png

STM32F103C8T6

ed11b040-6a50-11ef-bb4b-92fbcf53809c.png

ESP-01S

ed189888-6a50-11ef-bb4b-92fbcf53809c.png

超声波模块(HC-SR04)

ed284f76-6a50-11ef-bb4b-92fbcf53809c.png

蜂鸣器模块

ed37f700-6a50-11ef-bb4b-92fbcf53809c.png

OLED(0.96 iic)

ed3c8b62-6a50-11ef-bb4b-92fbcf53809c.png

红外避障模块

ed554c56-6a50-11ef-bb4b-92fbcf53809c.png

继电器模块

ed73c3e8-6a50-11ef-bb4b-92fbcf53809c.png

USB A TTL CH340

基本工作

第一步:进入机智云开发者中心创建智能产品

机智云开发者中心

详细参考机智云文档中心

产品创建 - Gizwits

ed88653c-6a50-11ef-bb4b-92fbcf53809c.png

分别新建数据点

ed95aca6-6a50-11ef-bb4b-92fbcf53809c.png

第二步:ESP-01S烧录机智云固件

需要用到 USB A TTLCH340串口来对ESP01S进行烧录,连接图如下

edae759c-6a50-11ef-bb4b-92fbcf53809c.png

完成成连接,我们到机智云下载中心下载机智云对应的固件:

机智云下载中心地址(Gizwits)

edc7490a-6a50-11ef-bb4b-92fbcf53809c.png

解压我们可以看到有好多种固件,带combine的是合并固件,烧录只需要选择这一个即可,分别有 8M 16M 32M 大小的固件给我们烧录,这时候就需要去查看我们的ESP01S的flash大小是多少了。

eddabcba-6a50-11ef-bb4b-92fbcf53809c.png

通过去百度查找对应型号的esp8266,在查看该WIFI模组的Flash大小,我的为8M,所以我选择烧录 8M大小的合并固件。

edea3384-6a50-11ef-bb4b-92fbcf53809c.png

使用flash_download_tool工具下载(无需安装,解压直接使用)下载地址:工具|乐鑫科技 (espressif.com.cn)

ee0269a4-6a50-11ef-bb4b-92fbcf53809c.png

双击打开

ee17be6c-6a50-11ef-bb4b-92fbcf53809c.png

选择 ESP8266

ee2f4406-6a50-11ef-bb4b-92fbcf53809c.png

USB A TTL CH340 连接到电脑串口(如果显示不和我一样 USB-SERILACH340 (xxx),就是没有安装 CH340的驱动)

ee429880-6a50-11ef-bb4b-92fbcf53809c.png

添加文件

ee54bf1a-6a50-11ef-bb4b-92fbcf53809c.png

烧录选项

ee6ac4e0-6a50-11ef-bb4b-92fbcf53809c.png

好了就先擦除一下芯片以前的固件

ee9c909c-6a50-11ef-bb4b-92fbcf53809c.png

在进行烧录(显示红圈中的参数基本就烧录成功,硬件没问题,能读取到信息

eeb35a3e-6a50-11ef-bb4b-92fbcf53809c.png

烧录完成

eec8ac40-6a50-11ef-bb4b-92fbcf53809c.png

接下来就是测试了,把多余的线去除,理论上接线图如下

eede4a28-6a50-11ef-bb4b-92fbcf53809c.png

但是发现,我使用的是拓展坞供电,可能电流不够,导致掉串口,我就换了一种接法,使用STM32最小系统的3V3对ESP01s进行供电,连接图如下

eef373d0-6a50-11ef-bb4b-92fbcf53809c.png

注意设备的共地很重要

ef35be98-6a50-11ef-bb4b-92fbcf53809c.png

机智云下载中心下载机智云串口调试助手

下载连接:Gizwits

ef5d7b72-6a50-11ef-bb4b-92fbcf53809c.png

解压后双击打开

ef6f3006-6a50-11ef-bb4b-92fbcf53809c.png

点击新增

ef7aef5e-6a50-11ef-bb4b-92fbcf53809c.png

复制粘贴,我们新建产品的pk和ps

ef93eb62-6a50-11ef-bb4b-92fbcf53809c.png

新增成功

efaa93e4-6a50-11ef-bb4b-92fbcf53809c.png

选择串口,打开串口,点击初始化,有RX回复表示串口通信成功

efc6d23e-6a50-11ef-bb4b-92fbcf53809c.png

接下来就是机智云的下载中心下载机智云的APP对设备进行配网

下载地址:Gizwits

efd8d272-6a50-11ef-bb4b-92fbcf53809c.png

手机打开浏览器,扫描二维码进行下载

eff7437e-6a50-11ef-bb4b-92fbcf53809c.png

安装APP

f0110020-6a50-11ef-bb4b-92fbcf53809c.pngf028b274-6a50-11ef-bb4b-92fbcf53809c.png

权限全部允许

f037ed48-6a50-11ef-bb4b-92fbcf53809c.png

调试APP可以点击下方跳过登陆,直接使用

f0472eac-6a50-11ef-bb4b-92fbcf53809c.png

回到机智云串口调试助手点击初始化,过几秒在点击 Airlink 进入配网

f053362a-6a50-11ef-bb4b-92fbcf53809c.jpg

在到手机APP操作,点击添加设备后,选择一键配网

f05c13a8-6a50-11ef-bb4b-92fbcf53809c.png

记住需要Wifi的网段在 2.4G网段,不用使用 5G 或者2.4G和5G合并的网络,可以使用电脑开热点进行配网。

f06d9e7a-6a50-11ef-bb4b-92fbcf53809c.pngf081a050-6a50-11ef-bb4b-92fbcf53809c.png

在等待下图的过程中,可以发现机智云串口调试助手会有大量的数据接收到,可能是配网成功的现象。

f0968510-6a50-11ef-bb4b-92fbcf53809c.pngf0b778a6-6a50-11ef-bb4b-92fbcf53809c.png

稍作等待完成,如果不行,就退回到主界面,看一看到ESP01S以及联网了,与我的手机在同一局域网内,我们点击连接即可。

f0cf7636-6a50-11ef-bb4b-92fbcf53809c.png

机智云串口调试助手,上报数据

f0e834a0-6a50-11ef-bb4b-92fbcf53809c.pngf1051ec6-6a50-11ef-bb4b-92fbcf53809c.png

到此完成ESP01S的配网流程,ESP01S可以直接接到STM32最小系统的串口进行使用了。

接下来是各个模块与单片机的连接,接线图如下

f11a659c-6a50-11ef-bb4b-92fbcf53809c.png

STM32代码下载与cobeMX配置

利用机智云开发者中心的MCU开发便捷快速生成代码

下载好并解压缩机智云平台生成的代码。

f133d66c-6a50-11ef-bb4b-92fbcf53809c.png

打开解压好的STM32CubeMX文件,记住路径不能有中文!

f13b900a-6a50-11ef-bb4b-92fbcf53809c.png

配置IO口输入模式来接收红外避障模块的电平硬件 PC15

两种状态:

没反射——D0输出高电平——灭

灯反射——D0输出低电平——亮灯

f153c792-6a50-11ef-bb4b-92fbcf53809c.png

配置蜂鸣器控制引脚PB12

f1715b90-6a50-11ef-bb4b-92fbcf53809c.png

配置继电器控制引脚 PB13

f183eca6-6a50-11ef-bb4b-92fbcf53809c.png

配置板载LED灯的PC13引脚

f19e0848-6a50-11ef-bb4b-92fbcf53809c.png

配置超声波Trig引脚为 PA5

f1b73124-6a50-11ef-bb4b-92fbcf53809c.jpg

配置TIM3 选择通道1 并开启外部中断

f1d1aec8-6a50-11ef-bb4b-92fbcf53809c.jpgf1e3f150-6a50-11ef-bb4b-92fbcf53809c.png

选择区分文件方便使用

最后生成代码(不可以有中文路径!!)

f200dc8e-6a50-11ef-bb4b-92fbcf53809c.jpg

打开MDK-ARM工程文件夹

f21671b6-6a50-11ef-bb4b-92fbcf53809c.png

添加外设文件夹

f22bdfb0-6a50-11ef-bb4b-92fbcf53809c.png

在project 中添加Hardware 文件夹的编译路径,以及添加进入工程

f2447bd8-6a50-11ef-bb4b-92fbcf53809c.pngf255f6ba-6a50-11ef-bb4b-92fbcf53809c.png

补全外设的头文件,在main.h中添加

include"stm32f1xx_hal.h"f265eb92-6a50-11ef-bb4b-92fbcf53809c.png

编译无误后继续

f28b9c02-6a50-11ef-bb4b-92fbcf53809c.png

添加头文件

f2ac698c-6a50-11ef-bb4b-92fbcf53809c.png

主函数中初始化OLED

f2d3a74a-6a50-11ef-bb4b-92fbcf53809c.png

While(1)死循环中,实现逻辑代码

f2e71e42-6a50-11ef-bb4b-92fbcf53809c.png

while (1) { SR04_GetData(); if(Last_i!=(uint32_t)distant) //当前的距离和上一次的距离不同则进入 { // currentDataPoint.valuehongwai = ;//Add Sensor Data Collection OLED_ShowString(1,1,"dis:",OLED_8X16); OLED_ShowNum(32,1,distant,3,OLED_8X16); OLED_ShowString(1,16,"Buzzer:",OLED_8X16); currentDataPoint.valueHC_SR04 = distant;//Add Sensor Data Collection if(distant<=30) { OLED_ShowString(56,16,"ON ",OLED_8X16); HAL_GPIO_WritePin(GPIOB,GPIO_PIN_12,GPIO_PIN_RESET); //蜂鸣器 响 currentDataPoint.valueBuzzer = 1;//Add Sensor Data Collection }else { OLED_ShowString(56,16,"OFF",OLED_8X16); HAL_GPIO_WritePin(GPIOB,GPIO_PIN_12,GPIO_PIN_SET); //蜂鸣器 停 currentDataPoint.valueBuzzer = 0;//Add Sensor Data Collection } Last_i=(uint32_t)distant;// Last_i 保存上一次的值 } OLED_ShowString(1,32,"Relays:",OLED_8X16); if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_13)) { OLED_ShowString(56,32,"ON ",OLED_8X16); }else { OLED_ShowString(56,32,"OFF",OLED_8X16); } OLED_ShowString(1,48,"LED:",OLED_8X16); if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_15)) //读取 红外避障模块电平 {//高电平,就是没有遮挡 OLED_ShowString(56,48,"OFF",OLED_8X16); HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);//给板载LED低电平 灭 }else {//低电平,有物体遮挡 板载LED亮 OLED_ShowString(56,48,"ON ",OLED_8X16); HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);//给板载LED高电平 亮 } OLED_Update(); HAL_Delay(300); /* USER CODE END WHILE */
/* USER CODE BEGIN 3 */ userHandle(); gizwitsHandle((dataPoint_t *)¤tDataPoint);}

在gizwits_product.c 的第79行后面添加控制继电器的代码,如下图

f2fcd142-6a50-11ef-bb4b-92fbcf53809c.png

编译前勾选下图中的USEMicro LIB

f3100744-6a50-11ef-bb4b-92fbcf53809c.png机智云开发者中心查看数据

f32eab2c-6a50-11ef-bb4b-92fbcf53809c.pngAPP中查看数据

f345a9bc-6a50-11ef-bb4b-92fbcf53809c.png

成果图

f35399c8-6a50-11ef-bb4b-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6035

    文章

    44554

    浏览量

    634694
  • STM32
    +关注

    关注

    2270

    文章

    10896

    浏览量

    355757
  • 机智云
    +关注

    关注

    2

    文章

    588

    浏览量

    26393
收藏 人收藏

    评论

    相关推荐

    如何使用STM32F103RC配合esp-01s接入机智的物联网?

    如何使用STM32F103RC配合esp-01s接入机智的物联网?
    发表于 12-14 06:00

    怎样去使用基于stm32f1的esp01s驱动库呢

    @基于stm32f1的esp01s的驱动库及使用基于用户zero_rose的驱动改进,文章来源STM32ESP01驱动库_面向对象的形式第一次写博客,如有错误请多包涵。话不多说,直接
    发表于 01-21 12:41

    基于STM32机智平台控制设备开关的相关资料推荐

    虚拟按键控制设备开关(设备上的ed灯可方便识别)硬件stm32系列开发 (作者使用的是单片机stm32f103c8最小系统esp8266-01
    发表于 02-14 07:42

    STM32F103+ESP8266使用工程模板接入机智的过程

    正点原子STM32mini开发+ESP8266接入机智博主是一位刚刚接触
    发表于 02-14 07:47

    ESP8266-01S接入机智物联网平台

    接入机智物联网平台,首先需要烧写机智的固件,官网就有免费下载直接使用!下载对应固件包ESP8266-
    发表于 04-06 18:32

    基于OTA升级的ESP01S固件测试工具

    基于OTA升级的ESP01S固件测试工具
    发表于 07-12 10:26 19次下载

    STM32最小系统电容的选取

    STM32最小系统电容的选取
    发表于 11-17 15:21 12次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>最小系统</b><b class='flag-5'>板</b>电容的选取

    STM32F4最小系统的设计(转载)

    STM32F4最小系统的设计(转载)
    发表于 11-17 16:51 50次下载
    <b class='flag-5'>STM32</b>F4<b class='flag-5'>最小系统</b><b class='flag-5'>板</b>的设计(转载)

    基于STM32机智平台控制设备开关(物联网)

    ) 功能简单说明设备开机直接联网使用机智手机端app搜索到设备并连接成功连接后 通过按下off/on手机虚拟按键控制设备开关(设备上的ed灯可方便识别)硬件stm32系列开发
    发表于 12-08 19:36 6次下载
    基于<b class='flag-5'>STM32</b>的<b class='flag-5'>机智</b><b class='flag-5'>云</b>平台控制设备开关(物联网)

    正点原子STM32F103+ESP8266使用工程模板接入机智的详细步骤

    正点原子STM32mini开发+ESP8266接入机智博主是一位刚刚接触
    发表于 12-08 20:21 16次下载
    正点原子<b class='flag-5'>STM32F103+ESP</b>8266使用工程模板<b class='flag-5'>接入</b><b class='flag-5'>机智</b><b class='flag-5'>云</b>的详细步骤

    使用blinker控制esp01s Relay继电器模块

    . ESP01模块上电和信号传输在天线区域右下角有2个LED灯,红色LED上电的时候闪烁,串口通讯的时候蓝色LED闪烁;ESP01s整个模块上只有一个蓝色LED,上电和串口通讯都是蓝色LED闪烁
    发表于 04-27 10:45 9次下载
    使用blinker控制<b class='flag-5'>esp01s</b> Relay继电器模块

    使用小度音箱blinker控制ESP01S Relay继电器模块

    一. 使用ESP01S模块,PIN脚定义如下: 管脚功能如下: ESP01S模块原理图: ESP01S模块比ESP01模块做了以下优化: LED灯的管脚发生变化,由
    发表于 04-28 11:39 5次下载
    使用小度音箱blinker控制<b class='flag-5'>ESP01S</b> Relay继电器模块

    stm32最小系统原理图下载

    stm32最小系统原理图免费下载
    发表于 07-01 15:07 17次下载

    机智开源自动化控制篇-接近报警系统

    本次采用STM32F103C8T6单片机、ESP-01S模块、红外避障模块、蜂鸣器模块,接入机智平台,完成接近报警
    的头像 发表于 08-31 08:02 301次阅读
    <b class='flag-5'>机智</b><b class='flag-5'>云</b>开源自动化控制篇-接近报警<b class='flag-5'>系统</b>

    【有奖直播】STM32最小系统ESP01S接入机智实战指南

    直播亮点1、零门槛接入机智平台:无需复杂准备,快速实现智能化转型,轻松上手。2、手机App控制实现:通过手机App即可控制智能设备,无需开发经验,适合零基础开发者。3、高效低成本开发:通过
    的头像 发表于 09-05 08:03 231次阅读
    【有奖直播】<b class='flag-5'>STM32</b><b class='flag-5'>最小系统</b><b class='flag-5'>板</b>与<b class='flag-5'>ESP01S</b><b class='flag-5'>接入</b><b class='flag-5'>机智</b><b class='flag-5'>云</b>实战指南