辰匠科技IOT:modbus工业协议物联网方案

Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式,大多用在各型号PLC、各种传感器控制。主要分为以太网接口用的modbus TCP 和RS485串口通信用的modbus RTU。

结合辰匠IOT方案利用树莓派可以做到:

1、利用网口或WIFI的以太网接口来联接modbus TCP的设备。

2、对于modbus RTU可以用USB转RS485转换器来联接。

3、树莓派也可以作为modbus服务器将其他信息比如开关量、温度等转换成modbus协议。

等其他modbus相关功能。

上次讲到温度物联用的是DHT11和DS18B20的方案,这里讲是用热电偶或热电阻+智能巡检仪的办法采集温度。

热电偶或热电阻是将温度转换成了电信号。

智能巡检仪是将电信号转换成modbus的数据。

用一个案例讲解:利用树莓派的GPIO采集了开关量和温度还有WEB用户端输入的,现将这些信息转换modbu协议信息,在将这些信息发布到WEB用户端。

利用python的modbus_tk模块
加载:import modbus_tk,启动modbus的主从端,这里用modbu TCP。

地址位40001:就是手机端输入的值888;

地址位40002:就是树莓派GPIO的一个开关量,1或0可代表开或关;

地址位40003和地址位40004:就是DHT采集的湿度和温度;

地址位40005和地址位40006:就是两个DS18B20采集的温度,这里讲数据乘以1000将三位小数转成整数。

在本地网络可用电脑联接树莓派IP查看其mobus数据情况。

树莓派内部利用python运行modbus工作流程原理如下:

辰匠科技愿与大家一同合作,一起玩转物联网!

辰匠科技IOT物联网方案:基于树莓派GPIO的温度数据采集

温度(temperature)是表示物体冷热程度的物理量,微观上来讲是物体分子热运动的剧烈程度。

温度传感器(temperature transducer)是指能感受温度并转换成可用输出信号的传感器。温度传感器是温度测量仪表的核心部分,品种繁多。按测量方式可分为接触式和非接触式两大类,按照传感器材料及电子元件特性分为热电阻和热电偶两类。

这里先介绍可直接利用树莓派GPIO端口的温度传感器:DHT11和DS18B20。其他的温度传感器PT100温度传感器WZP-PT100热电偶/阻 PT100铂电阻+智能巡检仪的温度数据采集方案将会在之后的文章关于modbus的部分做介绍。

(一)DHT11是一款有已校准数字信号输出的温湿度传感器。其精度湿度+-5%RH, 温度+-2℃,量程湿度20-90%RH, 温度0~50℃。其单串口进行通讯输出温湿度信息。

将DHT传感器引脚接入树莓派GPIO接口,方案的原理其实是由树莓派GPIO发出脉冲信号给DHT11传感器,DHT11再发出温湿度信息的脉冲给树莓派GPIO接口。

这里就不介绍如何用python编程如何发脉冲通信,这里推荐使用python的模块Adafruit-DHT。

安装命令:sudo pip3 install Adafruit_DHT。

python编程模块引用一般是:import Adafruit_DHT。

这样就可以将DHT11传感器的温度信息转变成程序里的变量来利用

详细内容可参见pypi。

(二)DS18B20是常用的数字温度传感器,其输出的是数字信号,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。

将模块封装后可以测空气温度或是水温。

DS18B20与树莓派GPIO端口相接,其实与DHT11用法相似。

这里就不介绍如何用python编程如何发脉冲通信,这里推荐使用python的模块ds18b20pi。

安装命令:sudo pip3 install ds18b20pi。

python编程模块引用一般是:import ds18b20pi。

这样就可以将DS18B20传感器的温度信息转变成程序里的变量来利用

详细内容可参见pypi。

特别提示:DS18B20传感器是可以并联的,即一个GPIO端口可以采集多个DS18B20传感器数据的,在python程序里会以字典形式存在。

温度采集方案搞定后,将数据采集传送到云服务器的数据库里,接下来就可制作人机用户界面了,在手机或电脑等终端查看采集到的温度数据。

之后还可以对数据做可视化分析,这里建议按每分钟对采集的数据做统计分析,每分钟会采集到多个数值,记录每分钟的初始值、最终值、最大值、最小值用K线图表示。

DHT11温湿度曲线

DS18B20温度曲线

通过数据查看,会发现DS18B20比DHT11的稳定性要好、数据正确率高。

因此建议:

比如要利用温度做设备控制,精度要求高的场景下建议用DS18B20。

如果需要既要测温又要测湿度而且成本要再低些,不需要做其他设备关联控制仅是观察读数的建议使用DHT11。

