rpi-devices implements the drivers of devices or sensors for raspberry pi in pure golang. The drivers for the sensors below have been implemented, and I will keep developing for new sensors.
| Sensors | Image | Description | Example | App |
|---|---|---|---|---|
| ADS1015 | Analog-to-digital converter | N/A | joystick | |
| Button | Button module | example | vedio-monitor | |
| Buzzer | Buzzer module | N/A | car, door-dog | |
| Collision Switch | A switch for deteching collision | example | car | |
| DHT11 | Temperature & Humidity sensor | example | home-asst | |
| DS18B20 | Temperature sensor | example | auto-fan | |
| Encoder | Encoder sensor | example | car | |
| GPS | location sensor | example | gps-tracker | |
| GY-25 | angle sensor | example | car | |
| HC-SR04 | ultrasonic distance meter | example | auto-light, doordog | |
| Infrared | Infrared sensor | example | N/A | |
| Joystick | XY Dual Axis Joystick | example | car | |
| L298N | motor driver | N/A | car | |
| LC12S | 2.4g wireless module | example | car | |
| Led | Led light | example | car, vedio-monitor | |
| Led Display | led digital module | example | auto-air | |
| MPU6050 | 6-axis motion sensor | example | N/A | |
| Oled | Oled display module | example | home-asst | |
| PCF8591 | Analog-to-digital converter | N/A | N/A | |
| PMS7003 | Air quality sensor | example | auto-air | |
| Relay | Relay module | example | auto-fan | |
| RX480E-4 | Wireless remote control | example | remote-light | |
| SG90 | Servo motor | example | auto-air, car, vedio-monitor | |
| Step Motor | Step motor | example | N/A | |
| SW-420 | Shaking sensor | example | auto-air-out | |
| US-100 | ultrasonic distance meter | example | car | |
| Voice | Voice sensor | N/A | N/A | |
| ZE08-CH2O | CH2O sensor | example | ch2o-monitor |
It is very easy to cross-compile and deploy for golang. It is an example that compiles the binary for raspberry pi on MacOS.
$ CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=6 go build -o test main.goIf you aren't sure the cpu info of your raspberry pi, check it out by,
$ lscpu
# those are the cpu info of my raspberry pi 2.
# ------------------------------------------------------------
# Architecture: armv6l
# Byte Order: Little Endian
# CPU(s): 1
# On-line CPU(s) list: 0
# Thread(s) per core: 1
# Core(s) per socket: 1
# Socket(s): 1
# Vendor ID: ARM
# Model: 7
# Model name: ARM1176
# Stepping: r0p7
# CPU max MHz: 700.0000
# CPU min MHz: 700.0000
# BogoMIPS: 697.95
# Flags: half thumb fastmult vfp edsp java tls
# ------------------------------------------------------------And then, deploy the binary to your raspberry pi by,
$ scp test pi@192.168.31.57:/home/pi192.168.31.57 is the ip address of my raspberry pi, you need to replace it with yours.
ssh to you raspberry pi, and run the binary.
# from /home/pi
$ ssh pi@192.168.31.57
$ ./test
# or, run it in background
$ nohub ./test > test.log 2>&1 &Using the driver programs, I built several applications. The most complex and interesting project is the self-driving car, more than 10 sensers were used to build the smart car. I highlight few interesting apps here, please go to app for all apps I development. You can learn how to use the driver programs from my apps.
play the video on youtube.