Difference between revisions of "PI4B Sensor Kit"
Line 1: | Line 1: | ||
{{infobox item| | {{infobox item| | ||
− | |img=[[File:PI4B-Sensor-Kit-1.jpg|400px|link=https://www.waveshare.com/pi4b-sensor-kit.htm | Raspeberry Pi 4 Model B Sensor Kit | + | |img=[[File:PI4B-Sensor-Kit-1.jpg|400px|{{Amazon_nolink|default={{#urlget:amazon|default}}|url=link=https://www.waveshare.com/pi4b-sensor-kit.htm}} | Raspeberry Pi 4 Model B Sensor Kit]] |
|caption=Raspberry Pi 4 Model B Sensor Kit, ARPI600 Adapter Board, 13x Popular Sensors | |caption=Raspberry Pi 4 Model B Sensor Kit, ARPI600 Adapter Board, 13x Popular Sensors | ||
|brand=Raspberry Pi | |brand=Raspberry Pi |
Revision as of 04:03, 12 May 2022
| ||
Instruction
Raspberry Pi 4 Model B, the completely upgraded, re-engineered model of the Pi family. It has a more powerful processor, faster networking, supports dual 4K output, and provides different choice of RAM.
Features
- BCM2711B0 (ARM Cortex-A72)
- 64-bit 1.5GHz quad-core
- Choice of RAM
- PI4B-1GB: 1GB
- PI4B-2GB: 2GB
- PI4B-4GB: 4GB
- Gigabit Ethernet
- 802.11ac 2.4GHz/5GHz dual-band NIC
- Bluetooth 5.0, BLE
- USB 3.0 x 2, USB 2.0 x 2
- micro HDMI x 2 (supports 4Kp60)
- PoE header (supports PoE HAT)
- MicroSD slot
- 3.5 mm audio jack
- 40PIN GPIO header
- CSI camera interface
- DSI display interface
- USB Type C power supply (5V/3A or above)
ARPI600
Configure Raspberry Pi
Enable I2C Interface
Open a terminal and run the following commands:
sudo raspi-config Choose Interfacing Options -> I2C -> Yes.
Reboot Raspberry Pi:
sudo reboot
Enable SPI interface
- Open the terminal, and use the command to enter the configuration page.
sudo raspi-config Choose Interfacing Options -> SPI -> Yes to enable the SPI interface
sudo reboot
Make sure that the SPI is not occupied by other devices, you can check in the middle of the /boot/config .txt.
- Check /boot/config.txt, and you can see 'dtparam=spi=on' was written in.
- To make sure SPI is not occupied, it is recommended to close other drivers' coverage. You can use ls /dev/spi* to check whether SPI is occupied. If the terminal outputs /dev/spidev0.1 and /dev/spidev0.1, SPI is not occupied.
Enable UART
Execute the following command to enter the Raspberry Pi configuration:
sudo raspi-config
Choose Interfacing Options -> Serial -> No -> Yes:
You need to disable the login shell and enable the srial port hardware:
Reboot Raspberry Pi:
sudo reboot
Open the /boot/config.txt file and find the following configuration statement to enable the serial port, if not, add it at the end of the file:
enable_uart=1
Reboot to take effect.
Install libraries
- Install BCM2835 libraries:
#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/
- Install WiringPi libraries:
#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
- python
sudo apt-get updata sudo apt-get install ttf-wqy-zenhei sudo apt-get install python-pip sudo pip install RPi.GPIO sudo pip install spidev sudo apt-get install python-smbus sudo apt-get install python-serial sudo pip install rpi_ws281x
Download Demo codes
sudo apt-get install p7zip wget https://files.waveshare.com/upload/d/d6/ARPI600.tar.gz 7zr x ARPI600.tar.gz -r -o./ARPI600 sudo chmod 777 -R ARPI600 cd ARPI600/RaspberryPi/ARPI600_Code
Control Sensors by Serial Port
- Configure Serial Port
1) Open a terminal and run the following commands:
sudo nano /boot/cmdline.txt
Change the line below:
wc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
to:
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
Save and exit (Ctrl+X, Y)
2) Run the following command:
sudo nano /etc/inittab
Modify the line below:
#Spawn a getty on Raspberry Pi serial line T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
to:
#Spawn a getty on Raspberry Pi serial line #T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
Save and exit (Ctrl+X, Y)
3) Reboot Raspberry Pi:
sudo reboot
After rebooting, the hardware serial of Raspberry Pi is enabled and the login shell function is disabled. If you want to access Raspberry Pi via serial port, you need to reset all the settings and reboot.
- Print data via serial port
1) Users should configure the jumpers on board for enabling the serial port:
- Connect CP_RX to P_TX
- Connect CP_TX to P_RX
2)Run putty software on the host PC and configure:
- Serial line: Select the COM port according to the Device Manager.
- Speed: Set the baud rate to 9600.
- Connection type: Choose Serial.
3) Copy the program/Xbee/send the folder to Raspberry Pi and go into send folder, run the following commands:
sudo make sudo ./serialTest
The serial port will print data as below:
Set up a wireless network with 2 Xbee modules
Preparation
1) Two Xbee modules
2) Two ARPI600 modules
3) Two Raspberry Pi
- We divide them to A group and B group (XBee-A,ARPI600-A,XBee-B,ARPI600-B)
Install X-CRU tool
1) Install software/X-CTU V5.2.8.6.exe in host PC
2) Configure XBee mdoule
- Baud: 9600
- Data Bite: 8
- Parity: NONE
- Stop: 1
Test XBee in host PC
1) Connect XBee-A to ARPI600-A. Connect XBee-B to ARPI600-B.
2) Configure jumpers to enable the XBee:
- Connect XB_RX to CP_RX
- Connect CP_TX to XB_TX
3) Power on the Raspberry Pi
4) Click Test/Query button to check if the XBee module is connected successfully:
5) The module is connected normally if you get the following result:
Configure XBee-A
1) Click Modem Configuration Option, and click the Read button to read the parameter of XBee:
2) Select ZIBGEE ROUTER/END DEVICE AT from Function Set box:
3) Configure Networking parameter as below:
- ID: 234
- DH: 0
- DL: 0
4) Click the Write button to save the settings of XBee-A.
Configure XBee-B
1) Click Modem Configuration Option, and click the Read button to read the parameter of XBee.
2) Select ZIGBEE COORDINATOR AT from Function Set box:
3) Configure Networking parameter as below:
- ID: 234
- DH: 0
- DL: ffff
4) Click the Write button to save the settings of XBee-B.
5) After setting, run two X-CTU windows in the host PC and select the corresponding COM port in the PC Setting option, then you can test the point-to-point communication between two XBee modules.
6) In the terminal of X-CTU (XBee-A), input the data, and the data will be transmitted to XBee-B and printed in the terminal of X-CTU software (Bee-B), Blue is the data transmitted and Red is the data Received.
Wireless Communicating Between XBee Modules
Set up and configure XBee modules like the above guides first. Then we can configure Raspberry Pi for wireless communication.
1) Configure jumers of ARPI600:
- Connect XB_RX to P_TX
- Connect XB_TX to P_RX
2) Testing:
Run the following commands:
cd /Xbee/getdata sudo make sudo ./serialTest
Data will be printed as below:
Go into the send folder and run the following commands:
sudo make sudo ./serialTest
The receiver will printed the data received:
RTC
1) Connect the RTC JMPjumpers
2) Run the LXTerminal and input:
i2cdetect -y 1
3) The i2c address of PCF8563 should be printed.
4) Run the following commands in the LXTerminal terminal:
modprobei2c-dev echo pcf8563 0x51 > /sys/class/i2c-adapter/i2c-1/new_device hwclock -r#(Read the RTC time)
The time of PCF8563 is printed in LXTerminal, it may be different with system time
5) Run the following commands in LXTerminal:
hwclock -w #(Write the system time to PCF8563) hwclock -r #(Read the PCF8563 time) hwclock -s #(Synchronize the system time and RTC)
AD(Onboard TLC1543)
Configure A0 Pin
1) Install libraries (ignore if you have done)
2) Set REF voltage:
- Connect REF to 5V: the REF voltage of the AD chip is 5V (Default)
- Connect REF to 3V3: the REF voltage of the AD chip is 3.3V.
You can only choose one setting when configuring the REF voltage.
3) Copy the program/AD_TLC1543 folder to Raspberry Pi and go into it. Run the following commands
sudo make sudo ./tlc1543
4) The data sent from AD0 pin will be printed.
5) Connect the T_A0 pin to A0, then you can connect the A0 pin to any sensors for Analog signal reading:
Configure AD Pins
1) If you want to read the data of other AD pins, you can modify tlc1543.c file:
sudo nano tlc1543.c
Find the line:
re=ADCSelChannel(0);
Change 0 to other number of pin for testing other AD pins (for example: re=ADCSelChannel(1);
Save and exti (Ctrl+X, Y)
2)Run the following commands to test:
sudo make sudo ./tlc1543
Interface
Pinout
1) The Arduino compatible interface onboard is related to the GPIO of Raspberry:
Arduino Compatible Interface | Raspberry Pi IO |
D0 | P_RX |
D1 | P_TX |
D2 | P0 |
D3 | P1 |
D4 | P2 |
D5 | P3 |
D6 | P4 |
D7 | P5 |
D8 | P6 |
D9 | P7 |
D10 | CE0 |
D11 | MOSI |
D12 | MISO |
D13 | SCK |
2) You can configure the SPI interface by changing the setting of the 0ohm resistor as below:
The resistors are solders by default:
- SCK is connected to D13.
- MISO is connected to D12.
- MOSI is connected to D11.
If you change the resistors as below:
- D13 to P26.
- D12 to IO_SD.
- D11 to IO_SC.
The D11, D12, and D13 pins are connected to the GPIO of Raspberry Pi directly.
Note: You can change the setting of resistors. (Please confirm it with Waveshare first if you want to change it, otherwise, the board loses the warranty.
3) The A0~A5 pins are configurable, you can configure the as GPIO pins or AD pins.
a) If A0~A5 pins are connected to 1, they are used as GPIOs:
Arduino interface | Raspberry Pi IO |
A0 | CE1 |
A1 | P5 |
A2 | P6 |
A3 | P7 |
A4 | CE0 |
A5 | MOSI |
b)If the A0~A5 is connected to 3, they are works as AD pins.
4) You can connect A4 to P_SCL and A5 to P_SD for connecting I2C devices. They are disconnected by default.
Note: You can change the setting of pins. (Please confirm it with Waveshare first if you want to change it, otherwise, the board loses the warranty.
5) The pins for sensors are extended in the ARPI600 board:
- The pins (A6-A10) in A area are connected to TLC1543 chip for analog signals.
- The pins in D are connected to the P0-P4 IO of Raspberry Pi for digital signal.
You can connect sensors to these pins.
ARPI600 Connect Sensors (Not Included)
The following examples require Raspberry Pi, you need to connect the ARPI600 board and related sensors to the Raspberry Pi.
- Color Sensor
1) Connect the ARPI600 to Raspberry Pi.
2) Connect the color sensor to ARPI600:
Color Sensor | ARPI600 |
LED | 3.3V |
OUT | P0 |
S3 | P4 |
S2 | P3 |
S1 | P2 |
S0 | P1 |
GND | GND |
VCC | 3.3V |
3) Copy the folder of Color_Sensor to Raspberry Pi and run it:
cd Color_Sensor sudo ./Color_Sensor
4) The sensor will first take the white balance process for 2s and then output the color data.
5) You can press Ctrl+C to stop the codes.
- Flame Sensor
1) Connect the ARPI600 to Raspberry Pi.
2) Connect the sensor to ARPI600:
Flame Sensor | ARPI600 |
DOUT | NC |
AOUT | T_A6 |
GND | GND |
VCC | 3.3V |
3) Copy the folder of Flame_Sensor to Raspberry Pi and run the following commands:
cd Flame_Sensor sudo ./General_Sensor
4) The LED of the sensor lights on when it is close to the fire.
5) The output data are changing while the distance between the sensor and fire is changing.
6) You can press Ctrl+C to stop cpdes
Note: This sensor isn't fireproof, you cannot put it in fire directly.
- Metal Sensor
1) Connect the ARPI600 to Raspberry Pi.
2) Connect the sensor to ARPI600:
Metal Sensor | ARPI600 |
DOUT | NC |
AOUT | T_A6 |
GND | GND |
VCC | 3.3V |
3) Copy the folder of Metal_Sensor to Raspberry Pi, and run the following commands:
cd Metal_Sensor sudo ./General_Sensor
4) The LED of the sensor lights on when the sensor touches live metal.
5) The data changes according to the touching between the sensor and live metal.
6) You can press Ctrl+C to stop the code.
- Hall Sensor
1) Connect the ARPI600 to Raspberry Pi.
2) Connect the sensor to ARPI600:
Hall Sensor | ARPI600 |
DOUT | NC |
AOUT | T_A6 |
GND | GND |
VCC | 3.3V |
3) Copy the folder of Hall Sensor to Raspberry Pi and run the following commands:
cd Hall_Sensor sudo ./General_Sensor
4) Close the sensor to the magnet, and the indicator turns on.
5) The data output changes according to the touching between the sensor and magnet.
6) You can press Ctrl+C to stop the code.
- Infrared Reflective Sensor
1) Connect the ARPI600 to Raspberry Pi.
2) Connect the sensor to ARPI600:
Infrared Reflective Sensor | ARPI600 |
DOUT | NC |
AOUT | T_A6 |
GND | GND |
VCC | 3.3V |
3) Copy the Infrared_Reflective_Sensor folder to Raspberry Pi and run the following commands:
cd Infrared_Reflective_Sensor sudo ./General_Sensor
4) The indicators tune on when the sensor detects obstacles.
5) The data output is changed according to the distance of the obstacle.
6) You can press Ctrl+C to stop the code.
- Laser Sensor
1) Connect the ARPI600 to Raspberry Pi.
2) Connect the sensor to ARPI600:
Laser Sensor | ARPI600 |
DOUT | NC |
AOUT | T_A6 |
GND | GND |
VCC | 3.3V |
3) Copy the Laser_Sensor folder to Raspberry Pi and run the following commands:
cd Laser_Sensor sudo ./General_Sensor
4) Put an object above the sensors, and the indicator of the sensor turns on.
5) You can press Ctrl+C to stop the code.
- Moisture Sensor
1) Connect the ARPI600 to Raspberry Pi.
2) Connect the sensor to ARPI600:
Moisture Sensor | ARPI600 |
DOUT | NC |
AOUT | T_A6 |
GND | GND |
VCC | 3.3V |
3) Copy the Moisture_Sensor folder to Raspberry Pi and run the following commands:
cd Moisture_Sensor sudo ./General_Sensor
4) Inset the sensor to soil watering, the data will change.
5) You can press Ctrl+C to stop codes.
- Rotation Sensor
1) Connect the ARPI600 to Raspberry Pi.
2) Connect the sensor to ARPI600:
Moisture Sensor | ARPI600 |
SIA | P0 |
SIB | P1 |
SW | P2 |
GND | GND |
VCC | 3.3V |
3) Copy the Rotation_Sensor folders to Raspberry Pi and run the following commands:
cd Rotation_Sensor sudo ./Rotation_Sensor
4) Turn the sensor clockwise or anticlockwise, press the potentiometer, and the data output changes.
Turn right! Turn left! Turn down!
5) Connect the SIA, SIB, and SW pins to a logic analyzer(CH0, CH1, CH2).
Turn the potentiometer clockwise:
Turn the potentiometer anticlockwise:
Press the button in the encoder:
6) You can press Ctrl+C to stop codes.
- Sound Sensor
1) Connect the ARPI600 to Raspberry Pi
2) Connect the sensor to ARPI600:
Sound Sensor | ARPI600 |
DOUT | NC |
AOUT | T_A6 |
GND | GND |
VCC | 3.3V |
3) Copy the Sound_Sensor folder to Raspberry Pi and run the following commands:
cd Sound_Sensor sudo ./General_Sensor
4) The indicator of the sensor turns on when the sensor is close to sounds.
5) The data changes while the distance change.
6) You can press Ctrl+C to stop the code.
- Temperature-Humidity Sensor
1) Connect the ARPI600 to Raspberry Pi.
2) Connect the sensor to ARPI600:
PIN | ARPI600 |
DOUT | P0 |
GND | GND |
VCC | 3.3V |
3) Copy the Temperature-Humidity_Sensor folder to Raspberry Pi and run the following commands:
cd Temperature-Humidity_Sensor sudo ./DHT11
4)Temperature and humidity data are printed.
Humidity=33 Temperature=28
5) You can press Ctrl+C to stop the code.
- MQ-5 Gas Sensor
1) Connect the ARPI600 to Raspberry Pi.
2) Connect the sensor to ARPI600:
PIN | ARPI600 |
DOUT | NC |
AOUT | T_A6 |
GND | GND |
VCC | 3.3V |
3) Copy the MQ-5_Gas_Sensor folder to Raspberry Pi and run the following commands:
cd MQ-5_Gas_Sensor sudo ./General_Sensor
4) The sensor requires about 1 minute to warm up.
5) Put the sensor into testing equipment with gases, and the indicator of the sensor turns on.
6) You can press Ctrl+C to stop the code.
- Tilt Sensor
1) Connect the ARPI600 to Raspberry Pi.
2) Connect the sensor to ARPI600:
PIN | ARPI600 |
DOUT | T_A6 |
GND | GND |
VCC | 3.3V |
3) Copy the Tilt_Sensor folder to Raspberry Pi and run the following commands:
cd Tilt_Sensor sudo ./General_Sensor
4) Shake the sensor to check the data and indicator.
5) You can press Ctrl+C to stop the code.
- UV Sensor
1) Connect the ARPI600 to Raspberry Pi.
2) Connect the sensor to ARPI600:
PIN | ARPI600 |
AOUT | T_A6 |
GND | GND |
VCC | 3.3V |
3) Copy the UV_Sensor folder to Raspberry Pi and run the following commands.
cd UV_Sensor sudo ./General_Sensor
4) The data changes when detecting UV waves.
5) You can press Ctrl+C to stop the code.
- Liquid Level Sensor
1) Connect the ARPI600 to Raspberry Pi.
2) Connect the sensor to ARPI600:
PIN | ARPI600 |
AOUT | T_A6 |
GND | GND |
VCC | 3.3V |
3) Copy the Liquid_Level_Sensor folder to Raspberry Pi and run the following commands:
cd Liquid_Level_Sensor sudo ./General_Sensor
4) Put the sensor in water, and the data output changes.
5) You can press Ctrl+C to stop the code.
Resource
- Raspberry Pi Hardware Resouces (official)
- Help Center
- Panasonic_SDFormatter
- Win32DiskImager
- putty
- wiringPi & bcm2835 C LIB
- Image
General Tutorial Series
- Raspberry Pi Tutorial Series
- Raspberry Pi Tutorial Series: Access your Pi
- Raspberry Pi Tutorial Series: Getting Started with lighting up an LED
- Raspberry Pi Tutorial Series: External Button
- Raspberry Pi Tutorial Series: I2C
- Raspberry Pi Tutorial Series: I2C Programming
- Raspberry Pi Tutorial Series: 1-Wire DS18B20 Sensor
- Raspberry Pi Tutorial Series: Infrared Remote Control
- Raspberry Pi Tutorial Series: RTC
- Raspberry Pi Tutorial Series: PCF8591 AD/DA
- Raspberry Pi Tutorial Series: SPI
FAQ
Support
Support
If you require technical support, please go to the Support page and open a ticket.