5125| 4
|
[项目教程] 【micro:bit × OBLOQ挑战赛›】挑战1:microbit + OBLOQ 实现物联网... |
本帖最后由 LYon 于 2018-7-17 23:59 编辑 本次挑战赛DFRobot第一办就给每个参赛者免费赠送了Micro:Mate—最小的micro:bit多功能I/O扩展板和Gravity: UART OBLOQ - IoT物联网模块,随着比赛的进行可能会送出更多的硬件,在此深表感谢! 编程软件平台:微软makecode图形化编程平台 在硬件连接的时候,要注意是无法通过micro:bit开发板给Micro:Mate扩展板的数字接口部分供电的,最好是Micro:Bit开发板和Micro:Mate扩展板分别用一根USB线连接电脑。OBLOQ模块在连接到Micro:Mate扩展板上时,电源最好接到右边数字口的电源接口上,这样可以直接用右侧的开关来选择工作电压是5V还是3V,也可以把开关打到OFF关闭数字口部分的电源,模拟口的电源输出是固定3V且无法关闭的。 首先要在DFRobot的Easy Iot物联网平台注册一个帐号,注册及使用过程论坛里已经有很多的教程。注册后免费获取10个设备连入权限,目前平台限制每个设备最多只可接收1000条消息,要注意的每条消息的发布间隔时间要在5秒以上,不然obloq模块库代码在运行的时候会出现异常死锁。 微软Makecode图形化编程平台界面非常友好,直接拖动图形化编程块就可以方便快速地“0”代码编程,在屏幕还提供了Micro:Bit仿真,方便LED显示交互调试及没有开发板的用户。 Makecode平台有一个让我非常喜欢的特点是变量和函数都可以使用中文!这是很多其他编程软件做不到的,可以省去很多的注释了,也方便了我这样英文不好的不用再为变量起名而发愁。 makecode在线生成的javascript代码,可以在线编译成二进制文件,可以非常方便的直接拷贝到Micro:Bit连接PC后加载出优盘中就完成了程序烧写,然后会Micro:Bit上自动运行程序。 [mw_shl_code=javascript,true] let 平均温度 = 0 let 温度数据 = 0 let 等待指令状态 = false Obloq.obloq_mqttCallbackUser( ({ myparam: 远程指令 }) => { if (远程指令 == "T") { 执行指令() } }) input.onButtonPressed(Button.A, () => { 执行指令() }) function 执行指令() { 等待指令状态 = false basic.showIcon(IconNames.Surprised) basic.pause(1000) 计算平均温度的函数() Obloq.Obloq_sendMessage("" + 平均温度) serial.writeLine("AvgTemp:" + 平均温度) basic.showString("Avg:" + 平均温度) basic.showIcon(IconNames.Happy) basic.pause(5000) 等待指令状态 = true } serial.onDataReceived(serial.delimiters(Delimiters.NewLine), () => { if (serial.readString() == "T") { 执行指令() } }) function 计算平均温度的函数() { 温度数据 = 0 for (let i = 0; i < 20; i++) { 温度数据 = 温度数据 + input.temperature() serial.writeLine("" + input.temperature()) basic.showIcon(IconNames.SmallDiamond) basic.showIcon(IconNames.Diamond) basic.showIcon(IconNames.SmallDiamond) basic.clearScreen() basic.pause(100) } 平均温度 = 温度数据 / 20 } Obloq.Obloq_setup( "CXWL", "wwwcxwlcn", "H1W2nUxv77", "H1z22LgwXX", "HJSniPjXQ", SerialPin.P1, SerialPin.P2 ) Obloq.Obloq_startConnect() 等待指令状态 = true basic.forever(() => { if (等待指令状态) { basic.showIcon(IconNames.SmallHeart) basic.showIcon(IconNames.Heart) } }) [/mw_shl_code] |
本帖最后由 LYon 于 2018-7-18 01:38 编辑 可以在微信中搜索Easy Iot小程序,绑定帐号后就能在手机上远程发出控制指令和查看模块上传的数据。 参加这个挑战赛学用Micro:Bit编程的过程可谓是一波三折,本来我对Arduino编程稍微熟悉一点,能做做简单的小程序,但看到DF开发的Mind+图形化编程软件新版功能非常强大,支持图形化的Arduino以及MicroPython编程,昨天拿到DF送的Micro:Bit开发板后就开始尝试用Mind+来做OBLOQ模块的MQTT数据发送。但发现Mind+好象不是太稳定,有时打开会丢失通信模块,有时块显示不正常没有文字,甚至有时整个窗口白屏。后来搞了半天才明白丢失通信模块的原因是因为在实时模式和MicroPython编程时,Mind+没有通信等模块的MicroPython代码,所以也就无法选择。而且有些功能模块还是没那么完善,暂时还无法完全实现我的需求,又转过头直接用Arduino直接编程,结果可能是我添加的Arduino开发板和库太多造成的混乱,在编译时提示缺少文件无法通过。于是只能又花了半天时间去学DF的BXY下的MicroPython编程,终于到比赛开始前刚有点眉目,可以成功在EasyIot上发布订阅数据了。没想到最后第一轮挑战内容发布后给出的教程却是微软的Makecode平台,好吧,只能再学学这个再参赛吧,于是直到快到0点的时候才交卷发帖。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed