🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
标签: DTU Openwrt --- ## 基本准备 安装python 2.7+ 安装python pip (非必需,这样后面安装py 模块可以简单一点) ## 获取python代码 其实就是一个简单的tcp2serial 代码,感谢@瘦网虫 [python DTU github 代码][1] 注意根据实际情况改动如下内容 ``` 根据自己乐联网实际usrkey 和网关号 gatewayNo = 'xxx'#gateway No. in lewei50 userKey = 'your_userkey_in_lewei50' ``` 根据实际串口参数,第一种是linux 下面的,第二种是windows下面的,根据实际情况二选一,serial_port=0 代表windows 下面的com1。 ``` #serial_port="/dev/ttyUSB0" serial_port=0#serial_port = 8 means serial id 9 in windows ``` ## 连上设备,开始看数据吧 演示python 做dtu 最简单的方式是用PC 作为硬件,然后连上设备,直接执行python 代码,就可以了。 可能出的报错包括 1. python 版本3.0以上print 需要括号 ,这个代码是针对2.7的,所以找一个2.7是比较简单的方法 2. python 模块没有装全,代码需要的模块没有,自己安装相应的模块就好 正常正常情况下可以先通过串口软件跟modbus RTU 设备通信一下看看,如下图 ![串口通信正常][2] 保证数据串口是可以通信的再运行python,python运行正常截图如下 ![openwrt 路由器][6] 然后就可以在账户里面跟modbus设备通信了,如下图 ![openwrt 路由器][7] 好的,这样一个python DTU就完成了,是不是用电脑很不爽,那就接着往下看。我们来用Openwrt 跑python 当DTU 来用。 ## openwrt 做DTU 如果用PC 跑python 来当DTU更多的是一种示范效果的话,用Openwrt 跑python 做DTU绝对是有实际意义的。 先看一下Openwrt 路由器外观,最右边是一个小米手环,用来比较体积的(没找到一元硬币) ![openwrt 路由器][3] ### 为啥用Openwrt 路由器 简单说一下用OP(openwrt 路由器简称,后面都用op表示了)的好处 1. 不需要自己定制硬件,TB一堆一堆的,支持python,用来验证原型最好不过了 2. 路由器系统支持多上行模式,一个OP 可以同时做wifi ethernet 4g(需要usb hub) DTU 用 ### 选择什么样的OP 路由器 1. 16M flash,外放USB接口的 2. 推荐703 或者GL-net 系列硬件 推荐TB一家:[记得要GL-net双网口加亚克力外壳,FLASH 16M,OP纯净系统][4] ### 熟悉OP,安装python 熟悉方法:自己研究 安装python 方法: [OP安装python][5] 注意不同的OP版本有不同的安装命令,如果是最新的CC版本,应该是如下命令 ``` opkg update opkg install python-light ``` ### 安装python pip 还是为了安装python module 方便 opkg install python-pip ### 安装USB串口桥接设备驱动 因为串口需要usb桥接用,根据用到的桥接是CP2102,340,FTDI选择不同的驱动。我手里的是2102,所以安装驱动就是这个命令。 opkg install kmod-usb-serial-cp210x ### 把python 代码放到Openwrt 里面 找一个scp 客户端把python代码下进去 然后 安装模块,解决报错,大功告成.... ---------- 后面非必须内容 ### 给OP添加一个守护进程Daemon.sh,否则py 执行出异常就会退出了 `echo "hello shell" ps |grep lewei|grep -v grep if [ $? -ne 0 ] then echo "process is not exist" python lewei_tcp2serial.py& else echo "process is on" fi` OP添加一个定时任务,每分钟执行一次守护进程 chmod 777 Daemon.sh ./Daemon.sh 添加定时任务 */1 * * * * ./Daemon.sh [1]: https://github.com/lewei50/DTU/blob/master/python/lewei_tcp2serial.py [2]: http://doc-resources.lewei50.com/lewei50/img/DTU-laoliu-20170509-1.jpg [3]: http://doc-resources.lewei50.com/lewei50/img/DTU-laoliu-20170509-2.jpg [4]: https://item.taobao.com/item.htm?spm=a1z09.2.0.0.azdWz8&id=45413712684&_u=91jno1fi6c83 [5]: https://wiki.openwrt.org/doc/software/python [6]: http://doc-resources.lewei50.com/lewei50/img/DTU-laoliu-20170509-3.jpg [7]: http://doc-resources.lewei50.com/lewei50/img/DTU-laoliu-20170509-4.jpg