物联网应用开发--STM32与机智云通信(ESP8266 Wi-Fi+手机APP+LED+蜂鸣器+SHT20温湿度传感器)
实现目标
1、熟悉机智云平台,会下载APP
2、熟悉新云平台创建产品,项目虚拟调试
3、掌握云平台生成MCU代码,并移植。机智云透传固件的下载
4、具体目标:(1)注册机智云平台;(2)下载手机APP,并学会使用;(3)新建一个联网方案为WIFI的项目;(3)云平台生成STM32F103代码,并移植到开发板。下载机智云固件;(4)手机、云平台,开发板互联,能够控制LED、蜂鸣器,温湿度传感器数据数据能够上传。
一、机智云概述
广州机智云物联网科技有限公司旗下品牌,全球领先的智能IoT开发及云服务平台,国内首个物联网自助开发平台。
截至2023年6月,机智云智能IoT开发及云服务平台累计拥有超过35万开发者,连接超过3000万设备,服务超过20000家企业,覆盖200+个国家和地区
二、下载手机APP
APP下载网址:https://devdocs.gizwits.com/download.html#166419072635445 亦可以扫右边的二维码下载安装。
说明:如果下载的最新版本使用不了,可以下载旧一点的版本安装。
三、机智云开发者中心使用
3.1 云平台注册
注册网址:https://dev.gizwits.com/zh-cn/developer/intro
3.2 创建新产品
(1)注册—>登录—>打开开发者中心—>点击创建
(2)照明—>球泡灯—>自定义方案—>灯
(3)产品名称:智能家居控制系统;类型:单品(WI-FI);数据传输方式:变长;功耗:正常 。设置好后点击“创建”。
(4)点击“去编辑” 添加标准数据点 可写:BEEP, LED1,LED2,LED3,LED4 布尔型 等共四个; 只读:temp,hum 数值型:(0-100),分辨率 :1 等共2个;
3.3 用虚拟设备调试产品
(1)打开机智云手机APP,登录界面点击“跳过”;打开云平台开发界面左侧“虚拟设备”;用手机APP扫描云平台左上角的二维码“扫码绑定虚拟设备”。现在可以虚拟调试设备了。
说明:设置数据后,可以点击“上报”,在手机APP端就能看到对应的信息。
3.4 生成MCU代码并下载
打开MCU开发,选择独立MCU方案,选择MCU平台为STM32F103C8x,复制PS并粘贴,点击生成代码包,再下载。
四、硬件连接
1、开发板ESP8266模块原理图
说明:P7为USART1、USART2和WIFI功能短接端子。本实验中,用两个跳接帽分别接上P7(3与5)、P7(4与6)。我们通过PC串口助手、USB转串口(CH340)给WIFI模块烧写固件。
五、AT固件烧录
打开 PC 端的flash_download_tool软件,选择ESP8266 DownloadTool,选择待烧录的机智云固件 GAgent_00ESP826_04020025_32Mbit_201708301927_combine.bin 文件,并设置好 bin 文件烧录至芯片的地址信息和其他的一些信息。
软件和固件下载地址:https://download.csdn.net/download/luojuan198780/89336791
烧写步骤:
1、先按住开发板上KIO0和WRST两个按键,再点击软件左下方的“START”按钮,再依次松开WRST、KIO0两个按键。
2、验证 打开串口助手,串口参数:115200,1,8,无
如果固件下载成功,串口助手上会打印机智云心跳信息,如下图所示:
六、STM32CubeMX配置
将上面3.4 下载好的代码包解压,打开里面的ioc工程文件,进行下面配置:
6.1 STM32CubeMX上修改管脚
将KEY1:PB10 改为 PB11 , KEY2:PA8 改为PB10 ,输入模式。以适配开发板,见6.2图。
6.2 添加4个LED,1个蜂鸣器
(1)添加LED1-LED4(PB9,PB8,PB5,PB4),初始电平为高电平;(2)添加BEEP(PC13),初始电平为低电平。
6.3 I2C(SHT20温湿度传感器)
机智云工程采样硬件I2C ,初始化时卡死,改采用模拟I2C,PB6-SCL PB7-SDA .两个管脚设置为开漏输出。
6.4 生成代码设置
默认配置说明:(1)USART1用于调试打印;(2)USART2用于与ESP8266 透传模块通信(波特率9600);(3)采用外部晶振,系统时钟72MHz;(4)原版还开启了ST-LINK下载。
七、程序设计
7.1 机智云下行控制
(1)打开gizwits_product.c 文件中 gizwitsEventProcess 函数,编写LED和蜂鸣器的控制逻辑。以LED1为例,其它LED2-LED4、BEEP 类似。
if(0x01 == currentDataPoint.valueLED1)
{HAL_GPIO_WritePin(GPIOB, LED1_Pin, GPIO_PIN_RESET);//打开LED1 }
else
{HAL_GPIO_WritePin(GPIOB, LED1_Pin, GPIO_PIN_SET);//关闭LED1
}
7.2 传感器数据上行上传
7.3.1 移植模拟SHT20 驱动(HAL版本)至工程
(1)将sht20.c 、sht20.h 两个文件复制到工程...\Hal 目录下
SHT20驱动文件下载地址:https://download.csdn.net/download/luojuan198780/89345453
(2)点击添加 sht20.c 文件至工程
(3)添加sht20.h头文件至gizwits_product.c文件头部,定义两个变量。
#include "gpio.h"
#include "sht20.h"float tm,rh;
(4)在gizwits_product.c文件 userHandle(void)函数中编写数据上传程序
void userHandle(void)
{static uint32_t thLastTimer = 0;if((gizGetTimerCount() - thLastTimer) > 1000){SHT20_GetValue(&tm,&rh);printf("SHT20_tem:%.1f℃\r\n",tm);printf("SHT20_hum:%.1f%%\r\n",rh); currentDataPoint.valuetemp = tm;//Add Sensor Data CollectioncurrentDataPoint.valuehum = rh;//Add Sensor Data CollectionthLastTimer = gizGetTimerCount(); }
}
八、项目调试
8.1 串口打印调试信息
长按K2,学会让WIFI处于Airlink 模式,确保在这个模式下手机、开发板互联才会成功。
8.2 网络配置
(1)先提供一个可用的wifi给开发板和装有机智云APP的手机,让手机连上此WIFI。
(2)给开发板上电。再打开手机”机智云”APP,完成以下操作:
(3)输入提供的WiFi名称及密码,选着WIFI模组的厂家
(3)在点击“我已完成上述操作”之前,长按开发板K2按键2秒左右,让WiFi模块进入AirLink 模式。
(4)显示黄色创建的设备,则识别成功,可以点击进行进行控制操作或查看上传数据。
总结
相关文章:

物联网应用开发--STM32与机智云通信(ESP8266 Wi-Fi+手机APP+LED+蜂鸣器+SHT20温湿度传感器)
实现目标 1、熟悉机智云平台,会下载APP 2、熟悉新云平台创建产品,项目虚拟调试 3、掌握云平台生成MCU代码,并移植。机智云透传固件的下载 4、具体目标:(1)注册机智云平台;(2&…...

【高阶数据结构(七)】B+树, 索引原理讲解
💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:高阶数据结构专栏⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学习更多数据结构 🔝🔝 高阶数据结构 1. 前言2. B树讲解…...

ML307R OpenCPU 网络初始化流程介绍
一、网络初始化流程 二、函数介绍 三、示例代码 四、代码下载地址 一、网络初始化流程 模组的IMEI/SN获取接口可在include\cmiot\cm_sys.h中查看,SIM卡IMSI/ICCID获取接口可以在include\cmiot\cm_sim.h中查看,PDP激活状态查询可以在include\cmiot\cm_modem.h中查看 二、函…...

分享:怎么才能保证大数据查询的准确性?
随着大数据应用到金融风控领域,大数据越来越重要了,很多朋友在查大数据的时候都会遇到一个问题,那就是自己查询的大数据什么信息都没有,要么就是很少,这是什么原因呢?要怎么才能保证大数据查询的准确性呢?下面小编就…...

AI Agent教育行业落地案例
【AI赋能教育】揭秘Duolingo背后的AI Agent,让学习更高效、更有趣! ©作者|Blaze 来源|神州问学 引言 随着科技的迅猛发展,人工智能技术已经逐步渗透到我们生活的各个方面。而随着AI技术的广泛应用,教育培训正引领着一场新的…...
Flutter 中的 LimitedBox 小部件:全面指南
Flutter 中的 LimitedBox 小部件:全面指南 Flutter 是一个功能强大的 UI 框架,它提供了大量的小部件来帮助开发者构建美观且响应式的用户界面。在 Flutter 的布局小部件中,LimitedBox 是一个不太常见但非常有用的组件,它可以用来…...

OrangePi AIpro初体验,码农的第一台个人AI云电脑
介绍 香橙派联合华为精心打造,建设人工智能新生态 官网地址:Orange Pi AIpro Orange Pi官网-香橙派 Orange Pi论坛:Orange Pi论坛 昇腾社区:为开发者免费提供数百个代码参考样例昇腾社区-官网丨昇腾万里 让智能无所不及 学习…...

剪画小程序:”霸屏各大平台“的黏土滤镜是怎么制作的呢?
最近,网上出现大量“黏土”风格的人物照片。尤其是在社交平台,这类型的分享数量急剧上升。 这是马斯克开车的样子 还有这张是周杰伦七里香的专辑图片 一张照片,十几秒钟,就能还原出你在黏土世界的样子。 以上这些照片是用-【剪画…...

图解 BERT 模型
节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学. 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总合集&…...
关于软件设计模式的理解
系列文章 关于时间复杂度o(1), o(n), o(logn), o(nlogn)的理解 关于HashMap的哈希碰撞、拉链法和key的哈希函数设计 关于JVM内存模型和堆内存模型的理解 关于代理模式的理解 关于Mysql基本概念的理解 关于软件设计模式的理解 文章目录 前言一、软件设计模式遵循的六大原则…...
Java开发官方文档
Spring中文网 Spring Cloud中文网 Hutool工具类 Ant Design官方文档 遇见狂神说学习文档 若依后台管理系统测试环境 FineBI官方文档 vscode教程 新一代微服务全家桶AlibabaCloudSpringCloud实战 分布式任务调度平台XXL-JOB...

AI大模型探索之路-实战篇9:探究Agent智能数据分析平台的架构与功能
系列篇章💥 AI大模型探索之路-实战篇4:深入DB-GPT数据应用开发框架调研 AI大模型探索之路-实战篇5:探索Open Interpreter开放代码解释器调研 AI大模型探索之路-实战篇6:掌握Function Calling的详细流程 AI大模型探索之路-实战篇7…...
本地spark3.5(不整合hive) 集成paimon0.9
spark官网下载集成hadoop的spark包: spark-3.5.1-bin-hadoop3.... 解压后 环境变量配置 SPARK_HOME spark-defaults.conf 中增加一行配置(避免启动spark-sql报错hive元数据连不上): spark.sql.catalogImplementationhive 打开paimon官网: https://paimon.apache.org/docs/mas…...

Linux IO模型深度解析与实战应用
linux的5种IO模型 一、这里IO是什么 操作系统设有用户态与内核态,确保系统安全。应用程序默认在用户态运行,而执行如IO操作等底层任务时,需切换至内核态以高效执行。 服务器从网络接收的大致流程如下: 1、数据通过计算机网络来到了网卡 2、把网卡的数据读取到 socket 缓…...

软件系统开发标准流程文档(Word原件)
目的:规范系统开发流程,提高系统开发效率。 立项申请需求分析方案设计方案评审开发调整测试阶段系统培训试运行测试验收投入使用 所有文档过去进主页获取。 软件项目相关全套精华资料包获取方式①:点我获取 获取方式②:本文末个人…...

嵌入式进阶——外部中断(EXTI)
🎬 秋野酱:《个人主页》 🔥 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 STC8H中断外部中断外部中断编写配置外部中断调用中断触发函数 外部中断测试测试外部中断0测试外部中断2、3或者4 PCB中断设计 STC8…...

flinkcdc 3.0 源码学习之客户端flink-cdc-cli模块
注意 : 本文章是基于flinkcdc 3.0 版本写的 我们在前面的文章已经提到过,flinkcdc3.0版本分为4层,API接口层,Connect链接层,Composer同步任务构建层,Runtime运行时层,这篇文章会对API接口层进行一个探索.探索一下flink-cdc-cli模块,看看是如何将一个yaml配置文件转换成一个任务…...

香橙派 AIpro开发体验:使用YOLOV8对USB摄像头画面进行目标检测
香橙派 AIpro开发体验:使用YOLOV8对USB摄像头画面进行目标检测 前言一、香橙派AIpro硬件准备二、连接香橙派AIpro1. 通过网线连接路由器和香橙派AIpro2. 通过wifi连接香橙派AIpro3. 使用vscode 通过ssh连接香橙派AIpro 三、USB摄像头测试1. 配置ipynb远程开发环境1.…...
Python中正则表达式详解
Python中正则表达式详解 引言 正则表达式是一种用于字符串搜索和操作的强大工具。它使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在Python中,正则表达式通过内置的re模块来实现,使得文本处理变得简洁而高效。 正则表达式基础 在深入…...
vue使用EventBus进行跨组件通信
Vue中的EventBus,又称为事件总线,是一种常用的通信模式,它允许在Vue应用程序的不同组件之间进行松耦合的通信,尤其是对于那些没有直接父子关系的组件间的通信非常有用。EventBus基于Vue的自定义事件系统实现,工作原理遵…...

低空城市场景下的多无人机任务规划与动态协调!CoordField:无人机任务分配的智能协调场
作者:Tengchao Zhang 1 ^{1} 1 , Yonglin Tian 2 ^{2} 2 , Fei Lin 1 ^{1} 1, Jun Huang 1 ^{1} 1, Patrik P. Sli 3 ^{3} 3, Rui Qin 2 , 4 ^{2,4} 2,4, and Fei-Yue Wang 5 , 1 ^{5,1} 5,1单位: 1 ^{1} 1澳门科技大学创新工程学院工程科学系࿰…...

数据集-目标检测系列- 猴子 数据集 monkey >> DataBall
贵在坚持! * 相关项目 1)数据集可视化项目:gitcode: https://gitcode.com/DataBall/DataBall-detections-100s/overview 2)数据集训练、推理相关项目:GitHub - XIAN-HHappy/ultralytics-yolo-webui: ultralytics-yo…...

vue3表格使用Switch 开关
本示例基于vue3 element-plus 注:表格数据返回状态值为0、1。开关使用 v-model"scope.row.state 0" 会报错 故需要对写法做些修改,效果图如下 <el-table-column prop"state" label"入学状态" width"180" …...

Agent短期记忆的几种持久化存储方式
今天给大家讲一下关于Agent长期对话的几种持久化存储方式,之前的文章给大家说过短期记忆和长期记忆,短期记忆基于InMemorySaver做checkpointer(检查点),短期记忆 (线程级持久性) 使代理能够跟踪…...
(新手友好)MySQL学习笔记(6):分组查询,正则表达式
目录 分组查询 创建分组 过滤分组 分组查询练习 正则表达式 匹配单个实例 匹配多个实例 正则表达式练习 练习答案 分组查询练习答案 正则表达式练习答案 分组查询 创建分组 group by 子句:根据一个或多个字段对结果集进行分组,在分组的字段上…...
二进制安全-IDA Pro-API
idaapi 是 IDA Pro(Interactive Disassembler Professional) 反汇编工具的 Python API 接口,用于开发自动化脚本、插件和自定义分析工具。通过 idaapi,开发者可以访问 IDA Pro 的核心功能(如反汇编、符号分析、交叉引用…...

AlphaDrive:通过强化学习和推理释放自动驾驶中 VLM 的力量
AlphaDrive: Unleashing the Power of VLMs in Autonomous Driving via Reinforcement Learning and Reasoning 25年3月来自华中科技大学和地平线的论文 OpenAI 的 o1 和 DeepSeek R1 在数学和科学等复杂领域达到甚至超越了人类专家水平,其中强化学习(R…...
小白初学SpringBoot记录
1.对于通过json返回用户信息时,需要忽略password字段操作: 1.1 pom配置jackson细节: <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>…...

编程基础:执行流
能帮到你的话,就给个赞吧 😘 文章目录 执行流同步:顺序执行,只有一个执行流异步:新开后台(次)执行流,后台执行流要确保不能影响主执行流。共有两个执行流。 阻塞:任务阻塞执行流,导致…...

Qt学习及使用_第1部分_认识Qt---学习目的及技术准备
前言 学以致用,通过QT框架的学习,一边实践,一边探索编程的方方面面. 参考书:<Qt 6 C开发指南>(以下称"本书") 标识说明:概念用粗体倾斜.重点内容用(加粗黑体)---重点内容(红字)---重点内容(加粗红字), 本书原话内容用深蓝色标识,比较重要的内容用加粗倾…...