RPi Zero Relay
| ||
Overview
Industrial 6-Channel Relay Module For Raspberry Pi Zero, RS485/CAN Bus, Power Supply Isolation, Photocoupler Isolation.
Features
- RS485 half-duplex communication: using SP3485, UART control, auto RX/TX switch.
- CAN half-duplex communication: using MCP2515 + SN65HVD230 solution, SPI control.
- Onboard unibody power supply isolation, provides stable isolated voltage, and needs no extra power supply for the isolated terminal.
- Onboard photocoupler isolation, prevents interference from external high-voltage circuit connected to the relay.
- Onboard TVS (Transient Voltage Suppressor), effectively suppresses surge voltage and transient spike voltage in the circuit, lightningproof & anti-electrostatic.
- Onboard resettable fuses and protection diodes, ensuring current/voltage stable output, preventing over current/voltage, and better shock-resistance performance.
- High-quality relay, contact rating: ≤10A 250V AC or ≤10A 30V DC.
- ABS protection enclosure with rail-mount support, easy to install, safe to use.
Specifications
- Supply voltage: 7V~36V
- CAN control chip: MCP2515
- CAN transceiver: SN65HVD230
- 485 transceiver: SP3485
- Product size: 123mm x 87.92mm
- Fixed hole diameter: 3.5mm
Pinouts
- CAN bus
PIN | Raspberry Pi (BCM) | Description |
---|---|---|
GND | GND | Ground |
SCK | SCK | SPI clock input |
MOSI | MOSI | SPI data input |
MISO | MISP | SPI Data output |
CS | CE0 | Data/Command Selection |
INT | 25 | Interrupt output |
- RS485 bus
PIN | Raspberry Pi (BCM) | Description |
---|---|---|
GND | GND | Ground |
RXD | RXD | UART receive |
TXD | TXD | UART transimit |
- Relay interfaces
PIN | Raspberry Pi (BCM) | Description |
---|---|---|
GND | GND | Ground |
IN_CH1 | GPIO5 | Relay Channel 1 |
IN_CH2 | GPIO6 | Relay Channel 2 |
IN_CH3 | GPIO13 | Relay Channel 3 |
IN_CH4 | GPIO16 | Relay Channel 4 |
IN_CH5 | GPIO19 | Relay Channel 5 |
IN_CH6 | GPIO20 | Relay Channel 6 |
Install Library
If you use bookworm system, only the lgpio library is available, bcm2835 and wiringPi libarary cannot be installed or used. Please note that the python library does not need to install, you can directly run the demo.
BCM2835
#Open the Raspberry Pi terminal and run the following command wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz tar zxvf bcm2835-1.71.tar.gz cd bcm2835-1.71/ sudo ./configure && sudo make && sudo make check && sudo make install # For more, you can refer to the official website at: http://www.airspayce.com/mikem/bcm2835/
WiringPi
#Open the Raspberry Pi terminal and run the following command cd sudo apt-get install wiringpi #For Raspberry Pi systems after May 2019 (earlier than that can be executed without), an upgrade may be required: wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-latest.deb gpio -v # Run gpio -v and version 2.52 will appear, if it doesn't it means there was an installation error # Bullseye branch system using the following command: git clone https://github.com/WiringPi/WiringPi cd WiringPi . /build gpio -v # Run gpio -v and version 2.70 will appear, if it doesn't it means there was an installation error
lgpio
wget https://github.com/joan2937/lg/archive/master.zip unzip master.zip cd lg-master sudo make install #for more details, you can refer to https://github.com/gpiozero/lg
- Python
sudo apt-get update sudo apt-get install python-serial sudo pip install python-can
Download Examples
Open a terminal and run the following commands to download the demo codes:
sudo apt-get install p7zip-full wget https://files.waveshare.com/upload/2/2f/RPi_Zero_Relay_Code.7z 7z x RPi_Zero_Relay_Code.7z -r -o./RPi_Zero_Relay_Code sudo chmod 777 -R RPi_Zero_Relay_Code/
CAN Bus
The sample demo uses two RPi-Zero-Relay modules. Python and C language demos are provided.
Configuration
- Modify the config.txt file:
sudo nano /boot/config.txt
- Add the following lines to the config.txt file and save:
dtparam=spi=on dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25,spimaxfrequency=3000000
- Reboot.
sudo reboot
- Check if the driver is initialized normally.
dmesg | grep -i '\(can\|spi\)'
- The result should be like the picture:
- If the MCP2515 driver is not initialized normally you need to reboot and check if the devices are connected properly (H to H and L to L).
C Examples
- Run the receive example:
cd ~/RPi_Zero_Relay_Code/CAN/wiringPi/receive/ make clean make sudo ./can_receive
- Run the Send examples:
cd RPi_Zero_Relay_Code/CAN/wiringPi/send/ make clean make sudo ./can_send
Python examples
- Open a terminal and run the commands:
cd RPi_Zero_Relay_Code/CAN/python/ #For receiving: sudo python can_reveive.py #For sending: sudo python can_send.py
Connect to other CAN device
If you need to connect the RPi Zero Relay to other CAN devices, please note that:
- Please check the connection, it should be H to H and L to L.
- Make sure that the baud rate of both sides is the same, the default baud rate of examples is 100K.
- Check if the CAN ID of both sides is the same.
- If data is always lost while transmitting, please decrease the baud rate and test it again.
RS485 Interface
The sample demo uses two RPi-Zero-Relay modules. Python and C language demos are provided.
Configuration
- Open a terminal and run the command.
sudo raspi-config
- Choose Interfacing Options -> Serial -> No -> Yes.
- Disable the login shell function and enable the hardware serial port.
- Reboot
sudo reboot
- Connect the device, A to A and B to B.
C examples
- Run the receive example:
cd RPi_Zero_Relay_Code/485/WiringPi/send make clean make sudo ./485_receive
- Run the Send example:
cd RPi_Zero_Relay_Code/485/WiringPi/send make clean make sudo ./485_send
- Input data and send:
- The receiving terminal receives and prints:
Python examples
Open a terminal and run the commands:
cd RPi_Zero_Relay_Code/485/python/ #Receive example: sudo python receive.py #Send example: sudo python send.py
Troubleshooting
If the RS485 cannot work normally, please check:
- Please check if you have disabled the login shell function.
- Please check the connection, it should be A to A and B to B.
- Please test with USB to RS485, and make sure that all the settings are correct.
Resource
Support
Technical Support
If you need technical support or have any feedback/review, please click the Submit Now button to submit a ticket, Our support team will check and reply to you within 1 to 2 working days. Please be patient as we make every effort to help you to resolve the issue.
Working Time: 9 AM - 6 PM GMT+8 (Monday to Friday)