Académique Documents
Professionnel Documents
Culture Documents
Cours: Technologies de
réseaux sans fil pour l’IOT
Chapitre VII:
Creating an IoT platform with
Raspberry Pi
Introduction
• Le Raspberry Pi est un nano-ordinateur monocarte à processeur ARM de la taille d'une carte de crédit
conçu par des professeurs du département informatique de l'université de Cambridge dans le cadre de
la fondation Raspberry Pi3.
• Le Raspberry Pi est utilisé par des créateurs du monde entier car son prix le rend très attirant.
1
06/12/2023
Application
• Avec le Raspberry Pi et quelques capteurs, il est facile de mesurer la température sans grand effort.
Toutefois, dans certaines situations ou projets (comme une station météorologique), l'humidité peut
également être éclairante.
• Des capteurs tels que le DHT11 et le DHT22 sont non seulement disponibles pour quelques euros, mais
ils peuvent également mesurer la température ainsi que l'humidité.
2
06/12/2023
Circuit
DHT11 Raspberry
3
06/12/2023
Python Program
• Create program file :
• nano dht_File.py
• Execute program :
• Python dht_File.py
• Program :
import Adafruit_DHT
while True:
humidity, temperature = Adafruit_DHT.read_retry(11, 27) # GPIO27 (BCM notation)
print ("Humidity = {} %; Temperature = {} C".format(humidity, temperature))
4
06/12/2023
10
10
5
06/12/2023
Préparer le Raspberry
• $ sudo apt-get install python-setuptools
• $ sudo easy_install pip
• $ sudo pip install ubidots
11
11
import Adafruit_DHT
from ubidots import ApiClient
import math
import time
while(1):
humidity, temperature = Adafruit_DHT.read_retry(11, 27)
# GPIO27 (BCM notation)
print ("Humidity = {} %; Temperature = {} C".format(humidity, temperature))
# Write the value to your variable in Ubidots
response_h = variable_h.save_value({"value": humidity })
#print response_h
response_t = variable_t.save_value({"value": temperature })
#print response_t
time.sleep(1) 12
12
6
06/12/2023
api = ApiClient(token="TOKEN*******************")
variable = api.get_variable("ID***************")
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.OUT)
while True:
last_value = variable.get_values(1)
if last_value[0].get("value") == 1:
GPIO.output(23, GPIO.HIGH)
else:
GPIO.output(23, GPIO.LOW)
sleep(5) # Sleep for 5 seconds 13
13
Final prog
import Adafruit_DHT
import RPi.GPIO as GPIO
from time import sleep while(1):
from ubidots import ApiClient humidity, temperature = Adafruit_DHT.read_retry(11, 27)
import math # GPIO27 (BCM notation)
import time print ("Humidity = {} %; Temperature = {}
C".format(humidity, temperature))
# Create an ApiClient object # Write the value to your variable in Ubidots
api = ApiClient(token='XXXXXXXXXXXXXXXXXX') response_h = variable_h.save_value({"value": humidity })
# Get a Ubidots Variable #print response_h
variable_h = api.get_variable('XXXXXXXXXXXXXXXXXX') response_t = variable_t.save_value({"value": temperature })
variable_t = api.get_variable('XXXXXXXXXXXXXXXXXX’) #print response_t
variable_l = api.get_variable("ID***************") last_value = variable.get_values(1)
if last_value[0].get("value") == 1:
GPIO.setmode(GPIO.BCM) GPIO.output(23, GPIO.HIGH)
GPIO.setup(23, GPIO.OUT) else:
GPIO.output(23, GPIO.LOW)
time.sleep(1)
14
14
7
06/12/2023
15