In the previous part we have seen how to configure Azure for IOTHub. In this post we will cover setting up the Raspberry Pi and connecting it to the sensor and sending the data to Azure IOTHub.
For more details on How to use Azure IOT Hub – Part 1 click here
Setup Raspberry Pi
To know more on how to install the Raspian OS click here.
Enable SSH and I2C: Go to Preferences -> Raspberry Pi configuration -> Interfaces Tab
Set I2C and SSH to enable.
Alternatively, you can use command line command raspi-config
Refer the screenshot below.
Connect the Sensor to Pi
We will be using DHT22 humidity and temperature sensor.
- Connect Pin 1 of DHT22 to Raspberry pi Pin 1 (3.3v)
- Connect Pin 2 of DHT22 to Pin 3 (I2C1 SDA)
- Connect Pin 3 of DHT22 to Ground pin
- LED Vdd pin to GPIO Pin 24 (pin 18)
- LED GND to GND pin 20
Note: you can connect your sensor to any GPIO pin. Accordingly update the config file.
Refer the Raspberry Pi Pinout diagram below
Install DHT22 libraries to verify the hardware connections.
- To do so, connect to Raspberry Pi through putty (from Windows machine) or ssh ( linux or mac)
- Install DHT22 sensor libraries from Adafruit
sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential python-dev python-openssl python-pip(get python libraries) sudo apt-get install git (Install git if not present) git clone https://github.com/adafruit/Adafruit_Python_DHT.git cd Adafruit_Python_DHT sudo python setup.py install Once the DHT libraries are installed, test the installation and configuration cd /home/pi/Adafruit_Python_DHT/examples sudo ./AdafruitDHT.py 22 2
Now we are going to use one of the examples from Github. Run the following command to clone the sample app.
git clone https://github.com/Azure-Samples/iot-hub-python-raspberrypi-client-app.git sudo chmod u+x setup.sh sudo ./setup.sh
Open the config file by running the following commands to update config settings if required. You need to update pin number that you have used to connect the DHT22 sensor.
cd iot-hub-python-raspberrypi-client-app nano config.py
Run the app with the following command.
python app.py '<your Azure IoT hub device connection string>'
Note: we can run the command in background or add this using cron job.
If you get the following screen with LED blinking then data is being sent to Azure IOT hub and all our connections are perfect.
Verify the message count in Azure.
Image and video of the final prototype.
deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
2. If you get stuck at 95% compiling the python sdk, increase the swap space.
3. Make sure to use the latest Raspbian version ( stretch). In the older versions I was facing issues related to gcc versions.
Do let me know if you have any queries.