论文部分内容阅读
上期我们实现了掌控板和树莓派的基础通信。今天仍是使用rnPython x和古德微机器人进行“积木”编程,通过MOTT进行主题的发送、传输与接收,开发一个可以同时使用手机微信和树莓派来远程控制掌控板的物联网应用项目——根据手机命令,掌控板会做出RGB灯发光、OLED显示屏输出欢迎信息以及播放音乐等响应,当然也可以远控取消对应的动作响应。
运行mPython x,首先设置好Wi-Fi网络连接:然后设置MOTT模块的相关信息:“clientjd”:“luke007”,“server”:“www gdwrobot top”,“user”和“password”保持为空,“keepalive”保持默认的“30”不变,添加“连接MOTT”模块:接着,控制掌控板的OLED显示屏在第一行输出提示信息:“MOTT连接成功!”(如图1)。
建立“一直重复执行”循环结构,其中只放置一个“等待主题消息以‘阻塞’模式”语句模块(从“物联网”—“MOTT”中选择).作用是使掌控板处于消息监听状态,准备接收手机微信或树莓派远程发送过来的指令。“阻塞”模式是指调用结果返回之前,当前线程会被挂起,只有在得到结果之后才会继续。
接下来是三个“当从主题……接收到……时”循环结构,以第一个控制掌控板三支RGB灯为例:它所对应的监听主题是‘‘luke007/RGB”,其中的“luke007”是树莓派设备账号,而“RGB”则是自定义的主题名称;然后通过“如果……执行……”和“否则如果……执行…”双分支选择结构,判断消息“_msg”的值是“ON”还是“OFF”,“ON”对应的响应动作是控制RGB灯全部发红光,“OFF”对应的则是关闭RGB灯。
第二个控制OLED显示屏的主题名称是“OLED”,“_msg”消息值为“ON”和“OFF”对应的响应动作分别是在第二行显示“你好,树莓派!”和关闭OLED显示屏:第三个控制蜂鸣器的主题名称是“M Lisic”,“msg”消息值为“ON”和“OFF”对应的响应动作分别是播放掌控板内置音乐BIRTHDAY(《生日快乐》旋律)和停止音乐播放(如图2)。
在古德微机器人网站登录账号luke007,点击左侧的“控件控制”,保持默认的“服务器地址”(wss://www.gdwrobot.top)和“端口号”(8084)不变,点击后面的“测试连接”按钮出现“连接成功”提示后,再点击“添加控件”按钮,弹出“添加控件信息”窗口,进行第一个按钮信息的添加:
控件类型:“按钮”,设备编号:“luke007”,功能描述:“掌控板RGB灯”:自定义主题:“RGB”,这个主题名称必须要与上一步在mPython x中为掌控板编程所设置的完全一致,作用是控制RGB灯,点击“确定”按钮(如图3)。
再次点击“添加控件”按钮添加另外两个控件,均是按钮类型,功能描述的作用是显示提示,分别设置为“掌控板OLED屏”和“掌控板音乐”:自定义主题是唯一的,分别设置为“OLED”和“Music”,这个也是要与mPython x中设置的完全一致。三个主题默认发送消息的内容是“ON”或“OFF”,同样也是与掌控板接收端的mPython x编程设置都保持一致,这样才能保障通信双方进行数据的正确发送与接收。完成三个按钮控件的添加设置后,在“应用名称”处输入“树莓派控制掌控板”后,点击下方的“保存”按钮,将该项目内容保存至账号中(如图4)。
点击右下角的“生成新的网页”按钮,浏览器就会弹出一个简易网页(地址栏处显示有“树莓派控制掌控板”的标题),内容分别是“掌控板RGB灯:”“掌控板OLED屏:”和“掌控板音乐:”,下方各自对应有“开”和“关”两个按钮:如果再点击下方的“分享”按钮,就会弹出一个“微信扫一扫”二维码,当打开手机微信端的“扫一扫”并对准该二维码时,手机微信就会弹出“树莓派控制掌控板”页面,内容与网页一致:三组控件、三对“开”“关”按钮(如图5)。
将掌控板通过数据线连接至运行mPyrhon x的电脑USB接口,登录账号后再点击“刷入运行”按钮,将之前编写的程序代码写入掌控板(“刷入成功”)。
掌控板OLED顯示屏第一行会先显示“MOTT连接成功!”的提示信息,处于消息监听状态:然后给树莓派通电、启动操作系统,在古德微机器人平台点击“连接设备”,到之前的浏览器或手机微信的“树莓派控制掌控板”,尝试点击各“开”“关”按钮进行测试:第一组“掌控板RGB灯”的开关可远控掌控板三个RGB亮红灯和关闭,第二组“掌控板OLED屏”的开关可远控掌控板的OLED显示屏第二行显示“你好,树莓派!”和关闭,第三组“掌控板音乐”的开关可远控掌控板的蜂鸣器播放“Happy Birthday”音乐旋律和关闭(如图6)。本程序源代码请扫描二维码下载。
1.在mPython X中为掌控板编程实现消息接收
运行mPython x,首先设置好Wi-Fi网络连接:然后设置MOTT模块的相关信息:“clientjd”:“luke007”,“server”:“www gdwrobot top”,“user”和“password”保持为空,“keepalive”保持默认的“30”不变,添加“连接MOTT”模块:接着,控制掌控板的OLED显示屏在第一行输出提示信息:“MOTT连接成功!”(如图1)。
建立“一直重复执行”循环结构,其中只放置一个“等待主题消息以‘阻塞’模式”语句模块(从“物联网”—“MOTT”中选择).作用是使掌控板处于消息监听状态,准备接收手机微信或树莓派远程发送过来的指令。“阻塞”模式是指调用结果返回之前,当前线程会被挂起,只有在得到结果之后才会继续。
接下来是三个“当从主题……接收到……时”循环结构,以第一个控制掌控板三支RGB灯为例:它所对应的监听主题是‘‘luke007/RGB”,其中的“luke007”是树莓派设备账号,而“RGB”则是自定义的主题名称;然后通过“如果……执行……”和“否则如果……执行…”双分支选择结构,判断消息“_msg”的值是“ON”还是“OFF”,“ON”对应的响应动作是控制RGB灯全部发红光,“OFF”对应的则是关闭RGB灯。
第二个控制OLED显示屏的主题名称是“OLED”,“_msg”消息值为“ON”和“OFF”对应的响应动作分别是在第二行显示“你好,树莓派!”和关闭OLED显示屏:第三个控制蜂鸣器的主题名称是“M Lisic”,“msg”消息值为“ON”和“OFF”对应的响应动作分别是播放掌控板内置音乐BIRTHDAY(《生日快乐》旋律)和停止音乐播放(如图2)。
2.在古德微机器人网站中为树莓派编程实现消息发送
在古德微机器人网站登录账号luke007,点击左侧的“控件控制”,保持默认的“服务器地址”(wss://www.gdwrobot.top)和“端口号”(8084)不变,点击后面的“测试连接”按钮出现“连接成功”提示后,再点击“添加控件”按钮,弹出“添加控件信息”窗口,进行第一个按钮信息的添加:
控件类型:“按钮”,设备编号:“luke007”,功能描述:“掌控板RGB灯”:自定义主题:“RGB”,这个主题名称必须要与上一步在mPython x中为掌控板编程所设置的完全一致,作用是控制RGB灯,点击“确定”按钮(如图3)。
再次点击“添加控件”按钮添加另外两个控件,均是按钮类型,功能描述的作用是显示提示,分别设置为“掌控板OLED屏”和“掌控板音乐”:自定义主题是唯一的,分别设置为“OLED”和“Music”,这个也是要与mPython x中设置的完全一致。三个主题默认发送消息的内容是“ON”或“OFF”,同样也是与掌控板接收端的mPython x编程设置都保持一致,这样才能保障通信双方进行数据的正确发送与接收。完成三个按钮控件的添加设置后,在“应用名称”处输入“树莓派控制掌控板”后,点击下方的“保存”按钮,将该项目内容保存至账号中(如图4)。
点击右下角的“生成新的网页”按钮,浏览器就会弹出一个简易网页(地址栏处显示有“树莓派控制掌控板”的标题),内容分别是“掌控板RGB灯:”“掌控板OLED屏:”和“掌控板音乐:”,下方各自对应有“开”和“关”两个按钮:如果再点击下方的“分享”按钮,就会弹出一个“微信扫一扫”二维码,当打开手机微信端的“扫一扫”并对准该二维码时,手机微信就会弹出“树莓派控制掌控板”页面,内容与网页一致:三组控件、三对“开”“关”按钮(如图5)。
3.测试“微信、树莓派双控掌控板”
将掌控板通过数据线连接至运行mPyrhon x的电脑USB接口,登录账号后再点击“刷入运行”按钮,将之前编写的程序代码写入掌控板(“刷入成功”)。
掌控板OLED顯示屏第一行会先显示“MOTT连接成功!”的提示信息,处于消息监听状态:然后给树莓派通电、启动操作系统,在古德微机器人平台点击“连接设备”,到之前的浏览器或手机微信的“树莓派控制掌控板”,尝试点击各“开”“关”按钮进行测试:第一组“掌控板RGB灯”的开关可远控掌控板三个RGB亮红灯和关闭,第二组“掌控板OLED屏”的开关可远控掌控板的OLED显示屏第二行显示“你好,树莓派!”和关闭,第三组“掌控板音乐”的开关可远控掌控板的蜂鸣器播放“Happy Birthday”音乐旋律和关闭(如图6)。本程序源代码请扫描二维码下载。