物联网应用开发--STM32与机智云通信(ESP8266 Wi-Fi+手机APP+LED+蜂鸣器+SHT20温湿度传感器)

news2025/1/15 13:05:56

实现目标

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配置

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 "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 Collection
		currentDataPoint.valuehum = rh;//Add Sensor Data Collection
		
	    thLastTimer = gizGetTimerCount();  
	}
}

八、项目调试

8.1  串口打印调试信息

长按K2,学会让WIFI处于Airlink 模式,确保在这个模式下手机、开发板互联才会成功。

8.2  网络配置

(1)先提供一个可用的wifi给开发板和装有机智云APP的手机,让手机连上此WIFI。

(2)给开发板上电。再打开手机”机智云”APP,完成以下操作:

(3)输入提供的WiFi名称及密码,选着WIFI模组的厂家

(3)在点击“我已完成上述操作”之前,长按开发板K2按键2秒左右,让WiFi模块进入AirLink 模式

(4)显示黄色创建的设备,则识别成功,可以点击进行进行控制操作或查看上传数据。


总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1691219.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

转行3年涨薪300%,我总结了一套产品经理快速入门指南!

想转行的产品小白,初期一定会遇到这个问题——我要如何 0 基础转行产品经理? 要想 0 基础快速转行产品经理,我通过个人实践总结了 5 个关键点,可以参考。 一、熟悉产品经理的工作全流程 转行的产品小白,首先要建立产…

mninst数据集图片下载

//不需要在官网下载,直接通过python代码,利用pytorch下载即可 from icecream import ic from torchvision import datasets from tqdm import tqdm import ostrain_data datasets.MNIST(root"./data/", trainTrue, downloadTrue) test_data …

VMware虚拟机桥接无线网卡上网(WIFI)

一、打开VM点击【编辑】-【虚拟网络编辑器】 二、点击【桥接模式】- 点击【自动设置】- 选择自己的无线网适配器 - 【确定】 三、开机之后会弹出提示连接网络,就能看见网络已经连上了

FastCopy

目录 背景: 简介: 原理: 下载地址: 工具的使用: 背景: 简介: FastCopy是一款速度非常快的拷贝软件,软件版本为5.7.1 Fastcopy是日本的最快的文件拷贝工具,磁盘间相互拷贝文件是司空见惯的事情,通常情况…

零一万物Yi-1.5开源,34B/9B/6B多尺寸,34B超Qwen1.5-72B

前言 近年来,大型语言模型(LLM)在各个领域展现出惊人的能力,为人们的生活和工作带来了巨大的改变。然而,大多数开源 LLM 的性能仍然无法与闭源模型相媲美,这限制了 LLM 在科研和商业领域的进一步应用。为了…

C# 利用Xejen框架源码,我们来开发一个基于Dapper技术的数据库通用的帮助访问类,通过Dapper的增删改查,可以访问Sqlite数据库

Dapper 是一个轻量级的对象关系映射(ORM)工具,适用于 .NET 平台。它由 Stack Overflow 团队开发,旨在提供简单、高效的数据访问功能。与其他重量级 ORM(如 Entity Framework)相比,Dapper 更加轻…

【算法例题】n元钱买n只鸡

题目描述&#xff1a;公鸡5元1只&#xff0c;母鸡3元1只&#xff0c;小鸡1元3只&#xff0c;问&#xff1a;n元钱买n只鸡&#xff0c;怎么买&#xff1f; 解题思路&#xff1a;这题要用枚举算法&#xff0c;枚举鸡的数量&#xff0c;代码如下&#xff1a; ​#include <bit…

博客系统(Servlet实现)

目录 1.准备工作 2.数据库设计 2.1表设计 2.2封装数据库操作代码 2.3创建 Blog 类 和 User 类 2.4创建 BlogDao 类和 UserDao 类 3.读取博客列表功能 3.1约定前后端交互接口 3.2实现服务器代码 3.3实现客户端代码 4.实现博客详情 4.1约定前后端交互接口 4.2实现服…

jmeter之线程组教程

