213浏览
查看: 213|回复: 1

【物联网项目】亲情风扇

[复制链接]
本帖最后由 云天 于 2022-8-3 23:35 编辑

【情景引入】
这几天特别热,热的人心浮气躁,拿起小风扇,顿感丝丝凉意,舒服!小风扇,接下来的项目制作,将让小风扇更温馨、更有人情味。
【学习目标】
1. 学习EasyIoT物联网平台的使用方法
2. 掌握行空板与物联网平台进行信息交互的方法
3. 掌握微触开关工作原理及改造方法
4. 学习二进制及莫斯电码
教学重难点】
【教学重点】
1. 掌握行空板与物联网平台进行信息交互的方法
2. 学会二进制及莫斯电码
【教学难点】
改造微触开关

【教学准备】
1. 软件
Mind+
2. 硬件
行空板2块、扩展板2块、按钮2个、2路18650电池座2个、18650电池4个,小风扇2个 WedAugust-202208035322..png
【教学过程】
1.物联网Easy IOT
登录EasyIoT物联网平台(网址https://iot.dfrobot.com.cn/,没有账号需先注册)


WedAugust-202208037675..png

WedAugust-202208033495..png
进入“工作间”,添加两个新设备,分别为“亲情风扇A”、“亲情风扇B”
WedAugust-202208035783..png
2、行空板配网
使用USB线连接行空板与电脑
WedAugust-202208034762..png
按以下步骤配网
WedAugust-202208037030..png
3、先用LED进行测试
硬件连接
webwxgetmsgimg.jpg
亲情灯A
webwxgetmsgimg (1).jpg
亲情灯B
webwxgetmsgimg (2).jpg
4、亲情灯编程
WedAugust-202208032184..png
亲情灯A
亲情灯B的程序,只需要将订阅的主题,与发送消息的主题进行相互替换即可。5、亲情灯演示视频

6、改造风扇
1406509075.jpg

1383457452.jpg
小风扇电路板的开关是一个轻触开关,轻触开关是一种电子开关,使用时轻轻点按开关按钮就可使开关接通。当松开手时开关既断开,其内部结构是靠金属弹片受力弹动来实现通断的。
webwxgetmsgimg (3).jpg

webwxgetmsgimg (5).jpg

webwxgetmsgimg (4).jpg
在轻触开关同向的两个引脚上,焊上两条导线,接到电磁继电器上。
7、亲情风扇编程
使用继电器代替轻触开关,高低电平变化代表按一下开关。因小风扇有三档,所以要关闭小风扇,要高低电平变化三次。程序如下: WedAugust-202208033513..png
8.亲情风扇硬件

1361112919.jpg
9.亲情风扇演示


10.分组合作
分成两大组,一组进行亲情风扇硬件外壳设计;一组对程序进行优化;
外壳设计
(1)使用3D打印制作外壳
(2)激光切割制作外壳
(3)旧物改造制作外壳
程序优化
(1)行空板屏幕显示风扇静止、转动图案
(2)对按钮动作进行编码,实现多功能,如可控制自己的风扇,发送信息
11.教师演示——发送信息
在5秒记下按钮按下“按钮亮灯”次数,将次数发送到物联网主题。当接收到消息后,判断“次数”,行空板显示“亲情消息”。
WedAugust-202208031225..png

Python代码:

  1. #  -*- coding: UTF-8 -*-

  2. # MindPlus
  3. # Python
  4. from pinpong.extension.unihiker import *
  5. from pinpong.board import Board,Pin
  6. from unihiker import GUI
  7. import siot
  8. import time

  9. # 事件回调函数
  10. def on_message_callback(client, userdata, msg):
  11.     if (msg.payload.decode() == '1'):
  12.       
  13.         p_p9_out.write_digital(1)
  14.         time.sleep(0.5)
  15.       
  16.         p_p9_out.write_digital(0)
  17.         time.sleep(0.2)
  18.     if (msg.payload.decode() == '2'):
  19.       
  20.         p_p9_out.write_digital(1)
  21.         time.sleep(0.5)
  22.       
  23.         p_p9_out.write_digital(0)
  24.         time.sleep(0.2)
  25.       
  26.         p_p9_out.write_digital(1)
  27.         time.sleep(0.5)
  28.       
  29.         p_p9_out.write_digital(0)
  30.         time.sleep(0.2)
  31.       
  32.         p_p9_out.write_digital(1)
  33.         time.sleep(0.5)
  34.       
  35.         p_p9_out.write_digital(0)
  36.         time.sleep(0.2)
  37.     if (msg.payload.decode() == '3'):
  38.         消息.config(text="你好")
  39.     if (msg.payload.decode() == '4'):
  40.         消息.config(text="休息一下吧!")
  41.     if (msg.payload.decode() == '5'):
  42.         消息.config(text="天热记得要多喝水!")


  43. siot.init(client_id="",server="iot.dfrobot.com.cn",port=1883,user="X8jykxFnR",password="u8jskbFngz")
  44. u_gui=GUI()
  45. Board().begin()
  46. siot.connect()
  47. siot.loop()
  48. p_p8_in=Pin(Pin.P8, Pin.IN)
  49. siot.set_callback(on_message_callback)
  50. siot.getsubscribe(topic="5n92uqBMg")
  51. 显示计数=u_gui.draw_digit(text="0000",x=0,y=0,font_size=20, color="#0000FF")
  52. 消息=u_gui.draw_text(text="行空板",x=0,y=30,font_size=20, color="#0000FF")
  53. BiaoShi = 0
  54. temTime = 0
  55. JiShu = 0
  56. p_p9_out=Pin(Pin.P9, Pin.OUT)
  57. p_p9_out.write_digital(0)

  58. while True:
  59.     if (p_p8_in.read_digital()==True):
  60.         JiShu = 0
  61.         temTime=time.time()
  62.         while not (time.time()-temTime>5):
  63.             if (p_p8_in.read_digital()==True):
  64.                 if (BiaoShi == 1):
  65.                     BiaoShi = 0
  66.                     JiShu = (JiShu + 1)
  67.             else:
  68.                 if (BiaoShi == 0):
  69.                     BiaoShi = 1
  70.         siot.publish(topic="CrWfPaz4R", data=(str(JiShu)))
  71.         显示计数.config(text=(str(JiShu)))

复制代码
12.发送“亲情消息”演示


13.利二进制计数改进因在短时间内,能实现按下按钮的次数是有限的,不能承载更多的信息。所以接下来利用二进制计数来实现,更多的编码。
WedAugust-202208038071..png

对以上程序,进行简化
WedAugust-202208038554..png

【学生自学】
利用二进制改进,以上程序在大约10秒内只能实现16种编码,要想更多可采用莫斯电码方式,这部分由学生自学,然后小组讨论合作完成任务。
【教学反思】
本项目课程,通过行空板与物联网Easy Iot连接,实现物物相联,实现远程控制风扇,远程传递信息。通过由浅入深,小组合作,不断迭代的学习过程,让学生通过本节课深入学习了物联网,并进行了生活中的实际应用。

木子呢  NPC

发表于 2022-8-4 11:24:09

这个项目有趣有趣
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail