【物联网项目】亲情风扇
本帖最后由 云天 于 2022-8-3 23:35 编辑【情景引入】
这几天特别热,热的人心浮气躁,拿起小风扇,顿感丝丝凉意,舒服!小风扇,接下来的项目制作,将让小风扇更温馨、更有人情味。
【学习目标】
1. 学习EasyIoT物联网平台的使用方法
2. 掌握行空板与物联网平台进行信息交互的方法
3. 掌握微触开关工作原理及改造方法
4. 学习二进制及莫斯电码
【教学重难点】
【教学重点】
1. 掌握行空板与物联网平台进行信息交互的方法
2. 学会二进制及莫斯电码
【教学难点】
改造微触开关
【教学准备】
1. 软件
Mind+
2. 硬件
行空板2块、扩展板2块、按钮2个、2路18650电池座2个、18650电池4个,小风扇2个
【教学过程】
1.物联网Easy IOT
登录EasyIoT物联网平台(网址https://iot.dfrobot.com.cn/,没有账号需先注册)
进入“工作间”,添加两个新设备,分别为“亲情风扇A”、“亲情风扇B”
2、行空板配网
使用USB线连接行空板与电脑
按以下步骤配网
3、先用LED进行测试
硬件连接
亲情灯A
亲情灯B
4、亲情灯编程
亲情灯A
亲情灯B的程序,只需要将订阅的主题,与发送消息的主题进行相互替换即可。5、亲情灯演示视频
https://www.bilibili.com/video/BV1Ne4y1D7uj?share_source=copy_web
6、改造风扇
小风扇电路板的开关是一个轻触开关,轻触开关是一种电子开关,使用时轻轻点按开关按钮就可使开关接通。当松开手时开关既断开,其内部结构是靠金属弹片受力弹动来实现通断的。
在轻触开关同向的两个引脚上,焊上两条导线,接到电磁继电器上。
7、亲情风扇编程
使用继电器代替轻触开关,高低电平变化代表按一下开关。因小风扇有三档,所以要关闭小风扇,要高低电平变化三次。程序如下:
8.亲情风扇硬件
9.亲情风扇演示
https://www.bilibili.com/video/BV1VV4y1j786?share_source=copy_web
10.分组合作
分成两大组,一组进行亲情风扇硬件外壳设计;一组对程序进行优化;
外壳设计
(1)使用3D打印制作外壳
(2)激光切割制作外壳
(3)旧物改造制作外壳
程序优化
(1)行空板屏幕显示风扇静止、转动图案
(2)对按钮动作进行编码,实现多功能,如可控制自己的风扇,发送信息
11.教师演示——发送信息
在5秒记下按钮按下“按钮亮灯”次数,将次数发送到物联网主题。当接收到消息后,判断“次数”,行空板显示“亲情消息”。
Python代码:
#-*- coding: UTF-8 -*-
# MindPlus
# Python
from pinpong.extension.unihiker import *
from pinpong.board import Board,Pin
from unihiker import GUI
import siot
import time
# 事件回调函数
def on_message_callback(client, userdata, msg):
if (msg.payload.decode() == '1'):
p_p9_out.write_digital(1)
time.sleep(0.5)
p_p9_out.write_digital(0)
time.sleep(0.2)
if (msg.payload.decode() == '2'):
p_p9_out.write_digital(1)
time.sleep(0.5)
p_p9_out.write_digital(0)
time.sleep(0.2)
p_p9_out.write_digital(1)
time.sleep(0.5)
p_p9_out.write_digital(0)
time.sleep(0.2)
p_p9_out.write_digital(1)
time.sleep(0.5)
p_p9_out.write_digital(0)
time.sleep(0.2)
if (msg.payload.decode() == '3'):
消息.config(text="你好")
if (msg.payload.decode() == '4'):
消息.config(text="休息一下吧!")
if (msg.payload.decode() == '5'):
消息.config(text="天热记得要多喝水!")
siot.init(client_id="",server="iot.dfrobot.com.cn",port=1883,user="X8jykxFnR",password="u8jskbFngz")
u_gui=GUI()
Board().begin()
siot.connect()
siot.loop()
p_p8_in=Pin(Pin.P8, Pin.IN)
siot.set_callback(on_message_callback)
siot.getsubscribe(topic="5n92uqBMg")
显示计数=u_gui.draw_digit(text="0000",x=0,y=0,font_size=20, color="#0000FF")
消息=u_gui.draw_text(text="行空板",x=0,y=30,font_size=20, color="#0000FF")
BiaoShi = 0
temTime = 0
JiShu = 0
p_p9_out=Pin(Pin.P9, Pin.OUT)
p_p9_out.write_digital(0)
while True:
if (p_p8_in.read_digital()==True):
JiShu = 0
temTime=time.time()
while not (time.time()-temTime>5):
if (p_p8_in.read_digital()==True):
if (BiaoShi == 1):
BiaoShi = 0
JiShu = (JiShu + 1)
else:
if (BiaoShi == 0):
BiaoShi = 1
siot.publish(topic="CrWfPaz4R", data=(str(JiShu)))
显示计数.config(text=(str(JiShu)))
12.发送“亲情消息”演示
https://www.bilibili.com/video/BV15T411773P?share_source=copy_web
13.利二进制计数改进因在短时间内,能实现按下按钮的次数是有限的,不能承载更多的信息。所以接下来利用二进制计数来实现,更多的编码。
对以上程序,进行简化
【学生自学】
利用二进制改进,以上程序在大约10秒内只能实现16种编码,要想更多可采用莫斯电码方式,这部分由学生自学,然后小组讨论合作完成任务。
【教学反思】
本项目课程,通过行空板与物联网Easy Iot连接,实现物物相联,实现远程控制风扇,远程传递信息。通过由浅入深,小组合作,不断迭代的学习过程,让学生通过本节课深入学习了物联网,并进行了生活中的实际应用。
这个项目有趣有趣 电池座在哪里买到?
rzegkly 发表于 2022-9-2 10:22
电池座在哪里买到?
DF商城就有 云天 发表于 2022-9-2 16:29
DF商城就有
谢谢
页:
[1]