This section goes over the various devices supported by IoT One Cloud. This list will grow as new drivers are added to the software. If you are unsure about some of the symbols in the individual sections, refer to the Circuit basics section of this guide. Some devices might require extra tools to be setup before use, refer to this section if the device calls for it.
S2C is a communications protocol than enabled serial communication through GPIO pins 3 and 5 known as the SDA and SDL pins. Some setup is required to enabled this communication.
First step is to install i2c tools, this makes detecting device addresses much easier. This can be accomplished by running the following command.
sudo apt-get install -y i2c-tools
Next you will need to make sure I2C is enabled on the raspberry. To do this, run the following command:
sudo raspi-config
You will presented with a menu screen. Select 5. Interfacing Options, and then P5, I2C. Enable this interface, exit and save configuration.
I2C functionality requires WiringPi to be installed on your raspberry pi. In some cases this is pre-installed. To check whether this is installed, run the following command.
gpio readall
If Wiring Pi installed, you will be presented with a chart similar to the following:
+-----+-----+---------+------+---+---Pi 3---+---+------+---------+-----+-----+ | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM | +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+ | | | 3.3v | | | 1 || 2 | | | 5v | | | | 2 | 8 | SDA.1 | ALT0 | 1 | 3 || 4 | | | 5v | | | | 3 | 9 | SCL.1 | ALT0 | 1 | 5 || 6 | | | 0v | | | | 4 | 7 | GPIO. 7 | IN | 0 | 7 || 8 | 0 | IN | TxD | 15 | 14 | | | | 0v | | | 9 || 10 | 1 | IN | RxD | 16 | 15 | | 17 | 0 | GPIO. 0 | IN | 0 | 11 || 12 | 0 | IN | GPIO. 1 | 1 | 18 | | 27 | 2 | GPIO. 2 | IN | 0 | 13 || 14 | | | 0v | | | | 22 | 3 | GPIO. 3 | IN | 0 | 15 || 16 | 0 | IN | GPIO. 4 | 4 | 23 | | | | 3.3v | | | 17 || 18 | 0 | IN | GPIO. 5 | 5 | 24 | | 10 | 12 | MOSI | ALT0 | 0 | 19 || 20 | | | 0v | | | | 9 | 13 | MISO | ALT0 | 0 | 21 || 22 | 0 | IN | GPIO. 6 | 6 | 25 | | 11 | 14 | SCLK | ALT0 | 0 | 23 || 24 | 1 | OUT | CE0 | 10 | 8 | | | | 0v | | | 25 || 26 | 1 | OUT | CE1 | 11 | 7 | | 0 | 30 | SDA.0 | IN | 1 | 27 || 28 | 1 | IN | SCL.0 | 31 | 1 | | 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | | 0v | | | | 6 | 22 | GPIO.22 | IN | 1 | 31 || 32 | 0 | IN | GPIO.26 | 26 | 12 | | 13 | 23 | GPIO.23 | IN | 0 | 33 || 34 | | | 0v | | | | 19 | 24 | GPIO.24 | IN | 0 | 35 || 36 | 0 | IN | GPIO.27 | 27 | 16 | | 26 | 25 | GPIO.25 | IN | 0 | 37 || 38 | 0 | IN | GPIO.28 | 28 | 20 | | | | 0v | | | 39 || 40 | 0 | IN | GPIO.29 | 29 | 21 | +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+ | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM | +-----+-----+---------+------+---+---Pi 3---+---+------+---------+-----+-----+
If you get this chart, proceed to Connecting the Sensor If you get a no such command error, proceed to installation instructions:
Wiring Pi requires that you install git, and then compile the code, therefore you must first install git. To do this from the command line, run the following commands. First update the pi:
sudo apt-get update && sudo apt-get upgrade
Once this is finished, now install git:
sudo apt-get install git git-core
Then use git to download wiringpi code:
it clone git://git.drogon.net/wiringPi cd wiringPi ./build
Once this is done you can now run the gpio command and verify wiring pi is installed.
Turn off the device to plug in your sensor
sudo shutdown
Once you have connected an i2C device, turn on your raspberry Pi and let it boot up. Log in and run the following command
i2cdetect -y 1
You will presented with a map like the following:
0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- 23 -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
This polls bus 1 of the i2c system, which is the one the model 3 uses.
Devices connected using i2c will be listed in this screen. In this case a device is connected at address 23.
If you do not see a connected device, it may not be getting enough power, or your wiring may not be correct. Please check and retry this step.
Some devices may require the DHTXX library installed and running. To do this, follow these steps to prepare.
Get the pigpio library and install it
sudo apt-get install pigpio python-pigpio python3-pigpio
Then download DHTXXD into a directory
mkdir DHT22 cd DHT22 http://abyz.me.uk/rpi/pigpio/code/DHTXXD.zip
unzip the DHTXXD.zip file
unzip DHTXXD.zip
Compile the DHTXXD
gcc -Wall -pthread -o DHTXXD test_DHTXXD.c DHTXXD.c -lpigpiod_if2
once done, the program DHTXXD will be available in this directory: /home/pi/DHT22/DHTXXD Remember this, you will need to recall this for later.
Now connect the DHT22 as shown ![DHT22 Wiring diagram](DHT22.png)
Before getting data from the some devices, you will need to install the PIGPIO library. To do this, run the commands
sudo apt-get install pigpio python-pigpio python3-pigpio
This will install the PIGPIO library into your Raspberry Pi. Start the daemon by running
sudo pigpiod
This must be done manually at every boot, unless you enable the daemon to run at boot. This can be done by using the following command at the command line:
sudo systemctl enable pigpiod
This will now run at every boot, now reboot your system.
sudo reboot
In some cases the DHT sensors might not receive enough power from the breakout board or ribbon cables. You may test to see if the sensor is getting power and delivering information by running the DHTXXD program directly. From the directory you compiled it in, run
./DHTXXD -g17
where -g## is the BCM pin 17 for the device, and you should return some data.
0.25.0.18.0
If you get the result
3.0.0.0.0
Your device is not communicating and you may need to change how it is hooked up. You may need to bypass the ribbon cable, or use another +3.3v power source. Note that devices like DHT22 and DHT11 require 2.5mA max current to poll data.