| 本帖最后由 云天 于 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、亲情灯演示视频
 
 6、改造风扇
 
  
 
  小风扇电路板的开关是一个轻触开关,轻触开关是一种电子开关,使用时轻轻点按开关按钮就可使开关接通。当松开手时开关既断开,其内部结构是靠金属弹片受力弹动来实现通断的。
 
  
 
  
 
  在轻触开关同向的两个引脚上,焊上两条导线,接到电磁继电器上。
 7、亲情风扇编程
 使用继电器代替轻触开关,高低电平变化代表按一下开关。因小风扇有三档,所以要关闭小风扇,要高低电平变化三次。程序如下:
  8.亲情风扇硬件
 
 
  9.亲情风扇演示
 
 
 10.分组合作
 分成两大组,一组进行亲情风扇硬件外壳设计;一组对程序进行优化;
 外壳设计
 (1)使用3D打印制作外壳
 (2)激光切割制作外壳
 (3)旧物改造制作外壳
 程序优化
 (1)行空板屏幕显示风扇静止、转动图案
 (2)对按钮动作进行编码,实现多功能,如可控制自己的风扇,发送信息
 11.教师演示——发送信息
 在5秒记下按钮按下“按钮亮灯”次数,将次数发送到物联网主题。当接收到消息后,判断“次数”,行空板显示“亲情消息”。
 
  
 Python代码:
 
 12.发送“亲情消息”演示复制代码
#  -*- 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)))
 
 
 13.利二进制计数改进因在短时间内,能实现按下按钮的次数是有限的,不能承载更多的信息。所以接下来利用二进制计数来实现,更多的编码。
 
  
 对以上程序,进行简化
 
  
 【学生自学】
 利用二进制改进,以上程序在大约10秒内只能实现16种编码,要想更多可采用莫斯电码方式,这部分由学生自学,然后小组讨论合作完成任务。
 【教学反思】
 本项目课程,通过行空板与物联网Easy Iot连接,实现物物相联,实现远程控制风扇,远程传递信息。通过由浅入深,小组合作,不断迭代的学习过程,让学生通过本节课深入学习了物联网,并进行了生活中的实际应用。
 
 |