温度传感器WSTP11A-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/14/WSTP11A_Code.7z
  3. sudo 7z x WSTP11A_Code.7z
  4. sudo chmod 777 -R WSTP11A_Code
  5. cd WSTP11A_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 WSTP11A_get_addr(void)
  3. #将指点地址的设备修改到新地址
  4. uint8_t WSTP11A_set_addr(uint8_t o_addr, uint8_t n_addr)
  5. #获取指定地址的设备的数据信息
  6. float WSTP11A_get_temp(uint8_t addr)
  • python函数详解
  1. #通过字符队列获取16位CRC校验
  2. def crc16Add(self,read):
  3. #当只有一个设备连接上RS485总线,获取当前设备地址
  4. def get_addr(self):
  5. #获取指定地址的设备的数据信息
  6. def get_temp(self,addr):
  7. #将指点地址的设备修改到新地址
  8. def set_addr(self,o_addr,s_addr):
TAG: UGV Beast越野【履带】AI机器人小车OpenCV云台适用于Jetson Orin 树莓派5外壳 树莓派4 11.9寸电脑副屏 树莓派3.5寸LCD电阻触摸显示屏ST7796 320x480 高速60fps适用于Arduino/Pico2/ESP32/RP2040/RP2350开发板 Milk-V Duo网口 UART转以太网 树莓派5 Active Cooler 激光雷达 带拾音功能 斑梨电子 ESP32 树莓派5 PCIE转M.2 NVME双SSD固态硬盘2CH-M.2-HAT+扩展板Pi5 RS485转RJ45 移远SIMCom EG25-G GNSS全球定位4G通讯模块LTE Cat 4 PCI Express Mini Card BPI-M4 Zero教程 Arducam AF Camera 树莓派RP2040 Camera ESP32-S3开发板 1.46寸圆形LCD显示屏412x412 触摸屏 板载加速度与陀螺仪QMI8658传感器/SD卡槽/电池接口/麦克风/RTC/MP3喇叭音频 适用于Arduino 树莓派Pico 2 RP2350 2.8寸LCD开发板电容显示触摸屏 QMI8658 6轴/ PCM5101音频解码 /SD /RTC PCF85063