3666| 4
|
[项目教程] micro:bit × OBLOQ挑战赛第二轮——家居布防红外声音物联 |
本帖最后由 kylinpoet 于 2018-8-18 05:45 编辑 micro:bit × OBLOQ挑战赛第二轮——家居布防红外声音物联 【项目介绍】 随着物联网技术的发展,家居安全的应用越来越受大众喜欢。怎么样在降低成本的情况下,方便快速地布防房屋安全是大家喜闻乐见的。本次micro:bit+OBLOQ比赛第二关的设计思路就是在这样的情况下运用不同的传感器(人体红外传感器、模拟声音传感器)和执行器(带功放喇叭模块Speaker)以及物联互动的方式达到安全布防的效果。 【项目准备】硬件 micro:bit×1 DF micro:mate扩展板×1 DF OBLOQ物联网模块×1 PIR Sensor红外传感器×1 Analog Sound Sensor模拟声音传感器×1 SPEAKER带功放喇叭模块×1 安卓手机×1 软件平台 makecode在线平台 MQTT Dash 【项目执行】1. 配置物联网服务 登陆注册有多个入口,除了直接访问IoT平台https://iot.dfrobot.com.cn,DF也将其像商城账号一样关联到了社区里。可在社区用户信息里依次点击菜单中的“物联网”-“管理设备”进入IoT平台。或者直接在IoT平台点击“工作间”进入(先登录账号)。 点击后台上的这个按钮明文显示ID和PWD备用 2. 线路连接 如图所示: (1). google play store 搜索,手机安装 MQTT Dash (2). 设置MQTT Dash的IoT地址和Topic(不详细介绍了) [mw_shl_code=javascript,true]let result = 0 5. 方案说明:let alarm_Mess = "" let alarm_type = 0 function play_Alarm() { for (let i = 880; i <= 1760; i = i + 16) { music.playTone(i, 6) } for (let j = 1760; j >= 880; j = j - 16) { music.playTone(j, 6) } } Obloq.obloq_mqttCallbackUser( ({ myparam: message }) => { if (parseInt(message) == result) { alarm_type = 0 } else { alarm_type = 1 } }) let plus_1 = 0 let plus_2 = 0 alarm_Mess = "invasion!answer the question in 10s!\\n" Obloq.Obloq_setup( "wifi", "wifi密码", "ID", "PASS", "TOPIC", SerialPin.P12, SerialPin.P16 ) Obloq.Obloq_startConnect(SERVERS.China) basic.forever(() => { if (pins.digitalReadPin(DigitalPin.P8) == 1 && pins.analogReadPin(AnalogPin.P2) > 10) { plus_1 = Math.random(10) plus_2 = Math.random(10) result = plus_1 + plus_2 Obloq.Obloq_sendMessage("" + alarm_Mess + plus_1.toString() + "+" + plus_2.toString() + "=?") basic.pause(10000) if (alarm_type == 1) { play_Alarm() Obloq.Obloq_sendMessage("alarm!invasion!") } else { Obloq.Obloq_sendMessage("alarm removed") } } })[/mw_shl_code] 为了此安防系统的有效性,方案里设置了红外传感器和声音传感器结合检测模式:当红外传感器检测到有人并且模拟声音传感器检测到足够的音量时,开始进行进入布防状态。为了防止误触,程序设置了一个随机的加法运算发送到手机进行判断,如果10秒内没有正常输入进入警报模式,如果输入正确的话,解除警报。 没有输入正确答案,程序开始报警! 如果输入正确,则解除警报: 完整的信息交互: 模拟声音传感器: 原理:声波使话筒内的驻极体薄膜振动,导致电容的变化,而产生与之对应变化的微小电压。这一电压随后被放大为可被主控器识别的电压。(DF比赛提供) 红外释热电运动传感器: 人体都有恒定的体温,一般在37度,所以会发出特定波长10UM左右的红外线,红外释热电运动传感器内置的红外探头刚好可以探测到人体发射的10UM左右的红外线。人体发射的10UM左右的红外线通过菲涅尔滤光片增强后聚集到红外感应源上,红外感应源通常采用热释电元件,这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡,向外释放电荷,产生电信号。(DF比赛提供) 【视频演示】1. 强烈抗议主办方将平台限制为makecode,有种写易语言的恶心感! 2. makecode上的Obloq 模块发送中文显示乱码,毫无疑问是Obloq包的问题,需要杀程序员祭天。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed