Vous êtes sur la page 1sur 8

06/12/2023

Cours: Technologies de
réseaux sans fil pour l’IOT

Chapitre VII:
Creating an IoT platform with
Raspberry Pi

Nadia Smaoui Zghal


Année universitaire 2023/2024 1

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.

Cumul des ventes de Raspberry Pi (en


millions).

1
06/12/2023

Schéma d’une carte Rasberry


Le Raspberry Pi dispose de pins GPIO qui
permettent la connexion de cartes d'extension ou
d'autres composants électroniques pour réaliser
des montages.
SOC ARM
Processor Le Raspberry Pi possède un processeur ARM11 à
700 MHz. Il inclut 1, 2 4 ports USB, un port RJ45 et
256 Mo de mémoire vive pour le modèle d'origine
(jusqu'à 8 Go sur les dernières versions63).

Année universitaire 2020/2021 3

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

Préparez votre environnement


• gpio python
• sudo apt-get update
• sudo apt-get install python-dev
• sudo apt-get install python-rpi.gpio
• sudo apt−get install git−core
• DHT11 and DHT22
• git clone https://github.com/adafruit/Adafruit_Python_DHT.git
• cd Adafruit_Python_DHT
• sudo apt−get install build−essential python−dev
• sudo python setup.py install

Circuit
DHT11 Raspberry

VCC PIN-2 (5V)


Gnd PIN-6 (GND)
Data PIN-13 (GPIO-27)

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))

Connecter le Raspberry au Cloud

4
06/12/2023

Create Cloud Account


• https://ubidots.com/stem/

Ubidots Mobile App


• Download :

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

Envoyer les données au cloud

import Adafruit_DHT
from ubidots import ApiClient
import math
import time

# Create an ApiClient object


api = ApiClient(token='XXXXXXXXXXXXXXXXXX')
# Get a Ubidots Variable
variable_h = api.get_variable('XXXXXXXXXXXXXXXXXX')
variable_t = api.get_variable('XXXXXXXXXXXXXXXXXX')

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

Control des leds à travers le cloud


import RPi.GPIO as GPIO
from ubidots import ApiClient
from time import sleep

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

Année Universitaire 2023/2024 15

15

Vous aimerez peut-être aussi