Tutoriel premier démarrage avec le Raspberry pi

Sonde DHT
(température, humidité)

On aura besoin d'une sonde DHT11, 22 ou 21 :

Image non disponible Image non disponible Image non disponible

Le branchement

Image non disponible Il faut ajouter une résistance de 4.7K Ohms entre la pin VCC et DATA,
le VCC au 3.3v du Raspberry,
GND au GND du Raspberry,
la pin DATA au GPIO 4 du Raspberry

Image non disponible

Installation de python et différents modules nécessaires

Pour utiliser les sonde DHT je vais utiliser le langage python, on va installé ces différents logiciels :

sudo apt-get install build-essential python-dev python-setuptools git -y

Une fois installé, on s'assure d'être dans le dossier pi du Raspberry

cd /home/pi/

Puis on télécharge le dossier de la librairie pour lire ces sondes et on s'y déplace :

git clone https://github.com/adafruit/Adafruit_Python_DHT.git && cd Adafruit_Python_DHT

On installe la librairie :

sudo python setup.py install

Test de la sonde

On se déplace dans le dossier examples :

cd /home/pi/Adafruit_Python_DHT/examples

Puis on tape cette commande :

sudo ./AdafruitDHT.py 22 4

Vous devez obtenir ceci :

Image non disponible

On reviens dans le dossier Pi :

cd /home/pi/

Voici un exemple pour intégrer cette librairie dans nos programme, on créer un fichier nommé dht.py :

nano dht.py

Et on y colle ce programme :

Penser à supprimer les lignes vides en début de programme dans nano après avoir copier le code, sinon vous aurez une erreur.

Puis on tape cette commande :

python dht.py

Vous devez obtenir ceci :

Image non disponible

Si tout t'es ok, on supprime ce programme, on en a plus besoin :

rm dht.py

Sonde DS18B20

On aura besoin d'une sonde ds18b20 étanche ou pas et d'une résistance de 4.7 à 10k :

Image non disponible Image non disponible

Le branchement

Image non disponible Il faut ajouter une résistance de 4.7K Ohms entre la pin VCC et DATA,
le VCC au 3.3v du Raspberry,
GND au GND du Raspberry,
la pin DATA au GPIO 4 du Raspberry

Image non disponible

Activation du module 1-Wire

On accède à la configuration du Raspberry :

sudo raspi-config

Image non disponible

Image non disponible

Image non disponible

Image non disponible

Et on redémarre le Raspberry pi

chaque capteur sur le bus one-wire aura un fichier nommé w1_slave dans un dossier nommé 28-XXXXXXXX dans /sys/bus/w1/devices/ vous pouvez le voir en tapant:

ls /sys/bus/w1/devices/

Image non disponible

Pour lire ce capteur on tape :

cat /sys/bus/w1/devices/28*/w1_slave

Image non disponible

Il fait 18,75 degrés Celsius

On va écrire un petit programme en python qui nous lis ce fichier et récupère la température :

nano /home/pi/ds18b20.py

Ce qui donne :

Image non disponible

Détecteur de mouvement

On aura besoin d'un PIR HC-SR501 :

image non disponible

Le branchement

Image non disponible Le + Power au 5v du Raspberry, le GND au GND du Raspberry et la pin output au GPIO 4 du Raspberry.

image non disponible

Voici un petit programme :

pir.py :

Détecteur de lumière

On aura besoin d'un module LDR :

image non disponible

Le branchement

Image non disponible Le VCC au 3.3v du Raspberry, le GND au GND du Raspberry et la pin D0 au GPIO 4 du Raspberry.

image non disponible

Voici un petit programme qui allume une LED si y a moins de lumière :

lum.py :

On réglera la sensibilité avec un tournevis

Détecteur d'humidité

image non disponible

Le branchement

Image non disponible Le VCC au 3.3v du Raspberry, le GND au GND du Raspberry et la pin D0 au GPIO 4 du Raspberry.

image non disponible

Voici un petit programme qui allume une LED si c'est sec :

soil.py :

On réglera la sensibilité avec un tournevis

Le capteur Ultrason

Il sagit du HC-SRO4 :

image non disponible

Le branchement

Image non disponible Le VCC au 5v du Raspberry, le GND au GND du Raspberry, la pin Trigger au GPIO 18 du Raspberry et la pin Echo au GPIO 23 du Raspberry en passant par un pont diviseur car sinon la pin Echo va retourner du 5v sur le GPIO 23

image non disponible

Le petit programme de test :

hcr.py :

Ce qui donne :

image non disponible

Moteur pas à pas

Il sagit du 28BYJ-48 qui est déjà équipé d'un microcontrôleur :

image non disponible

Le branchement

Le 5v du pi au + du module,
le GND du pi au - du module,
le GPIO 18 du pi au INT 1 du module,
le GPIO 22 du pi au INT 2 du module,
le GPIO 23 du pi au INT 3 du module,
et leGPIO 24 du pi au INT 4 du module.

image non disponible

Voici un petit programme qu'on peut lancer avec 3 arguments ou sans.

stepper.py :

Sans argument, le programme fera un tour complet, soit 4096 pas, dans le sens des aiguilles d'une montre avec une pose de 1ms entre chaque pas.

python stepper.py

Ensuite le premier argument est le sens, -1 pour le sens inverse et 1 pour le sens des aiguilles d'une montre.

python stepper.py 1 ( sens horaire et par défaut 1 tour complet avec 1ms entre chaque pas )

Le deuxième argument est le nombre de pas (2048 = 1/2 tours)

python stepper.py 1 1024( sens horaire, 1/4 de tour et par défaut 1ms entre chaque pas )

Et le troisième argument est le temps entre chaque pas (en ms)

