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

标签: 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 设备通信一下看看,如下图

乐联网DTU 教程3 :概述用python+Openwrt DIY DTU 连接乐联网_第1张图片
串口通信正常

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

乐联网DTU 教程3 :概述用python+Openwrt DIY DTU 连接乐联网_第2张图片
openwrt 路由器

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

乐联网DTU 教程3 :概述用python+Openwrt DIY DTU 连接乐联网_第3张图片
openwrt 路由器

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

openwrt 做DTU

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


乐联网DTU 教程3 :概述用python+Openwrt DIY DTU 连接乐联网_第4张图片
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

你可能感兴趣的:(乐联网DTU 教程3 :概述用python+Openwrt DIY DTU 连接乐联网)