MYS-6ULX-IOT 开发板测评——实现简单的物联网应用

网友投稿 307 2022-09-18

MYS-6ULX-IOT 开发板测评——实现简单的物联网应用

前面,我们在 MYS-6ULX-IOT 开发板上成功地驱动了 RTL8188 WiFi 模块,也为 MYS-6ULX-IOT 的系统增加了 curl 命令。接下来,我们就来通过这个 WiFi 模块连接云端实现一个最简单的物联网应用。

提供 Web API

在本示例中,我的 web 服务器部署在阿里云上,大家也可以通过局域网内的服务器进行实验。

Web 服务器实现了 HTTP 和相关的 TCP 连接处理,同时具有 web 资源管理等功能。常见的 Web 服务器有 Nginx、Apache、IIS(Windows),而嵌入式领域则通常采用轻量级的 lig等等。

这里,我们实现一个物联网的点灯实验。在我的服务器上创建了一个 JSON API,它的内容如下:

{ "led": true}

在 MYS-6ULX-IOT 端,我们尝试用 curl 去获取这个 API:

# curl "led": true

很棒,看起来已经获取到云端数据了!

Python 实现连接

实际上,上述的 api.json 为我们提供的是 LED 的状态信息,我们的目的是让设备通过 Web API 实现 LED 的亮/灭操作。因此,我们要编写程序实现 HTTP 请求,并从中解析 LED 的状态。   MYS-6ULX-IOT 的 Base 系统已经包含了 Python2.7,那么简单起见,我们这里用 Python 来实现。示例程序如下:

# cat led.pyimport urllib2import jsonimport os, timewhile True: results = urllib2.urlopen(' status = json.loads(results)['led'] if status == True: print "Light ON" os.system("echo 1 > /sys/class/leds/user/brightness") else: print "Light OFF" os.system("echo 0 > /sys/class/leds/user/brightness") time.sleep(3)

首先使用 urllib2.urlopen 发起 HTTP 请求;然后使用 json.loads 解析 api.json,获取 LED 状态值;最后通过 os.system 调用本地 Shell 命令,对 LED 的文件 I/O 进行操作。为了降低请求频率,对每次请求增加了3秒的延时。

好啦,我们在 MYS-6ULX-IOT 开发板运行 ​​python led.py​​ 看看。

安装 json 模块

很遗憾,出现了 “ImportError: No module named json” 这样的错误,显然是因为当前系统没有 json 模块所造成的。然而,也没有 pip,所以我们需要手动安装 json 模块了。   登录 ​​​查找 json 模块,这里我们安装的是 simplejson,选择下载源代码 simplejson-3.15.0.tar.gz。

在 MYS-6ULX-IOT 开发板上解压缩 simplejson-3.15.0.tar.gz,进入目录 simplejson-3.15.0,然后执行以下命令安装即可:

python setup.py install

测试

别忘了,我们还要将 ​​import json​​​ 修改为 ​​import simplejson as json​​​。   然后再次执行,可以看到终端打印“Light ON”,并且 MYS-6ULX-IOT 开发板上的蓝色 USER LED 亮起来了。登录服务器将 api.json 修改为 ​​​"led": false​​,此时终端打印“Light OFF”,并且 LED 灭。

# python led.py Light ONLight ONLight ONLight OFFLight OFF

嗯哈!这样,我们就实现了一个简单的物联网应用啦~

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python 用BeautifulSoup 解析Html
下一篇:大龄码农是如何把自己逼死的
相关文章

 发表评论

暂时没有评论,来抢沙发吧~