大数跨境
0
0

【信息科技案例】迷你智能家居之智慧风扇

【信息科技案例】迷你智能家居之智慧风扇 KittenBot小喵
2024-03-22
0
导读:夏天马上就到了,小喵决定结合温湿度模块和IOT功能制作一个简单的智能风扇,助力清凉一夏~

 【信息科技案例分享】


 迷你智能家居

 之智慧风扇


导语


智能家居,对于小喵来说,就是让你的家变得更“聪明”、更懂你。通过运用先进的技术,像物联网、人工智能等,智能家居系统能够将家中的各种设备,比如照明、空调、音响、安防系统等,连接在一起,并通过手机、平板或者语音等方式进行控制。

这不看着夏天马上就到了,小喵决定结合温湿度模块和IOT功能制作一个简单的智能风扇,助力清凉一夏~

材料准备


编程软件使用


 Kittenblock1.89

前期准备


1

图片准备

在网上查找风扇、温度和湿度的素材图片,用于在未来板Lite上显示。其中风扇的素材可以通过ps软件分别保存不同角度的风扇,每次角度变化5°,共保存12张风扇图片。设置好后导入到未来板Lite内部,图片参数在文末放出。

2

接线准备

风扇模块连接到未来板Lite的M1接口,红外接收模块连接到Port1,温湿度接到I2C。

3

结构搭建

根据图片所示根据积木包中的配件完成以下结构搭建,先完成家居墙体。

使用框梁积木和积木包里配有的塑料卡片制作卧室内的地板。

最后拿出传感器和模块进行组装并连接到未来板Lite上。

4

IOT设置

在Kzone官网IoT - KZone (kittenbot.cn)上注册IOT话题名称和话题类型,方便使用物联网对智能风扇进行控制。这里小喵写的话题名称写的是/喵家智能家居,类型选择文本类型,完成后可以在“我的话题”处查看已创建的话题。

*请注意,每个人创建的话题名称不能重复,建议结合自己的名字缩写命名。

5

功能介绍

在对功能有了一定的了解后,接下来就可以开始挑战编写程序了。

程序编写


查看遥控编码

由于这次案例还是需要使用红外接收模块,需要知道按键的红外编码。例如以小喵的遥控器为例,按下开机键的编码为“ff005da2”。


根据本次案例所需要用到的按键进行解码,得到下图。根据图中的解码数据我们才能对风扇进行遥控控制。每个人解码的数据都不一样,需要各位同学自行统计~

初始化

根据先前的功能划分,程序的初始化主要为三个板块:

①刷新显示和变量初始化

②【档位数据】列表的数据录入,录入的是‘0’‘1’‘2’‘3’按键的红外解码数据

③连接网络并订阅MQTT话题,小喵的话题名称在准备阶段已创建好。

这部分十分简单,可以光速完成~~~

数据获取&开机函数

 在初始化程序后开始主程序编写,创建图中出现的变量并赋予对应的数值,需要创建4个变量。

紧接着创建【遥控开机】函数,用于存放开机的具体程序,并在主程序中调用。根据先前的功能介绍可知本案例开关机共有两种启动方式:

①通过红外遥控器的开机键开关机

②物联网发送消息进行开关机

通过程序不难看出,以上两种方法都是通过控制【开机】变量来间接控制开关机,那么开关机的程序具体要怎么写呢?接下来我们一起看看。

开机画面

在主程序中当【开机】变量=1时表示开启智能家居,满足条件后首先显示开机画面。由于显示内容较多,所以小喵这里创建【开机画面】函数把需要显示的内容显示出来,通过【开机界面】变量控制画面显示,程序如下。

完成后可以看到如下界面,但是这个画面只显示一次,温湿度等相关信息是不会更新的,更新的方法稍后给出。

模式切换&风速调节

开机时按下遥控器的MODE按键可以转换风扇的运行模式,M为手动模式,AUTO为自动模式。转化模式后在界面显示当前的模式。这里小喵创建【模式切换】函数并在开机画面生成后调用。

在进行模式切换时有一点细节,就是在自动模式切换为手动模式时风扇需要关掉,风扇关掉的程序不单单只是把电机速度设为0即可,而且还要在屏幕上显示相应的档位信息,这里小喵选择创建【风速和显示】函数并设置相关参数,对电机速度,【风扇档位】变量和档位显示进行设置,并在切换为手动模式时进行调用。

物联控制

根据先前的功能划分可知,通过物联网平台可以控制程序开机、档位和模式。开机的控制前面已经编写过,现在我们主要编写档位和模式的控制。创建【物联控制】函数,首先编写程序的框架。这里小喵先判断是否接收到物联网的消息,如果是则逐一比较是哪一类的信息,这样的框架有助于减少程序需要的判断次数。

接着对内部填充相应的程序,以0档为例,在平台上输入0,会先切为手动模式,调用【风速和显示】函数并设置信息完成风扇关闭,最后发送消息给平台完成反馈。其中一、二、三档的速度分别设为-40、-60、-100,速度为负数时风扇才能往前吹风,不然就是抽风机啦😂

这部分的程序完成后不要忘记放在开机程序中进行调用。

模式控制

前面我们设置了模式切换变量,但是对于遥控控制和自动控制的具体程序还未编写。这里使用如果否则对【控制模式】变量进行判断,如果为手动M则调用【换挡控制】函数;否则调用【自动控制】函数。

【换挡控制】函数编写思路和【物联控制】函数的思路一致,先判断红外数据是否包含在初始化中设立的档位数据里,然后再判断对应的是哪一个编码。而【自动控制】函数就只根据温度进行判断,采用二分法的方式对档位进行划分。这里不做过多解释,程序如下。

屏幕风扇转速

为了增加整体作品的观感,小喵希望风扇在转动时,屏幕的风扇图片也会跟着一起转动,而且转动的速度和档位挂钩。通过【风扇序号】变量表示风扇的图片名字,【步长】变量控制转动的步长从而控制屏幕风扇转动的速度。

完成后把这部分函数放在开机程序里,并在末尾处刷新显示温湿度数据,到此开机程序全部完成。

关机程序

当【开机】变量-1时,执行关机程序。由于比较简单,不做过多解释。到此所有程序已完成~

图片素材


风扇图片大小为60*60

湿度图标大小为23*35

温度图标大小为18*43

格式均为PNG格式。



功能演示



关注我们

小喵会通过社交平台,定期发布有趣的项目视频,感兴趣的可以搜索关注我们喔!

视频号:KittenBot

公众号:KittenBot小喵

b站、小红书、抖音:KittenBot小喵科技


【声明】内容源于网络
0
0
KittenBot小喵
专注于从入门到精通的移动机器人开源学习平台
内容 560
粉丝 0
KittenBot小喵 专注于从入门到精通的移动机器人开源学习平台
总阅读305
粉丝0
内容560