乐联网DTU 教程3 :概述用python+Openwrt DIY DTU 连接乐联网

字数 891阅读 1656

标签: DTU Openwrt


基本准备

安装python 2.7+
安装python pip (非必需,这样后面安装py 模块可以简单一点)

获取python代码

其实就是一个简单的tcp2serial 代码,感谢@瘦网虫
python DTU github 代码
注意根据实际情况改动如下内容

根据自己乐联网实际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 设备通信一下看看,如下图

串口通信正常
串口通信正常

保证数据串口是可以通信的再运行python,python运行正常正常截图如下

openwrt 路由器
openwrt 路由器

然后就可以在账户里面跟modbus设备通信了,如下图

openwrt 路由器
openwrt 路由器

好的,这样一个python DTU就完成了,是不是用电脑很不爽,那就接着往下看。我们来用Openwrt 跑python 当DTU 来用。

openwrt 做DTU

如果用PC 跑python 来当DTU更多的是一种示范效果的话,用Openwrt 跑python 做DTU绝对是有实际意义的。
先看一下Openwrt 路由器外观,最右边是一个小米手环,用来比较体积的(没找到一元硬币)


openwrt 路由器
openwrt 路由器

为啥用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纯净系统

熟悉OP,安装python

熟悉方法:自己研究
安装python 方法:
OP安装python
注意不同的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

推荐阅读更多精彩内容