STM32智能家居,ONENET获取数据及下发指令,代码开源!!!

这篇具有很好参考价值的文章主要介绍了STM32智能家居,ONENET获取数据及下发指令,代码开源!!!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

使用onenet平台进行远程传输数据和远程控制开发板,但由于onenet官方给的代码只对他家的开发板比较友好,对于初学者来说修改这些代码相对麻烦,所以我就分享STM32C8T6接入onenet云平台的代码,这款单片机是我们做课程设计中比较常用,以后大家在我这份代码的基础上进行修改即可,希望可以帮到大家。
假设你已经有了onenet账号,以及创建了一个MQTT协议的产品,并在产品中添加一个设备。

一、环境介绍

(1)单片机采用:STM32F103C8T6或者F1其他系列单片机
(2)上网方式:采用ESP8266,也可以使用其他设备代替,只要支持TCP协议即可。
(3)开发软件:keil5
(4)硬件连接功能:ESP8266接在STM32的串口上。通过AT指令与ESP8266进行通信。

二、功能说明

通过OneNet物联网服务器实现设备数据远程上传、下发,实现数据交互(不清楚OneNet物联网服务器功能的可以百度一下进入官网看简介)。之前的OneNet服务器不支持标准MQTT协议登录的,现在官网更新之后支持标准的MQTT协议,此设计使用STM32+ESP8266使用标准MQTT协议登录Onenet服务器,实现数据交互。实现步骤OneNet官方提供了很详细的文档,可以参考一下。

1.单片机可以采集温湿度、光照度数据,通过OLED显示结果
2.可通过按键控制灯和蜂鸣器开关
3.单片机通过WIFI上传数据至ONENET平台
4.ONENET平台可下发指令控制单片机做出相应动作

下图是单片机实物图,包括esp826,温湿度传感器,光照传感器,RGB灯,按键以及蜂鸣器。
STM32智能家居,ONENET获取数据及下发指令,代码开源!!!


下图是onenet平台的监控界面
STM32智能家居,ONENET获取数据及下发指令,代码开源!!!

三、STM32代码修改

(1)数据上传部分代码:
这部分代码就是将我们的数据上传的ONENET云平台,
这里的数据流有:temperatureValue、humidityValue、lamp、key,这里的名字要和onenet平台上的名字相同
需要上传的数据:温度,湿度,光照度,灯的开关值
如果想要上传新的数据流,就复制memset、 sprintf、strcat三个函数的代码,写上你的数据流名称和需要上传的数据。

unsigned char OneNet_FillBuf(char *buf)
{
	char text[32];
	memset(text, 0, sizeof(text));
	strcpy(buf, ",;");
	
	memset(text, 0, sizeof(text));
	sprintf(text, "temperatureValue,%d;", temp);  //温度值
	strcat(buf, text);
	
	memset(text, 0, sizeof(text));
	sprintf(text, "humidityValue,%d;", humi); //湿度值
	strcat(buf, text);
	
	memset(text, 0, sizeof(text));
	sprintf(text, "lamp,%d;", Light);    //光照度值
	strcat(buf, text);
	
	memset(text, 0, sizeof(text));
	sprintf(text, "key,%d;", key_velue);   //红灯开关
	strcat(buf, text);
	
	memset(text, 0, sizeof(text));
	sprintf(text, "key1,%d;", key1_velue);  //蓝灯开关 
	strcat(buf, text);
	
	return strlen(buf);
}

(2)命令下发部分代码:
主要看后面的if-esle if代码,关键是看你元件属性里的EDP命令内容。这里就在if语句里面对LED灯进行了远程控制。如果想要下发新的命令,可以再写一个else if语句。

	dataPtr = strchr(req_payload, ':');					//搜索':'
	if(dataPtr != NULL && result != -1)					//如果找到了
	{
		dataPtr++;
		while(*dataPtr >= '0' && *dataPtr <= '9')		//判断是否是下发的命令控制数据
		{
			numBuf[num++] = *dataPtr++;
		}
		num = atoi((const char *)numBuf);			 //转为数值形式
		if(strstr((char *)req_payload, "open"))		 //搜索"key"
		{
//			printf("open = %d\r\n", num);            //num就是key:{V}中V的值
			key_velue = num;                		 //更新数据到云平台
			PAout(5) =! num;                 	     //控制LED灯,低电平点亮
		}
		else if(strstr((char *)req_payload, "led1"))
		{
			key1_velue = num;                		 //更新数据到云平台
			PAout(6) =! num;                 			 //控制LED灯,低电平点亮
		}	
	}

