打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
树莓派采集RS485数据

树莓派采集RS485数据

bingo_2021 2016-06-29 20:31:40   26305   收藏 30

文章标签: python 嵌入式 树莓派 RS485

版权

1. RS485介绍

RS485是有线传输串行数据的标,支持同时传输485总线上的多点数据。传输速率为10Mbps,传输距离可达50英尺。传输速率为100Kbps时,传输距离可达4000英尺。

RS485总线通常为4芯或2芯,现在普遍采用2芯总线。一条总线最多支持32个设备。总线之间还可以串接,从而支持成百以上的节点。

RS485和树莓派的连接:使用树莓派GPIO口与485相连

RS485是有线传输串行数据的标,支持同时传输485总线上的多点数据。传输速率为10Mbps,传输距离可达50英尺。传输速率为100Kbps时,传输距离可达4000英尺。

RS485总线通常为4芯或2芯,现在普遍采用2芯总线。一条总线最多支持32个设备。总线之间还可以串接,从而支持成百以上的节点。

RS485和树莓派的连接:使用树莓派GPIO口与485相连

配置 

$ sudo apt-get update 

$ sudo apt-get install python-pip 

$ sudo pip install wiringpi 

Use pip to install WiringPi (WiringPi is designed for raspberry pi to behave similarly to that of the wiring library under Arduino. After this library is installed, c or shell or python can use the function to configure and control GPIOs directly. 

$ sudo apt-get install python-serial 

Installed the associated library files of serial ports. 

$ sudo apt-get install python-rpi.gpio

测试 

Test whether the GPIO library and the serial library is installed or not: 

$ python 

$ import RPi.GPIO #注意RPi.PGIO中i是小写 

$ import serial 

If there is no error , then the two libraries are installed correctly. 

We need to configure file '/boot/cmdline.txt’ to remove the kernel booting information and debug message: 

$ sudo nano /boot/cmdline.txt

You can see the following information: 

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Remove “console=ttyAMA0,115200 kgdboc=ttyAMA0,115200″, 

so that the information becomes: 

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Disable log in from the serial port: 

$ sudo nano /etc/inittab 

comment out ”T0: 23: respawn:/sbin/getty-L ttyAMA0 115200 vt100″

Restart Raspberry Pi: 

$ sudo reboot 

Now you can use /dev/ttyAMA0 like the regular COM port.

We need to configure file '/boot/cmdline.txt’ to remove the kernel booting information and debug message: 

$ sudo nano /boot/cmdline.txt

You can see the following information: 

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Remove “console=ttyAMA0,115200 kgdboc=ttyAMA0,115200″, 

so that the information becomes: 

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Disable log in from the serial port: 

$ sudo nano /etc/inittab 

comment out ”T0: 23: respawn:/sbin/getty-L ttyAMA0 115200 vt100″

Restart Raspberry Pi: 

$ sudo reboot 

Now you can use /dev/ttyAMA0 like the regular COM port.


2. 测试代码


Test code(serial_test.py) :

import serial 

port = “/dev/ttyAMA0”

usart = serial.Serial(port,9600) 

usart.flushInput() 

print (“serial test: BaudRate = 9600”)

usart.write(“please enter the character:\r”) 

while True: 

 if( usart.inWaiting()>0 ) : 

  receive = usart.read(1) 

  print “receive:”,receive 

  usart.write(“send:”) 

  usart.write(receive) 

  usart.write(“\r”)

3. Wiring硬件管脚对应关系:

RS485 Shield 'A’ ——-> RS232-RS485 converter 'T/R +’ 

RS485 Shield 'B’ ——-> RS232-RS485 converter 'T/R-’ 

RS485 Shield 'GND’—> RS232-RS485 converter 'GND’ 

RS485-RS232的转换器有3个接口,A、B接地。其中A口是TR+,B口是TR-。 

管脚定义如下:

硬件连接图: 

4. 基于RS232转RS485的测试例程

PC机通过USB转232连232模块,232模块通过转换后接入到RS485 shield。PC机上启动超级终端,输入字符,在树莓派上能看到,就说明RS485 Shield能正确处理输入信号。 

Use X-CTU in our case, and set the baud rate to 9600 

After running serial_test.py, enter the characters in the X-CTU: 

————————————————

版权声明:本文为CSDN博主「bingo_2021」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/hu7850/article/details/51785713

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
树莓派3 串口使用 raspberry pi 3B+ uart boot overlay(最全树莓派串口使用)
树莓派串口配置
用Python让Raspberry Pi“动”起来
Raspberry Pi
树莓派忘记密码了?四步重设密码 | 树莓派实验室
树莓派 RS485 CAN HAT模块使用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服