micro:bit × OBLOQ挑战赛第二轮——家居布防红外声音物联
本帖最后由 kylinpoet 于 2018-8-18 05:45 编辑micro:bit × OBLOQ挑战赛第二轮——家居布防红外声音物联
【项目介绍】随着物联网技术的发展,家居安全的应用越来越受大众喜欢。怎么样在降低成本的情况下,方便快速地布防房屋安全是大家喜闻乐见的。本次micro:bit+OBLOQ比赛第二关的设计思路就是在这样的情况下运用不同的传感器(人体红外传感器、模拟声音传感器)和执行器(带功放喇叭模块Speaker)以及物联互动的方式达到安全布防的效果。【项目准备】
硬件micro:bit×1DF micro:mate扩展板×1DF OBLOQ物联网模块×1PIR Sensor红外传感器×1Analog Sound Sensor模拟声音传感器×1SPEAKER带功放喇叭模块×1安卓手机×1软件平台makecode在线平台MQTT Dash【项目执行】
1. 配置物联网服务 登陆注册有多个入口,除了直接访问IoT平台https://iot.dfrobot.com.cn,DF也将其像商城账号一样关联到了社区里。可在社区用户信息里依次点击菜单中的“物联网”-“管理设备”进入IoT平台。或者直接在IoT平台点击“工作间”进入(先登录账号)。点击后台上的这个按钮明文显示ID和PWD备用https://mc.dfrobot.com.cn/data/attachment/forum/201807/20/220359rllpvr5pg6pl70vv.png
2. 线路连接如图所示: 3. 软件配置(1). google play store 搜索,手机安装 MQTT Dash(2). 设置MQTT Dash的IoT地址和Topic(不详细介绍了) 4. 脚本编写 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秒内没有正常输入进入警报模式,如果输入正确的话,解除警报。没有输入正确答案,程序开始报警!如果输入正确,则解除警报: 完整的信息交互:
【基本原理】模拟声音传感器: 原理:声波使话筒内的驻极体薄膜振动,导致电容的变化,而产生与之对应变化的微小电压。这一电压随后被放大为可被主控器识别的电压。(DF比赛提供)红外释热电运动传感器: 人体都有恒定的体温,一般在37度,所以会发出特定波长10UM左右的红外线,红外释热电运动传感器内置的红外探头刚好可以探测到人体发射的10UM左右的红外线。人体发射的10UM左右的红外线通过菲涅尔滤光片增强后聚集到红外感应源上,红外感应源通常采用热释电元件,这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡,向外释放电荷,产生电信号。(DF比赛提供)【视频演示】 https://v.youku.com/v_show/id_XMzc4NjE0MzEwNA==.html?spm=a2h3j.8428770.3416059.1【吐槽】1. 强烈抗议主办方将平台限制为makecode,有种写易语言的恶心感!2. makecode上的Obloq 模块发送中文显示乱码,毫无疑问是Obloq包的问题,需要杀程序员祭天。
需要杀程序员祭天。
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈 杀程序员祭天
会不会有选择困难症 网络白丁 发表于 2018-8-18 08:19
杀程序员祭天
会不会有选择困难症
程序员呢,出来出来{:5_140:} 学习学习{:5_151:}
页:
[1]