(3)连接onenet需要修改的代码

#define ESP8266_WIFI_INFO		"AT+CWJAP=\"smarthome\",\"12345678\"\r\n"   //wifi名称及,密码
#define ESP8266_ONENET_INFO		"AT+CIPSTART=\"TCP\",\"183.230.40.39\",6002\r\n"   //onenet ip地址

下面是你在onenet创建时候的设备ID等

#define PROID		"451066"
#define AUTH_INFO	"1234"
#define DEVID		"757218324"

STM32智能家居,ONENET获取数据及下发指令,代码开源!!!

四、ONENET平台

ONENET创建设备

创建设备不细说,参考资料很多,大家自行搜索
需要注意:
1.不能选择物联网开发套件,而是选择多协议接入,这个代码是这样的
2.MQTT旧版新版都不影响,都能用
3.需要记住设备ID,产品ID和鉴权信息(鉴权信息随便设置)
4.联网方式是wifi,运营商是移动且没有操作系统

STM32智能家居,ONENET获取数据及下发指令,代码开源!!!

ONENET数据可视化创建

  1. 添加界面

由于新版本没有旧版操作方便,需要新建一个数据可视化界面,所以进入数据可视化界面后创建项目,随意拖一个仪表盘
STM32智能家居,ONENET获取数据及下发指令,代码开源!!!
在这个界面可以对仪表盘或者其他折线图进行样式、数据的更改。最重要的是需要获取到平台对应的数据,所以就需要添加对应的数据源,如上图所示。

  1. 添加数据源

需要注意的是:
1.数据源类行应为ONENET
2.名称可以随意写
3.产品ID,key,数据流以及设备都应该与之前创建的设备一一对应
如下图所示:
STM32智能家居,ONENET获取数据及下发指令,代码开源!!!

  1. 获取数据,显示在仪表盘上
    这里需要修改默认的代码,具体修改方式可以参考官方提供的文档:官方文档
    进入文档的可视化VIEW,选择你使用到的组件,根据提供的代码例程修改为自己的,例如修改仪表盘,如下图所示:
    STM32智能家居,ONENET获取数据及下发指令,代码开源!!!
    这里的意思是,将平台所接收的所有温度数据获取到,判断数据长度,是否为最后一次数据,如果是就把最后一次数据赋值给仪表盘显示区域。数据可视化官方文档界面如下:
    STM32智能家居,ONENET获取数据及下发指令,代码开源!!!
    至此,把所有的页面以及私有过滤器修改完毕后得到如图样式:
    STM32智能家居,ONENET获取数据及下发指令,代码开源!!!
    在这个界面需要配置数据流,设备,以及数值的设置,这样一来,便可以获取到单片机上传的数据。下发指令与之类似,唯一的区别是,需要在界面配置下发的指令,比如{led:0}或者{led:1},在单片机这边需要判断接收的数据是否正常以及是否为所需要的数据,如果是需要的数据就做出相应的动作即可。

总结

首先感谢大家看到这里,简单总结一下
详细视频链接请参考:智能家居
注意:上述操作只是很简单的对接ONENET云平台中的操作,如果有误请各位朋友及时提出。大家可以在此基础上增加想要的功能,比如语音识别,语音播报之类的。现在某宝上有很多语音识别模块,虽然质量不是特别好,但是运用在这个小设计上是足够的,商家提供了丰富的接口协议,能够快速进行二次开发(能够操作语音模块)。
其次,将代码开源,有需要的朋友自行下载,实际操作一下才能体验到其中的乐趣:

当然,在自己调试过程中遇到任何问题,欢迎大家和我沟通 。源码下载:https://download.csdn.net/download/qq_42722796/88408481?spm=1001.2014.3001.5503

这次课设的作品,总体来说做的完成度一般,没有特别深入,做到了基本的控制、数据显示、物联网,整体实现了一个简单的家居系统,系统可能还有许多BUG没有解决,大家参考的时候酌情参考。当然这个项目后续可以拓展的点很多

1.增加OpenMv模块来实现人脸检测,这部分做到门锁中
2.增加语音识别模块来提供语音控制
3.增加外红遥控模块来控制空调、或者其他红外设备
4.增加火焰传感器来检测火情
5.UI界面可以进行二次美化

最后,写这个是为了记录一下做这个设计以来的想法,感谢大家阅览。文章来源地址https://www.toymoban.com/news/detail-418723.html

