8423| 5
|
[项目分享] 智能门锁 |
本帖最后由 汤果 于 2020-9-30 12:14 编辑 【项目介绍】 这是一款基于单神经元模块的智能门锁。开锁密码可以通过按钮自行设置,可以设置不同的按键次数及按键时间。如果密码输入正确,门锁会自动打开。该门锁还具有物联网功能,每次开关门锁都会上传至云端,户主可以在网页端、小程序端查看开关门锁记录。 【项目演示】 【单神经元模块】 单神经元模块是 BOSON 系列中的一种功能模块,通过运用该模块,我们可以学习和了解人工智能的基础——机器学习。该功能模块模拟的是神经网络中最基础的一个节点——神经元。 神经元(neuron,neure),是神经系统的基本结构和机能单位。神经元在人体上有接受、整合和传递信息的功能。而我们用到的单神经元模块也是人工智能神经网络中的一个基础节点,与人体神经元类似。 通过单神经元模块的处理,按键按下和松开的时间节奏以及精度都能够得到控制,从而达到机器学习中“训练”和“调整”的目的。 在单神经元模块左侧的输入接口接入传感器,如:按钮开关、光照强度传感器、声音传感器等数字和模拟传感器后,按住单神经元模块上的学习按钮,即可对输入的电信号进行学习,同时学习指示灯点亮。整个学习过程,单神经元模块会记录信号的强度和模式。学习完毕后,松开学习按钮。当单神经元模块输入接口接收到学习过程中的同样的电信号强度和模式时,输出接口的信号线会输出高电平,不同的设备可以利用此电压信号实现想要的功能。匹配的精度可以通过精度调节旋钮进行调节。 材料清单
步骤1 连接器材 输入部分:按钮-->单神经元模块输入端-->单神经元模块输出端-->扩展板 P0 引脚 输出部分:扩展板 P16 引脚-->简易继电器模块 简易继电器模块:
步骤2 引入扩展 打开 Mind+,切换到上传模式。选择左下角的【扩展】,在【主控板】分类中选择【掌控板】。 加载【网络服务】中的【MQTT】与【Wi-Fi】模块。 步骤3 编写代码 程序的整体逻辑如下: 1.连接 Wi-Fi,等待直到连接成功 2.发起 MQTT 连接,等待直到成功 3.循环读取引脚 P0,如单神经元模块输出高电平则打开电磁锁,同时发送消息到物联网,告知门锁已打开。5 秒后关闭门锁,并通知物联网平台门锁已关闭。 MQTT 初始化参数中需要正确填写信息。这里采用了 EasyIot 平台。 在 https://iot.dfrobot.com.cn/workshop.html 中添加一个新的设备,记录设备的 Topic、左侧的 Iot_id 和 Iot_pwd,依次填入上图空格处。 步骤4 设置智能门锁密码 按下单神经元模块中间的学习按键,指示灯亮起,进入学习状态。在 10 秒内以不同的按键速度和按下时间作为智能门锁的密码,完成后松开学习按键,完成学习。下次再以同样的按键方式按键就可以让单神经元模块输出高电平,进而打开电磁锁。 步骤5 设计外观 这一个尺寸合适的纸箱,用螺丝将电磁锁固定在中间,并将其他器材全都塞进盒子里。 步骤6 测试运行 给设备通电,以不同的方式按键,测试是否能将门锁打开。同时物联网平台能够查看门锁开关记录。手机端 EasyIot 小程序也可以查看。 代码 [mw_shl_code=c,false]/*! * MindPlus * mpython * */ #include <DFRobot_Iot.h> // 静态常量 const String topics[5] = {"EXQEfFFGg","","","",""}; // 创建对象 DFRobot_Iot myIot; // 主程序开始 void setup() { myIot.wifiConnect("wifi_ssid", "password"); // 连接Wifi while (!myIot.wifiStatus()) {yield();} myIot.init("iot.dfrobot.com.cn","Hy-5X7JzZE","","rkfcQmJf-V",topics,1883); myIot.connect(); // 连接EasyIot while (!myIot.connected()) {yield();} } void loop() { if ((digitalRead(P0))) { myIot.publish(topic_0, "open"); digitalWrite(P16, HIGH); delay(5000); myIot.publish(topic_0, "close"); } else { digitalWrite(P16, LOW); } }[/mw_shl_code] 附件 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed