物联网挑战赛—校园&居家物联网集控

2023-05-27248
AI 快速预览详细 收起
本文介绍了如何利用行空板和Mind+1.8可视化面板,模拟制作一款自制的集控设备,实现家庭监控、噪音侦测及远程控制灯光和空调。通过opencv和base64用户库,可以实时显示家中情况;利用行空板上的响度传感器和可视化面板上的折线图控件,可以实时侦测并显示当前噪音值。整个项目同样适用于校园教室内,进一步体验物联网智能家居。

居家物联网集控设计:

        目前市面上有很多家庭监控设备,利用mind+1.8可视化面板结合行空板,尝试模拟制作一款自制的集控设备,同时尝试控制家里的空调、灯光等设备,达到一体化控制。

 

解决方法:

1.根据直播王老师的介绍,利用opencv和base64的用户库,将实时拍到的画面进行显示,可以直接了解家里目前的情况。

2.利用行空板上的响度传感器,实时侦测当前噪音值,并在可视化面板上进行显示。

3.利用可视化面板上的折线图控件,显示噪音值的实时趋势,了解噪音变化情况。

4.加入日历和时钟,实时显示时间。

5.使用可视化面板上的开关按钮,控制家里灯光和空调,可以起到远程开启和关闭的效果。(目前程序还没达到这个效果)

 

整个内容同样可以适用于校园教室内,控制日光灯和电风扇的开启与关闭,加入智能判断可进一步起到节能作用。项目可复制、可操作性强,同时经过本项目的学习也可以进一步体验物联网智能家居,实践新课标主题内容。

QQ截图20230527122129.jpg

代码
#  -*- coding: UTF-8 -*-

# MindPlus
# Python
import base64
from io import BytesIO
from PIL import Image
from unihiker import Audio
import time
import siot
import cv2


siot.init(client_id="958466670138278",server="192.168.3.46",port=1883,user="siot",password="dfrobot")
u_audio = Audio()
siot.connect()
siot.loop()

def frame2base64(frame):
    frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
    img = Image.fromarray(frame) #将每一帧转为Image
    output_buffer = BytesIO() #创建一个BytesIO
    img.save(output_buffer, format='JPEG') #写入output_buffer
    byte_data = output_buffer.getvalue() #在内存中读取
    base64_data = base64.b64encode(byte_data) #转为BASE64
    return base64_data #转码成功 返回base64编码

def base642base64(frame):
    data=str('data:image/png;base64,')
    base64data = str(frame2base64(frame))
    framedata = base64data[2:(len(base64data)-1)]
    base642base64_data = data + str(framedata)
    return base642base64_data
vd = cv2.VideoCapture()
vd.open(0)

while True:
    ret, grab = vd.read()
    siot.publish(topic="siot/实时模式1", data=base642base64(grab))
    siot.publish_save(topic="siot/实时模式2", data=u_audio.sound_level())
    time.sleep(1)

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -