压力变送器WSSP08A-RPI使用教程

使用说明

本例程使用树莓派双通道隔离型RS485扩展板(需要自行购买)为例,详细的使用方法参考2-CH_RS485_HAT_WIKI

硬件连接

赫斯曼接口连接方式
1接V+(12V~36V)
2接A(Change 2)
3接V-(GND)
4(Gnd.png)接B(Change 2)


功能引脚树莓派接口(BCM)描述
VCC5V3.3V/5V电源正
GNDGND电源地
SCLKP21(SPI1 SCLK)SPI时钟输入
MOSIP20(SPI1 MOSI)SPI数据输入
MISOP19(SPI1 MISO)SPI数据输出
CSP18(SPI1 CS)SPI片选信号
IRQP24中断输出
EN1P27通道1(Channel 1)收发使能: 高电平发送使能,低电平接收使能
EN2P22通道2(Channel 2)收发使能: 高电平发送使能,低电平接收使能

添加驱动

  • 在终端执行:
  1. sudo nano /boot/config.txt
  2. #加入如下,int_pin根据实际焊接方式设置:
  3. dtoverlay=sc16is752-spi1,int_pin=24
  4. #重启设备
  5. sudo reboot

重启后,SC16IS752的驱动会加载到系统内核中,此时可以运行ls /dev查看一下 将会多出如下设备: 


在2020-05-27的树莓派系统中gpiochip3没有了变成了gpiochip2

安装库

  • 安装wiringPi
  1. sudo apt-get install wiringpi
  2. #对于树莓派4B可能需要进行升级;
  3. cd /tmp
  4. wget https://project-downloads.drogon.net/wiringpi-latest.deb
  5. sudo dpkg -i wiringpi-latest.deb
  6. gpio -v
  7. # 运行 gpio -v 会出现2.52版本,如果没有出现说明安装出错
  • 安装python2库
  1. sudo apt-get update
  2. sudo apt-get install python-pip
  3. sudo pip install RPi.GPIO
  4. sudo apt-get install python-serial
  5. sudo apt-get install python-crcmod
  • 安装python3库
  1. sudo apt-get update
  2. sudo apt-get install python3-pip
  3. sudo pip3 install RPi.GPIO
  4. sudo apt-get install python3-serial
  5. sudo apt-get install python3-crcmod

测试

  • 下载并运行测试例程
  1. sudo apt-get install p7zip-full
  2. sudo wget https://www.waveshare.net/w/upload/1/1a/WSSP08A_Code.7z
  3. sudo 7z x WSSP08A_Code.7z
  4. sudo chmod 777 -R WSSP08A_Code
  5. cd WSSP08A_Code/
  • C程序
  1. cd c
  2. make clean
  3. make
  4. sudo ./main
  • python程序
  1. #python2
  2. cd python
  3. cd examples
  4. sudo python main.py
  5. #python3
  6. cd python
  7. cd examples
  8. sudo python3 main.py

程序详解

  1. 示例程序运行在只有一个变送器连接上时,通过获取变送器地址、读取温度数据、设置地址加一


  • C语言函数详解
  1. #当只有一个设备连接上RS485总线,获取当前设备地址
  2. uint8_t WSSP08A_get_addr(void)
  3. #将指点地址的设备修改到新地址
  4. uint8_t WSSP08A_set_addr(uint8_t o_addr, uint8_t n_addr)
  5. #获取指定地址的设备的数据信息
  6. float WSSP08A_get_pressure(uint8_t addr)
  • python函数详解
  1. #通过字符队列获取16位CRC校验
  2. def crc16Add(self,read):
  3. #当只有一个设备连接上RS485总线,获取当前设备地址
  4. def get_addr(self):
  5. #获取指定地址的设备的数据信息
  6. def get_press(self,addr):
  7. #将指点地址的设备修改到新地址
  8. def set_addr(self,o_addr,s_addr):
TAG: USB转nRF24L01 ESP32-H2 BLE RoArm-M3-S 手柄控制 ESP32 C3 Zero 树莓派PICO 热成像摄像头 树莓派Pico 2 RP2350 Core A开发板RP2350A ESP32-S3N8R8 7寸电容触摸屏开发板800×480WiFi蓝牙CAN传感器RS485 树莓派CM4计算模块底板 多种接口扩展板 仅CM4大小教程 PWM数字舵机电机35/20KG.CM大扭矩可180° WP5320 WP5335 树莓派3.5寸LCD电阻触摸显示屏ST7796 320x480 高速60fps适用于Arduino/Pico2/ESP32/RP2040/RP2350开发板 大扭矩舵机 0.96寸RGB OLED JETSON-NANO UPS 树莓派10.1寸HMI工业DSI显示屏LCD触摸电脑1280x800支持4B/5带摄像头 RP2040开发板 Flash固件的烧录与擦除 树莓派5 27W电源 JETSON NANO MINI底板 树莓派5 PCIe转千兆以太网3路USB3.2 HUB Gen1扩展板