python stepper.py 1 2048 5 ( sens horaire, 1/2 tour et 5 ms entre chaque pas )

Le moteur DC

On a besoin d'un moteur à courant continu et d' un double pont en H, le L293D, qui nous permet de contrôler 1 ou 2 moteurs.

Image non disponible Image non disponible

Il faut une alimentation externe pour le moteur, piles ou autres, qui correspond aux caractéristiques de votre moteur bien sur.

Le branchement

image non disponible

Le 5v du pi au +5v du L293D,
le GND du pi au 4 GND du L293D,
le GPIO 23 du pi au input1 du L293D,
le GPIO 24 du pi au input2 du L293D,
le GPIO 25 du pi au enable du L293D,
le 5v du pi ou + de la batterie au enable du L293D. (masse commune si batterie)

image non disponible

Et un petit programme de test:

dc.py :

lecteur RFID

Il sagit du RC522, on le branche ainsi :

image non disponible

Le 3.3v du pi au 3.3v du RC522,
le GPIO 25 du pi au reset du RC522,
le GND du pi au GND du RC522,
le MISO (GPIO 9) du pi au MISO du RC522,
le MOSI (GPIO 10) du pi au MOSI du RC522,
le CLK (GPIO 11) du pi au Clock du RC522,
le CE (GPIO 08) du pi au SDA du RC522.

Ensuite il faut activer le module SPI du Raspberry pi, pour cela taper dans le terminal (raccourci: Ctrl + Alt + t):

sudo raspi-config

Onglet 3 :

image non disponible

Puis

image non disponible

image non disponible

Une fois le module activé, on télécharge les paquets nécessaire :

sudo apt-get install python-dev build-essential git -y

Et on télécharge les outils nécessaire :

git clone https://github.com/lthiery/SPI-Py.git

On se rend dans le dossier

cd SPI-Py

Et on lance l'installation

sudo python setup.py install

Puis toujours dans ce dossier on télécharge les outils pour lire le RC522

git clone https://github.com/mj3052/MFRC522-Pi.git

On se rend dans le dossier

cd MFRC522-Pi

Et on test la lecture :

python Read.py

Voici ce que cela donne :

image non disponible

Voici un petit exemple pour un accès contrôlé, le code de la carte acceptée est à modifier dans le programme, on peut bien sur utiliser une base de donnée s'il y a beaucoup de personne à autoriser.

Le branchement du RC522 est le même, on ajoute un bouton pour sortir de la pièce et on ajoute des LED pour la visualisation :

Le 3.3v du pi au 3.3v du RC522,
le GPIO 25 du pi au reset du RC522,
le GND du pi au GND du RC522,
le MISO (GPIO 9) du pi au MISO du RC522,
le MOSI (GPIO 10) du pi au MOSI du RC522,
le CLK (GPIO 11) du pi au Clock du RC522,
le CE (GPIO 08) du pi au SDA du RC522.

Le 5v du pi au VCC du relais,
le GND du pi au GND du relais,
le GPIO 20 du pi au Int du relais,
le GPIO 21 du pi au bouton,
le GND du pi au bouton.

image non disponible

Jaune : en fonctionnement, on attend un badge

Rouge : Accès refusé

Verte : Accès autorisé

Voici donc le programme :

porte.py :

donc toujours dans le dossier /home/pi/SPI-Py/MFRC522-Pi/

pour être sur

cd /home/pi/SPI-Py/MFRC522-Pi/

Puis on créer le programme porte.py

nano porte.py

Puis copier y le programme ci-dessus (Ctrl a, Crtl c dans l'encadré puis clic droit dans nano et coller)

Et on le lance

python porte.py

On attend une carte, la LED jaune est allumée, le reste éteint:

image non disponible

Carte non valide, la LED rouge s'allume et la jaune s'éteint, délai de 2s, puis on attend une nouvelle carte, LED jaune allumé :

image non disponible

Carte valide, ouverture de porte, la LED verte s'allume, le relais s'active, délai 5 seconde et fermeture de porte, le relais se désactive et la LED verte s'éteint :

image non disponible

L'écran LCD

image non disponible

On le branche ainsi :

On va a installer les outils python :

sudo apt-get install python-dev python-openssl python-pip -y

Puis on installe la librairie RPLCD

sudo pip install RPLCD

Voici un petit programme en exemple :

lcd.py :

Pour les caractères spéciaux, je les fais avec ce site.

Ce qui donne :

image non disponible

L'écran LCD I2C

image non disponible

On le branche ainsi :

Il faut activer le module I2C dans la config du Raspberry

sudo raspi-config

Onglet 3 :

image non disponible

Puis

image non disponible

Une fois le module activé, on ajoute les modules au démarrage:

sudo nano /etc/modules

Et on ajoute ces ligne :

i2c-bcm2708

i2c-dev

comme ceci :

image non disponible

Et on redémarre :

sudo reboot

Une fois le pi redémarré, on installe les outils nécessaires :

sudo apt-get install python-smbus i2c-tools

Puis on va tester la présence de périphérique I2C

sudo i2cdetect -y 0 (pour les pi Rev 1)

sudo i2cdetect -y 1 (pour les pi Rev 2)

Ce qui donne :

image non disponible

Chez moi l'adresse de mon LCD est donc 3f soit 0x3f

On utilise un driver, un fichier python qui regroupe les fonction pour l'écran, j'utilise celui-ci que j'ai trouvé sur la toile :

On modifie dans ce programme l'adresse correspondante à votre écran

I2C_LCD_driver.py :

Et ensuite dans le même répertoire que le driver on créer notre petit programme de test :

i2clcd.py :

Ce qui donne ceci :

image non disponible