到了这里,关于STM32智能家居,ONENET获取数据及下发指令,代码开源!!!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32】基于stm32的阿里云智能家居

    智能家居是一种通过物联网将家里的各种电器设备连接在一起,并由中心控制器统一管理的信息系统。系统的核心是各类家居信息的采集与处理。阿里云能够提供云端的数据存储和分析功能,可以作为智能家居中心控制器的重要平台。 本文主要研究了基于阿里云的智能家居信

    2024年02月13日
    浏览(224)
  • STM32智能家居小助手

    ​ 设计的目的 大部分家用电器开关仍旧是传统的机械式按键开关,原因是传统式的电器开关开发周期短,制作成本低,方案成熟,但是传统的遥控家电开关已经不能满足人们对家电控制的要求,传统的遥控器具有单一性, 每种遥控器只能控制一种家用电器,随着家用电器的

    2024年04月13日
    浏览(36)
  • STM32--基于STM32的智能家居设计与实现

    本文详细介绍基于STM32F103C8T6的智能家居设计与实现,详细设计资料见文末链接 一、功能模块介绍 智能家居系统系统图如下所示,主要包括温湿度传感器、OLED液晶显示,WIFI物联网模块、人体红外预警模块、烟雾传感器模块、蜂鸣器模块 (1)温湿度传感器 温湿度传感器选用

    2024年02月08日
    浏览(64)
  • stm32项目(8)——基于stm32的智能家居设计

    目录 一.功能设计 二.演示视频 三.硬件选择 1.单片机 2.红外遥控 3.红外探测模块 4.光敏电阻模块 5.温湿度检测模块 6.风扇模块 7.舵机 8.WIFI模块 9.LED和蜂鸣器 10.火焰传感器 11.气体传感器 四.程序设计 1.连线方式 2.注意事项 3.主程序代码 五.课题意义 本次设计的目标是想实现如

    2024年02月13日
    浏览(92)
  • STM32毕业设计——基于STM32+MQTT+WiFi技术的智能家居系统设计与实现(毕业论文+程序源码)——智能家居系统

    大家好,今天给大家介绍基于STM32+MQTT+WiFi技术的智能家居系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦 文章目录: 智能家居技术

    2024年02月10日
    浏览(71)
  • 基于STM32的WIFI智能家居系统

    一、原理图 系统采用STM32F103C8T6单片机,搭配MQ系列传感器、DHT11温湿度传感器、光照强度传感器来采集室内的环境信息,利用STM32对信息进行加工处理,结合步进电机、LED、蜂鸣器、继电器对室内的电器进行模拟。使用ESP8266作为物联网媒介,手机端采用机智云平台。 1.原理图

    2024年02月16日
    浏览(44)
  • STM32项目--基于STM32的办公室安保(智能家居)系统设计

    设计一套基于STM32的办公室安防系统,系统内部包括门禁系统、灾害报警系统、人脸识别系统和交互中心四个子系统。 门禁系统:主要实现对门禁卡的存储和读取并识别已存储卡片的信息并控制开门,如读取卡片为未存储卡片则报警。 灾害探测:系统本项目简单化使用了温湿

    2024年02月05日
    浏览(67)
  • stm32智能家居+微信小程序接收控制

    本项目芯片使用STM32F103ZET6,微信小程序开发使用微信开发者工具。 stm32作为下位机,功能是每过一段时间上传温湿度以及光照度给mqtt服务器,然后微信小程序从mqtt服务器订阅对应的主题来接收下位机发过来的数据并进行处理,并在微信小程序中设置LED开关,以及蜂鸣器开关。

    2024年01月21日
    浏览(98)
  • 基于STM32单片机的智能家居毕设

    1、硬件清单 序号 名称 型号/作用 数量 1 STM32单片机 正点原子精英板(STM32F103ZET6) 1 2 温湿度传感器 DHT11 1 3 光敏传感器 3针制光敏传感器模块 1 4 空气质量传感器 MQ135 1 5 人体红外传感器 微型人体红外感应模块 1 6 语音识别模块/播报模块 LD3320/JQ8900 MP3(可插SD/TF卡) 1 7 喇叭

    2024年02月03日
    浏览(87)
  • STM32用TB6612驱动电机(智能家居系列二)

            本篇文章主要讲解主控板为STM32,利用TB6612驱动来驱动电机的整个流程,看完点个赞吧! PWMA---连接代码中的PB0口                                   VM------接10V以内电压 AIN2-----接代码中的PB3口                                       VCC-----接5V AIN1-----接代

    2024年01月15日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包