环境
Qemu: 2.8.0
开发板:vexpress-ca9
概述
前面的博文已经使我们的虚拟开发板具备了访问外网的目的,离物联网越来越近了。要玩物联网,
Yeelink不得不说,它提供了云平台,可以将设备的数据上传到云端,也可以联网获得云端的数据,我们可以通过手机客户端或在网页端查看或修改,从而达到用手机客户端跟嵌入式设备通信的目的。
下面我们实现一个非常简单的功能: 添加一个虚拟开关,通过Yeelink的手机客户端或在网页端可以查看和修改这个开端的状态,而我们的板子会每隔2s联网读取一次这个虚拟开关的状态,最后板子根据开关的状态打印不同的提示。
正文
一、首先登陆Yeelink官网,手动添加一个device,然后在该device下面再创建一个sensor用来代表虚拟开关。
二、为Python添加requests模块
Requests 是用Python语言编写,基于urllib,采用Apache2 Licensed开源协议的HTTP库。它比urllib更加方便,可以节约我们大量的工作,完全满足HTTP测试需求。
1、下载requests模块
下载地址:
https://pypi.python.org/pypi/requests/2.3.0 或
requests-2.3.0.tar.gz
解压后:
$ls HISTORY.rst NOTICE requests/ setup.cfg LICENSE PKG-INFO requests.egg-info/ setup.py* MANIFEST.in README.rst requirements.txt test_requests.py*
其中的requests既可以用于Python2也可以用于Python3,然后将这个requests目录拷贝到对应Python的site-packages下面。
在导入requests模块的时候,会提示找不到zlib模块。
2、重新编译Python,支持zlib
下载zlib:
http://www.zlib.net/zlib-1.2.11.tar.gz 或
zlib-1.2.11.tar.gz
- 编译zlib:
1 #!/bin/bash 2 3 export CC=arm-none-linux-gnueabi-gcc 4 5 ../zlib-1.2.11/configure \ 6 --prefix=`pwd`
修改Makefile,修改AR和RANLIB如下:
AR=arm-none-linux-gnueabi-ar RANLIB=arm-none-linux-gnueabi-ranlib
然后执行make && make install,
安装完成之后不要忘了把lib下的so和include下的头文件拷贝到板子上。
- 编译Python3:
1 #!/bin/bash 2 3 ../Python-3.6.0/configure \ 4 --host=arm-none-linux-gnueabi \ 5 --build=armv7 \ 6 --prefix=`pwd` \ 7 --enable-ipv6 \ 8 --enable-shared \ 9 ac_cv_file__dev_ptmx="yes" \ 10 ac_cv_file__dev_ptc="no" \ 11 LDFLAGS="-L/home/pengdonglin/disk_ext/Third_Part/SQlite3/aarch32/lib \ 12 -L/home/pengdonglin/disk_ext/Third_Part/Readline/aarch32/lib \ 13 -L/home/pengdonglin/disk_ext/Third_Part/Termcap/aarch32/lib \ 14 -L/home/pengdonglin/disk_ext/Third_Part/Zlib/aarch32/lib"\ 15 CPPFLAGS="-I/home/pengdonglin/disk_ext/Third_Part/SQlite3/aarch32/include \ 16 -I/home/pengdonglin/disk_ext/Third_Part/Readline/aarch32/