辰匠科技愿与大家一同合作,一起玩转物联网!

辰匠科技IOT设备开关量场景物联网方案详解

开关量是指非连续性信号的采集和输出,包括遥控采集和遥控输出。它有1和0两种状态,这是数字电路中的开关性质,而电力上是指电路的开和关或者说是触点的接通和断开。“开”和“关”是电器最基本、最典型的功能。一般开关量装置通过内部继电器实现开关量的输出。

设备开关量的载体有开关、按钮、指示灯、继电器、接触器、限位或其他开关量传感器等电子元件。设备开关量对应的内容会是运行启停状态、报警或故障或保护状态、零件加工或停止状态等。

辰匠科技开关量场景IOT物联网系统案例:

树莓派的GPIO(英语:General-purpose input/output)通用型之输入输出的简称,其接脚可以供使用者由程控自由使用,PIN脚依现实考量可作为通用输入(GPI)或通用输出(GPO)或通用输入与输出(GPIO)。

树莓派终端输入命令gpio readall,可详细查看GPIO模块引脚说明。

在用python编程时可用RPi.GPIO模块,树莓派系统一般情况下已安装。

安装命令:sudo apt-get install python3-rpi.gpio

python编程模块引用一般是:import RPi.GPIO as GPIO。

不单是简单开关量,RPI.GPIO 模块的脉宽调制(PWM)功能,控制脉冲的频率和占空比,以PWM控制灯输出为例:低频时可控制闪烁间隔,高频时可控制输出亮度。

应用上可利用手机或电脑做监控和远程控制:在WEB页面里的虚拟开关做远程开关控制,在WEB页面里的信息查看设备的开关量实时信息和历史记录。

进一步可对采集到的信息做数据分析和数据图表可视化为之后情况的做优化措施和提供依据。以工业生产场景为例,设备开关或加工次数数据时间上的趋势、多设备数据比较、停机或故障原因的分析等,提升工厂的精益管理水平。

辰匠科技愿与大家一同合作,一起玩转物联网!

尝鲜使用树莓派新系统 Raspbian Buster

树莓派新的版本号是 Buster,来自皮克斯《玩具总动员》电影中狗的名字。https://www.raspberrypi.org/downloads/raspbian/
可下载到系统镜像,

之前介绍过用NOOBS安装系统,
这里介绍用Win32DiskImager磁盘映象工具烧录系统,
建议使用8G以上TF卡。
点击右边的蓝色文件夹图标,然后选中刚才解压出来的Raspbian映像文件。
确保最右边设备中的盘符为你读卡器的盘符。
打开映像文件以后,点写入,然后点一下确定操作。
整个写入过程需要一些时间来完成。

放入系统TF卡,启动树莓派进入系统看到新版本的界面。
开机设置时,时区选择中国上海时,系统重启后发现已经是汉化版。
特别注意的是安装mysql数据库时,
命令已不是apt install mysql-server,
而是apt install mariadb-server,
配置mysql还是/etc/mysql,
数据库重启命令还是service mysql restart。

树莓派系统新Buster,之后还有的新发现会陆续发出,大家可以发布共享。

 

LAMP(Web应用软件组合)

LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写:
虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的,但由于它们的廉价和普遍,这个组合开始流行(大多数Linux发行版本捆绑了这些软件)。当一起使用的时候,它们表现的像一个具有活力的“解决方案包”(Solution Packages)。其他的方案包有苹果WebObjects(最初是应用服务器),Java/J2EE微软.NET架构。
“LAMP包”的脚本组件中包括了CGIweb接口,它在90年代初期变得流行。这个技术允许网页浏览器的用户在服务器上执行一个程序,并且和接受静态的内容一样接受动态的内容。程序员使用脚本语言来创建这些程序因为它们能很容易有效的操作文本流,甚至当这些文本流并非源自程序自身时也是。正是由于这个原因系统设计者经常称这些脚本语言为胶水语言
Michael Kunze在一篇为德国计算机杂志《c’t》(1998,第12期,230页)而写的文章中使用了缩略语“LAMP”。这篇文章意在展示一系列的自由软件成为了商业包的替换物。由于IT世界众所周知的对缩写的爱好,Kunze提出“LAMP”这一容易被市场接受的术语来普及自由软件的使用。
以linux的Ubuntu安装LAMP为例:
1、安装Apache服务
sudo apt-get install apache2
然后按照提示即完成apahce的安装了。打开浏览器:http://127.0.0.1,看到 It works 表明apache安装成功
2、安装php
sudo apt-get install php
3、安装mysql
sudo apt-get install mysql-server

4、建议安装phpmyadmin,管理mysql数据库
sudo apt-get install phpmyadmin