查看: 1106|回复: 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平台http://iot.dfrobot.com.cnDF也将其像商城账号一样关联到了社区里。可在社区用户信息里依次点击菜单中的“物联网”-“管理设备”进入IoT平台。或者直接在IoT平台点击“工作间”进入(先登录账号)。
点击后台上的这个按钮明文显示ID和PWD备用

2. 线路连接 截图201808180527307223.png
如图所示:
截图201808180519179979.png
3. 软件配置
(1). google play store 搜索,手机安装 MQTT Dash
(2). 设置MQTT Dash的IoT地址和Topic(不详细介绍了)
Screenshot_2018-08-18-03-34-36-612_net.routix.mqttdash.png
4. 脚本编写
microbit-屏幕截图.png
[JavaScript] 纯文本查看 复制代码
let result = 0
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")
        }
    }
})
5. 方案说明:
为了此安防系统的有效性,方案里设置了红外传感器和声音传感器结合检测模式:当红外传感器检测到有人并且模拟声音传感器检测到足够的音量时,开始进行进入布防状态。为了防止误触,程序设置了一个随机的加法运算发送到手机进行判断,如果10秒内没有正常输入进入警报模式,如果输入正确的话,解除警报。
截图201808180521376364.png
没有输入正确答案,程序开始报警!
截图201808180521518702.png
如果输入正确,则解除警报:
截图201808180522107534.png
截图201808180522205677.png
完整的信息交互:
截图201808180522326855.png

【基本原理】
模拟声音传感器:
截图201808180522414643.png
原理:声波使话筒内的驻极体薄膜振动,导致电容的变化,而产生与之对应变化的微小电压。这一电压随后被放大为可被主控器识别的电压。(DF比赛提供)
红外释热电运动传感器:
截图201808180522517703.png
人体都有恒定的体温,一般在37度,所以会发出特定波长10UM左右的红外线,红外释热电运动传感器内置的红外探头刚好可以探测到人体发射的10UM左右的红外线。人体发射的10UM左右的红外线通过菲涅尔滤光片增强后聚集到红外感应源上,红外感应源通常采用热释电元件,这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡,向外释放电荷,产生电信号。(DF比赛提供)
【视频演示】
【吐槽】
1. 强烈抗议主办方将平台限制为makecode,有种写易语言的恶心感!
2. makecode上的Obloq 模块发送中文显示乱码,毫无疑问是Obloq包的问题,需要杀程序员祭天。

hnyzcj  超级版主

发表于 2018-8-18 07:14:05

需要杀程序员祭天。
哈哈哈哈哈哈哈哈哈  哈哈哈哈哈哈哈
回复 支持 反对

使用道具 举报

网络白丁  初级技师

发表于 2018-8-18 08:19:45

杀程序员祭天

会不会有选择困难症
回复 支持 反对

使用道具 举报

rzyzzxw  版主

发表于 2018-8-18 09:47:09

网络白丁 发表于 2018-8-18 08:19
杀程序员祭天

会不会有选择困难症

程序员呢,出来出来
回复 支持 反对

使用道具 举报

安卓机器人  初级技神

发表于 2018-8-18 18:43:25

学习学习
回复 支持 反对

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

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

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

mail