13203| 26
|
用OBLOQ物联网模块做一个防沉迷盒子 |
开头胡扯:之前,由于公司需要以及自身亟待提高的屌丝气质,所以决定为自己取一个英文名字,思来想去最后选了——Random,“随机”的意思。就是那个将抛硬币上天,然后落回手背,让人猜正反面的随机。我自己是很早就离开了学校,但出来工作后,还保持着对这个世界里面规律规则的好奇,所以平时也偶尔看看科普读物,经常思考些与柴米油盐不沾边的问题,于是被朋友冠上了“民科”的称号。为什么选“Random”呢?因为我肤浅地认为“随机”可能是这个世界最深层次的秘密。我其实之前一直是“极端决定论”的支持者,这个理论解释起来就是——我为什么要在这里写下现在这些文字呢?其实是因为张三之前站在撒哈拉沙漠里打了一个喷嚏;而他打喷嚏,又是因为李四在澳大利亚的马路上摔了一跤;而李四摔了一跤,又是因为仙女星云里有一颗恒星开始转变为红巨星......这个连锁就像是抽毛线团一样,没有止境地,可以一直往前推演。从初中接触物理知识开始,一个观点就开始在我心里不断地被夯实,那就是——这个世界,所有的东西都是有其自身的规律规则。历史上“极端决定论”,在经典物理大厦落成时达到顶峰,那时人们认为只要掌握足够多的数据,就可以知晓过去,甚至是未来,比如预测天气。后来被人们用新的物理知识推翻了“极端决定论”。可是我却一直相信着“决定论”,坚定地认为新的物理领域里的“随机”只是人类暂时的知识盲区而已。所以我一直觉得我们的世界不存在真正的随机。而真正的随机,可能是最迷人的现象。如果它真的存在,这个世界就不至于单调乏味;也就不至于仅仅用规律规则就能算出来各自的未来和这个世界的命运,其实这也正是人们口中常念叨的“冥冥中”。 有天我骑车回家,路上又出神了。当时一个念头蹦了出来——如果我们这个世界真的被最终确认为万事万物都有其规律规则,就不能产生随机了吗?很神奇的是,居然好像也可以产生。这恰好又是因为“一切皆有其自身的规则规律”,能产生出随机。在一个完全有规律的封闭系统里,任何事物的细微动作都会对周围环境产生巨大扰动。就好比你永远无法思考出在你跟前的微观粒子的当前状态,因为你一思考,它就又被扰动了,这又让人不禁联想到海森堡发现的“测不准原理”。其实这样的情况也算是一种自欺欺人的随机吧。不知道算不算巧合,现在比较前沿的物理,在微观层面发现存在“随机”现象,而在宏观上面却存在着诸如牛顿三定律这样的规律法则。这就好像是在笼统的宏观上会产生“牛顿三定律”,而在细枝末节的微观上会产生随机。由于我自身见识有限,这种体会,不知该给它安上一个什么样的词句来总结。是随着科学探索的尺度越来越微观,人类会变得越来越无知?还是你想去抓一个小气球,而你伸出去的手所带动的气流,却把它推到了更远的地方?我也猜测,会不会是现在人们研究的领域,已经触碰到了这个封闭系统的边缘了呢?就像是一个人类物理学家,他的大脑仅仅思考了那么一小下,却在他所要观察的微观层面上掀起了惊涛骇浪,将试验结果搅得天翻地覆。 我也曾想到过一个情况,可以计算出一个系统的过去与未来。假设现在有个鱼缸摆在你的面前,里面有鱼、水、水草、小石子,这样一个小的生态系统。而你所处的外部世界独立于鱼缸世界,也可以说是高于鱼缸世界,由于鱼缸世界是封闭的,并且完全有规律。所以尽管你能看到鱼缸世界里面所有信息,但是你的“看”不会对鱼缸世界产生任何影响,鱼缸里的鱼类科学家根本不可能通过任何物理手段探测到你的存在。其实你“看鱼缸世界”这个行为其实已经收走了鱼缸世界里的光,对它们肯定会有影响的,不过咱们是开着挂的,所以不必深究这个细节。然后,你对鱼缸世界进行观察和总结,一段时间后,你可以利用你所在的外部世界里的物质作为工具,来计算出鱼缸世界每一颗砂砾、每一个细胞的过去和未来。 【正文】 现在正值暑假期间,从学校里解放的小朋友们,又终于可以回到家里玩爸爸了。不过由于父母上班比较忙,在这样的寒暑长假里,有些小朋友们在家里玩手机和平板这些就没人管了,小朋友可能一玩就是一整天。应运而生,为了拯救快近视了的野生小朋友们,于是就产生了一个想法——物联网防沉迷盒子。这个想法是看到论坛里的朋友 hnyzcj的《用电磁锁做一个指纹锁》这个制作得到的启发。 【10s短视频】 【完整制作视频】 以下为图文制作介绍(会比视频更详细): 之前有朋友说我做的东西,手工成分太厉害,导致了他那样手工不好的人只能无奈摇头。应他的要求,这次这个防沉迷盒子,我将手工成分降到最低。概括起来就是——需要打一处热溶胶和拧不到二十颗的螺丝。 先放几张完成后的图片: 制作思路: 使用电磁锁作为盒子的开关结构,盒子会在关闭状态下(锁会告诉UNO此刻盒子的开闭状态),等待3分钟,如果3分钟内无按键上的操作就会进入睡眠模式。当按下薄膜按键上的“1”键后,会唤醒盒子,并通过OBLOQ模块向IOT平台发送一条开启请求。IOT平台接收到请求后,会决定是否要通过平台向盒子发送开启指令。当盒子被唤醒后,每30秒左右会向IOT平台发送盒子此刻的开闭状态、盒子内物品的厚度(超声波测距)、盒子内的物品的重量(重量传感器),这几个参数可以让那些头脑比较灵光的小朋友放弃对抗。设置密码开启的目的,是针对家长在家的时候,可以直接当面开启,RGB LED模块放置在盒子正面处,提供蓝绿红三种颜色。当蓝色亮起时,说明此刻装置处于唤醒的状态;当绿色亮起时,说明盒子立即会打开锁;当红色亮起时,说明输入的密码错误;当LED熄灭时,说明盒子进入了睡眠模式。 准备材料: 1. DFRduino UNO R3 DFR0216 2. IO 传感器扩展板 V7.1 DFR0265 3. Gravity: UART OBLOQ - IoT物联网模块 TEL0118 4. 数字继电器模块(Arduino兼容) DFR0017 5. 4*4 薄膜数字键盘(背面带贴纸) FIT0129 6. Gravity:URM09-模拟量超声波测距传感器 SEN0307 7. 重量传感器模块 (电子称) SEN0160 8. 电磁锁 FIT0620 9. Gravity:数字RGB全彩LED模块 DFR0605 10. 高品质公母头跳线 21cm*30根 FIT0365 11. DC 5.5*2.1mm 1(母头)分2(公头)电源线 12. 9~12V 电源 13. 自攻螺丝(M3*10) x 20 14. 圆头十字螺丝(M5*20) & 螺母x 2 15. 内六角螺丝(M4*35) x 2 16. 内六角螺丝(M3*18) & 螺母 x 2 17. 柜门合页 (2寸) x 1(图上多了一个) 这两款是DF新推出的Grivaty接口的超声波模块,插接方便。左边款是模拟量的,右边这款是I2C的,I2C这款不仅具有超声波测距功能,还有测温度的功能。 继电器需要搭配电磁锁使用,因为电磁锁使用的是9-12v的电源进行开闭操作,UNO通过控制继电器来达到控制电磁锁电路的闭合和断开。(注意:电磁锁不可长时间通电,最好完成动作后立马断电,长时间通电会导致电磁锁发烫并最后烧坏) 继电器的左边是接控制闭合和断开的接线柱,从上往下依次为(NC、NO、N/A、COM),右边是接UNO的IO引脚的。当UNO给高电平时,NO和COM的接线导通;UNO给低电平时,NC和COM的接线导通。与电磁锁进行接线时,电磁锁的电源线正极(粗、红色)接在COM上,电磁锁电源负极(粗、黑色)和电磁锁上的负极(细、黑色)一起接在N/A上,电磁锁上的正极(细,红色)接在NO上 电磁锁的右上角有一个金属拨杆,手动拨动的话,可以将电磁锁开锁并将锁舌弹出去。锁身上有3个安装孔,可以将其固定在其他物体上,安装孔可以穿过M3的螺丝。锁的配件里有一根DC电源线和一根转接杜邦线,这个转接杜邦线连在UNO的IO引脚上,可以将锁此刻的开闭状态告诉给UNO。 4*4薄膜键盘,背面带有粘胶,撕开就可以贴在相应的区域。键盘最厚处1.23mm,有8个引脚,引脚两端标有数字,最左边是8,最右边是1。8-5号引脚是连接的行,依次为1、2、3、4行,4-1号引脚是连接的列,依次为1、2、3、4列;当万用表打在电阻档时,一头接在8号引脚,一头接在4号引脚上,按下数字键“1”,阻值会从无穷大降低至3K欧左右;一头接8号引脚,另一头接3号引脚,按下数字键“2”的现象类似。当UNO对键盘的相应引脚进行电平扫描时,说明键此刻被按下。键盘内部有硬件消抖,所以在程序上就不用写消抖函数了,直接读取引脚的电平高低即可。 重量传感器模块,包含了一块PCB和一条铝块,铝块上左边是两个M5的螺纹孔,右边是两个M4的螺纹孔,分别用于固定位置和固定托盘。铝块中间填胶的位置有传感器,当铝块的一头受力时,中间填胶处通过检测张力来测得重物的重量。重量传感器最大可测1Kg重量,数值结果保留至0.1g的精度。 数字RGB LED全彩模块,兼容WS2812灯珠的控制。模块右边是控制信号的输入端,左边是信号输出端,通过插针搭配杜邦线母头的连接方式,可以很方便地快速连接数个这样的LED模块,轻松实现包括节日氛围灯、圣诞树装饰彩灯的布置 设计盒子的外观: FDM 3D打印: 接下来安装薄膜键盘。撕下薄膜键盘背面的贴纸,将键盘贴在盒子正面的方槽里: 安装RGB LED模块,在盒子正面的内侧左边有一个为LED模块设置的位置,用自攻螺丝可以直接将LED固定在那里: 盒子底部,按照如下图示摆放,并使用M5*10的自攻螺丝分别固定在底板上 依次为:OBLOQ模块、重量传感器模块、继电器模块、UNO及扩展板 这根铝条,左边的M5的两个螺纹孔,使用M5*20的带螺母的螺丝固定在底板上: 将螺母放置在盒子底部的两个六边形孔里,卡住: 将螺丝从盒子内部穿过铝块,然后与底部螺母旋紧,固定住铝块: 接下来安装电磁锁,将两枚M3*18的螺丝的螺母分别塞进两个对应的内六角槽里,卡住: 将电磁锁从盒子内部的下方往上推,塞进电磁锁的卡缝里,并用两枚M3*18螺丝固定住: 安装DC 1分2的电源线,这根电源线那个母头是安装在盒子背面的圆孔里,我买的这种母头上有个圆环台阶,直接可以从内部往外面塞紧,可以加一些热熔胶之类的胶固定更牢固。这个母头是接外部电源,分出来的2个公头,一头接在电磁锁的电源线上,一头接在UNO的DC电源接口上,为这两个器件供电: 用之前的公母头杜邦线8根,公头连接在薄膜键盘的8根接线上,延长出来,后边接在UNO扩展板的IO口上: 安装盒子的合页,同样使用自攻螺丝: 在盖子内侧用自攻螺丝安装超声波模块和锁舌,和之前的步骤类似。 将所有的器件按照下图连接起来: 将所有的线都卡在这两个卡线槽里,线太多的话,可以采取只卡粗线,用粗线将其他细线压住: 根据自己的WiFi和IOT平台账户与设备,修改程序开头的相应的WiFi名称(WIFISSID)、WiFi密码(WIFIPWD)、IOT平台网站(SERVER)、IOT的ID(IOTID)、IOT的密码(IOTPWD)、IOT里自己的某台设备编号(TOPIC)、以及你想要设置开启盒子的密码(adminPassword双引号里的数值),我的密码是0123456789A并按下#键确认 然后将程序烧录进去: 用两枚M4*35的螺丝穿过托盘,然后用螺丝去旋紧底部的铝块上的两个M4的螺纹孔,固定住托盘: 制作就完成了。插上外部电源,盒子就开始工作了。 演示功能: 手机远程开启。收到盒子发过来的开启请求,然后在IOT平台上的发送指令窗口里输入0123456789A,点击发送,然后盒子就被打开了,小朋友可以取出里面的手机或者平板玩了。 电脑远程开启,原理和手机开启一样: IOT平台那边会收到盒子发过来的开启请求和盒子内的各项数据: 密码开启: 睡眠状态: 唤醒后工作状态: 密码输入错误: 密码输入正确,并会开启盒子: 以上为制作的全部过程,感谢阅读观看。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed