基于Gokit3微信宠物屋取机警云的物联网智能家居
下载本文:https://club.gizwits.com/thread-169349-1-1.html
万物互联是近几多年的热点问题,正在智能云家居风止时代,须要思考到如何通过删多一些传感器让老式家居,譬喻电电扇、电灯等,能够连贯到互联网变得愈加智能和人性化的问题。原教程设想了一种基于云实个智能云家居,该系统通过Gokit3.0取机警云物联网平台的效劳器互联,运用智能家居系统远程控制处置惩罚惩罚老式家居联网问题。
原教程引见的智能家居系统次要给取了Gokit3微信宠物屋(WiFi+STM32F103)做为主控芯片,由数据支罗系统、数据办理系统、数据云传输系统以及智能家居智能调理系统形成;便可真现互联网远程控制电器方法,通过手机App真时操控,预定按时,远程控制开关,收配简略等特点,数据安宁快捷等劣势可以最大限度地降低家居智能化老原。
现此刻,人口老龄化越来越重大,人们越来越逃求居家糊口的舒服性,智能家居系统能够为有老年人家庭供给愈加智能化的效劳,果此智能家居系统有着较为恢弘的使用前景。
一、教学内容
1:APP调理氛围灯光(可配置按时)
2:APP显示室内温湿度
3:APP控制电扇(可配置按时,也可以依据温湿度阈值来主动调理)
4:APP控制电暖炉工做(可配置按时,也可以依据温湿度阈值来主动调理)
5:APP显示人体红外感到状况(可依据人体存正在的状况去办理其余内容,比如当感到到人体,主动开灯,主动调温等)
二、教学硬件筹备
1.Gokit3微信宠物屋(WiFi+STM32F103底板)基于Gokit3微信宠物屋取机警云的物联网智能家居
2.LED灯,与代加热安置展示加热状况
三、云端陈列
1.进入机警云开发者核心(https://developer.gizwits.com/menu/dashboard),注册登陆平台。正在开发者核心首页,右上角智能产品后点击创立。
2.依据需求选择选择产品类型
3.数据点(数据点即方法产品的罪能的笼统,用于形容产品罪能及其参数。创立数据点后,方法取云端通讯的数据格局便可确定,方法、机警云可以互相识别方法取机警云互联互通的数据)可正在产品信息页面停行添加数据点收配
比如添加温度数据点,标识必须是英文,标识是须要写进步调的,显示称呼为APP默许显示的称呼。读写类型,app不须要控制的为只读,app须要开关和扭转的为可写。
创立如下数据点
具体数据点如下表:
到此数据点的创立就完成为了。
4.单片机代码生成,正在产品页面点击MCU开发,依照如下图轨范生成STM32的步调代码。
5.正在线APP创立于生成,正在开发者核心首页挪动页面左侧点击创立,创立挪动使用
此处咱们创立一个安卓使用为例,须要苹因使用的可以再背面打钩。用户联系干系可以选择不联系干系。
联系干系产品
别的的LOG之内的可依据原人需求上传变动。
APP控制页面批改,回到咱们的产品里面,选择控制页面,选择通用模板。
调解APP控制页面图标
启用配网收配
配置智能场景,后期可用之产品的智能化。比如当检测到人体并且环境温度低于10℃,主动启动加热等智能场景的使用。
生成安卓证书
构建使用
等候构建完成
构建乐成后扫描二维码下载
到此云端陈列完成
四、单片机步调批改
1.CubeMX配置引脚初始化,软件拆置之类的可参考网上教程,下载机警云 GoKit_MCU_STM32_V03010101测试固件及开发资源,正在教程附件可以获与。
2.将STM32F103C8x.ioc复制到咱们云端之前下载好的主动生成代码里面。
3.打开生成代码目录下的STM32F103C8x.ioc,配置加热控制输出引脚
配置完成以后点击generate code生成代码
5.将驱动库代码文件拷贝到主动生成代码工程中的 MCU_STM32F103C8x_source\Hal 文件夹中。
6.用keil打开名目,正在工程名目中添加驱动代码的“.c”文件。
正在代码中添加相应的函数挪用,正在MCU_STM32F103C8x_source\Src\main.c 和 MCU_STM32F103C8x_source\Gizwits\gizwits_product.c 文件中添加以下驱动库的头文件
#include “delay.h”
#include “hal_motor.h”
#include “hal_rgb_led.h”
#include “hal_temp_hum.h”
#include “hal_infrared.h”
正在 MCU_STM32F103C8x_source\Gizwits\gizwits_product.c 文件的 userInit( ) 函数中添加各sensor的初始化和数据点初始化。
void userInit(void)
{
memset((uint8_t*)¤tDataPoint, 0, sizeof(dataPoint_t));
/** Warning !!! DataPoint Variables Init , Must Within The Data Range **/
delay_init(72); // 延时 初始化
rgbLedInit(); // RGB LED 初始化
dht11Init(); // 温湿度初始化
irInit(); // 红外初始化
motorInit(); // 电机初始化
motorStatus(0); // 电机转速初始化
currentDataPoint.valueHeat = 0;
currentDataPoint.valueInfrared = 0;
currentDataPoint.valueMotor_Speed = 0;
currentDataPoint.valueTemperature = 0;
currentDataPoint.valueHumidity = 0;
currentDataPoint.valueLED_R = 0;
currentDataPoint.valueLED_G = 0;
currentDataPoint.valueLED_B = 0;
}
9.操做按时器作一个按时上报数据点。
10.正在 MCU_STM32F103C8x_source\Gizwits\gizwits_product.c 文件的 userHandle( ) 函数中添加只读型传感器数据点相关的代码。
正在 MCU_STM32F103C8x_source\User\main.c 文件的 key2ShortPress( ) 函数取 key2LongPress( ) 函数中添加长/短按key2时的LED点亮代码
12.正在MCU_STM32F103C8x_source\Gizwits\gizwits_product.c 文件的 gizwitsEventProcess( ) 函数中添加可写型传感器数据点相关的代码。
int8_t gizwitsEventProcess(eventInfo_t *info, uint8_t *gizdata, uint32_t len)
{
uint8_t i = 0;
dataPoint_t *dataPointPtr = (dataPoint_t *)gizdata;
moduleStatusInfo_t *wifiData = (moduleStatusInfo_t *)gizdata;
protocolTime_t *ptime = (protocolTime_t *)gizdata;
#if MODULE_TYPE
gprsInfo_t *gprsInfoData = (gprsInfo_t *)gizdata;
#else
moduleInfo_t *ptModuleInfo = (moduleInfo_t *)gizdata;
#endif
if((NULL == info) || (NULL == gizdata))
{
return -1;
}
for(i=0; i<info->num; i++)
{
switch(info->event[i])
{
case EVENT_Heat:
currentDataPoint.valueHeat = dataPointPtr->valueHeat;
GIZWITS_LOG(“Evt: EVENT_Heat %d \n”, currentDataPoint.valueHeat);
if(0x01 == currentDataPoint.valueHeat)
{
HAL_GPIO_WritePin(heat_GPIO_Port, heat_Pin, GPIO_PIN_RESET);//加热开
}
else
{
HAL_GPIO_WritePin(heat_GPIO_Port, heat_Pin, GPIO_PIN_SET); //加热关
}
break;
}
return 0;
}
编译代码
烧录代码带开发板
五、硬件调试
点击上图查察视频
点击免费下载量料(含源代码,固件以及步调)
链接:https://pan.baidu.com/s/1AHT0s-ABRaBg96gAyOirDA?pwd=93yl
【置顶】旺财宝盒独家揭秘:菜鸟如何快速在网上赚到第一桶金!...
浏览:6274 时间:2022-08-25京杭运河无锡段智慧运河工程航道外场感知设施项目在全国首推应用...
浏览:641 时间:2022-11-192023离散行业自动化(逻辑算法)六部十层电梯程序设计思路与...
浏览:20 时间:2024-05-14债券业务中联席主承与牵头主承的法律责任差异 债券业务中 ...
浏览:24 时间:2024-05-14