电机外设加入应急联网预警工程

电机外设加入应急联网预警工程

引言

本文的讲解步骤

在之前应急处理加联网的基础上, 相当于多加了一个fun, 我们单独调试fun都没问题, 我们仅仅是把这个fun当作小灯一样, 加入到应急系统里面了。开启逻辑和led一样, 为了避免重复开启,还会判断fun状态,然后控制器件切换.

为了提高系统的可用性,还有锻炼器件逻辑交互功能,我们加入手动按下按键,也可以开启风扇。但是这里就会存在问题,预警系统,会把正常状态下的风扇关闭, 所以我们要给人工操作加入一个管理员标识符,告诉预警系统,这是人为开启的,无需关闭。当且仅当,管理员将标识符置空,预警系统才能关闭风扇。这样预警系统就不会关闭风扇了。

控制风扇转速 , 把Speed转速上传, 服务器控制转速下发

误差演示, 整体逻辑分析,误差判断. 风扇状态显示. 器件状态检测。

工程源码以及引导:

温湿度应急联网工程源码:

https://ww0.lanzoul.com/iNSJp26rom7e

对应博客链接:

https://blog.csdn.net/qq_57484399/article/details/140965755

电机解耦单独测试源码:

https://ww0.lanzoul.com/iZauM26zyrni

对应博客链接:

https://blog.csdn.net/qq_57484399/article/details/141071234

本博客加入fun的测试源码:

https://ww0.lanzoul.com/iZ1hu273aovi

本博客加入fun和转速联网控制的源码工程:

https://ww0.lanzoul.com/iIprx2764l9a

测试视频:

更改温湿度,查看小灯和电机转动

电机加入预警工程

(1)在测试完温湿度预警的Onenet联网工程的基础上, 加入fun, 我们现在就把fun当作小灯一样, 加入工程, 只是启动fun的时候,底层配置可能会多一些而已.

(2)下载好应急处理加联网工程 和 电机解耦功能, 下面我们把他们组装起来

image-20240810212557587

(3)解压, 我们开始在预警系统上, 加入fun的工程文件, 首先我们把电机解耦工程里面的Motor文件夹复制, 然后加入 到 预警系统的Source_code里面

image-20240810212814218 image-20240810212840162

(4)在预警工程里面, 在品字里面, 把此文件夹名字加入, 并且加入其中的所有文件

image-20240810213016084

(5)打开锤子 -> C/C++ -> Include Paths , 然后包含次Motor文件夹, 然后点击空白处, 点击ok

image-20240810213224629

(6)通过观察电机解耦工程, 看看, 还需要包含哪些头文件, 只包含fun.h就可以, 因为我们是预警系统, 自动开启风扇,无需人工了, 后续我们再加入key

image-20240810213431688

(7)添加转速 变量, 为后续控制风扇转速铺路, 然后初始化风扇,设置转速Speed暂时为 20, 后面就是在预警的时候开启风扇了.

image-20240810221414789

(8)接下来, 我们分析

温度异常, 红灯亮, 开风扇

湿度异常,蓝灯亮,开风扇

温湿度都正常, 关所有灯, 关风扇

(9)下面进行模拟实操

温湿度预警部分,请看以下博客:

https://blog.csdn.net/qq_57484399/article/details/140952653

(10)我们在器件处理地方进行加入fun处理

void ararm_deal(int alarm_mode)
{
    switch(alarm_mode)
    {
        case 0: 
			humi_led_Set(blue_led_OFF);
			temp_led_Set(red_led_OFF);
			Fun_Set(FUN_OFF);
             break;
        case 1: humi_led_Set(blue_led_ON);
				temp_led_Set(red_led_OFF);
				Fun_Set(FUN_ON);
				break;
        case 2: humi_led_Set(blue_led_OFF);
				temp_led_Set(red_led_ON);
				Fun_Set(FUN_ON);
				break;            
        case 3: 
			humi_led_Set(blue_led_ON);
			temp_led_Set(red_led_ON);
			Fun_Set(FUN_ON);
            break;            
        default:break;    
    }       
} 

(11)遇到问题, 编译失败, 是因为我们fun是使用pwm驱动, 从而控制转速, 所以我们需要配置TIM, 我们也可以看我们的解耦工程

image-20240810221747522

image-20240810221818921

(12)再次编译还是出错, 说明我们需要清理一下工程, 然后重新编译, 我们通过 使用江协科技的bat文件,

https://blog.csdn.net/qq_57484399/article/details/141097391

(13)然后我们通过手机设置热点, 名称abc , 密码abc123456, 类型2.4g, 就可以让系统联网, 我们通过在onenet上进行调试温湿度阈值, 就可以查看系统的预警

具体演示视频,请看

https://www.bilibili.com/video/BV1JsY7exELi?vd_source=1de4617d8462b141bb53b6be82555d31

转速联网变量控制

(1)f12进入Onenet上传变量函数

image-20240810223027654

(2)接着f12

image-20240810223205656

(3)复制一个temp的上传变量的模块, 然后改一改

image-20240810223258320

(4)加入一下代码

	memset(text, 0, sizeof(text));
	sprintf(text, "\"Speed\":{\"value\":%d},", Speed);
	strcat(buf, text);	

image-20240810223433145

(5) 同时别忘了, 引入速度变量

extern int8_t Speed;		//定义速度变量 

image-20240810223611232

(6)同时下发拆包, 我们也要加入

在main.c里面, 接着f12

image-20240810223735567

(7)模仿温湿度, 也加入变量

image-20240810223827585

(8)接着操作

image-20240810223915932

(9)提取数据, 本地修改

image-20240810224023711

(10)同时Onenet服务器也要加入, 我们转速控制在 -100 -100,

image-20240810224208245

(11)下面就是见证奇迹的时候了, 我们记得在fun里面, 把开fun设置转速里面, 把Speed加入进入, 同时我们也可以把转速显示在Oled上, 还有预警信息返回的模式, 也显示出来, 通过结合服务器阈值判断, 从而调试项目.

判断我们预警器件是否运行正确.

演示视频:

fun联网调控阈值测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值