一、线程组的作用 线程组是测试计划的子控件&#xff0c;也是取样器的父控件setup线程组&#xff0c;在所有线程组之前运行&#xff0c;类似于unittest框架中的SetUp函数&#xff0c;初始化环境teardown线程组&#xff0c;在所有线程组之后运行&#xff0c;类似于unittest中的…

如何在Windows 11和10上检查计算机的正常运行时间,这里有两种方法

序言 你的计算机的正常运行时间告诉你打开计算机已经有多长时间了。如果你需要这些信息进行故障排除或其他操作&#xff0c;那么很容易在Windows 11和Windows 10操作系统上找到你的正常运行时间。我们将向你展示图形和命令行方法。让我们开始吧。 使用任务管理器查找Windows正…

YoloV9实战与改进——专栏目录

摘要 &#x1f525;&#x1f680;本专栏教你如何嗨翻Yolov9&#xff01;&#x1f680;&#x1f525; &#x1f680;炸裂升级&#xff1a;嗨&#xff0c;小伙伴们&#xff01;这里有一波Yolov9的升级大招&#xff0c;带你领略最新论文的精华&#xff01;&#x1f4a5; 什么注意…

Star CCM+在电池热管理中SOC计算、充电Map调用、电池内阻调用的方法

前言 众所周知电池充电电流是随着电池温度与容量变化查表获得(形式见下表),其中电池的充电倍率(电流)是阶梯变化的,而内阻是线型变化的。因此为了仿真的准确定,需要在软件中实现数据的调用,计算电池的发热量。 电池内阻/充电倍率表 一 SOC计算 SOC的估算方法有开路电…

fpga 提高有什么进阶书推荐?

到FPGA中后期的时候就要开始接触&#xff0c;如&#xff1a;高速接口、光纤数字信号处理等项目实践了&#xff0c;那么我们可以读一些书进行提升&#xff0c;大家可以收藏下。 高速接口项目《嵌入式高速串行总线技术:基于FPGA实现与应用》作者&#xff1a;张锋 FPGA提升书籍推…

探索切片索引:列表反转的艺术

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、引言&#xff1a;列表反转的挑战 二、切片索引的基本概念 三、切片索引实现列表反转 …

【微信小程序开发】小程序前后端交互--发送网络请求实战解析

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

【计算机视觉(1)】

基于Python的OpenCV基础入门——图像的处理 计算机视觉简介OpenCV介绍图像的读取图像的显示图像窗口等待时间图像窗口的全部销毁图像的保存 图像的基本操作代码实现 计算机视觉简介 计算机视觉是人工智能 (AI) 的一个领域&#xff0c;是指让计算机和系统能够从图像、视频和其他…

Logstash笔记

目录​​​​​​​ 一、简介 二、单个输入和输出插件 三、多个输入和输出插件 四、pipeline结构 五、队列和数据弹性 六、内存队列 七、持久化队列 八、死信队列 (DLQ) 九、输入插件 1)、beats 2)、dead_letter_queue 3)、elasticsearch 4)、file 5)、redis 十、…

LESS IS MORE: ONE-SHOT-SUBGRAPH LINK PREDICTION ON LARGE-SCALE KNOWLEDGE GRAPHS

LESS IS MORE: ONE-SHOT-SUBGRAPH LINK PREDICTION ON LARGE-SCALE KNOWLEDGE GRAPHS&#xff08;ICLR2024&#xff09; 论文地址&#xff1a;https://arxiv.org/html/2403.10231v1 源码地址&#xff1a;https://github.com/tmlr-group/one-shot-subgraph ABSTRACT 为了推断知…

2024最新 Jenkins + Docker 实战教程(六)- Jenkins配置邮箱接收构建通知

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

软件设计:基于 python 代码快速生成 UML 图

1. 官方文档 PlantUML Language Reference Guide Comate | 百度研发编码助手 百度 Comate (Coding Mate Powered by AI) 是基于文心大模型的智能代码助手&#xff0c;结合百度积累多年的编程现场大数据和外部优秀开源数据&#xff0c;可以生成更符合实际研发场景的优质代码。…