Sonde DHT22 (température, humidité)
On la branche ainsi :
- 3.3V du pi au VCC
- GPIO 22 du pi au data
- GND du pi au GND
- pin 3 de la dht22 non utilisé
On a besoin de la librairie Adafruit_Python_DHT
sudo apt-get update
sudo apt-get install build-essential python-dev git
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT
sudo python setup.py install
Voici un petit programme pour lire les sondes
dht22.py :
Moteur pas à pas
Il sagit du 28BYJ-48 qui est déjà équipé d'un microcontrôleur :
On le branche ainsi :
- GND du pi au GND
- 5V du pi au 5V
- GPIO 17 du pi au INT 1
- GPIO 22 du pi au INT 2
- GPIO 23 du pi au INT 3
- GPIO 24 du pi au INT 4
Voici un petit programme qu'on peut lancer avec 3 arguments ou pas.
Sans argument, le programme fera un tour complet, soit 4096 pas, dans le sens inverse 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 3 ( sens horaire, 1/2 tour et 3ms entre chaque pas )
stepper.py :
Détecteur de mouvement
On le branche ainsi :
- GND du pi au GND
- 5V du pi au + Power
- GPIO 19 du pi au pin output
Voici un petit programme :
pir.py :
Détecteur de lumière
On le branche ainsi :
- GND du pi au GND
- 3.3V du pi au VCC
- GPIO 22 du pi au D0
Contrairement à l'Arduino, le Raspberry Pi n'a pas d'entée analogique.
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é
On le branche ainsi :
- GND du pi au GND
- 3.3V du pi au VCC
- GPIO 22 du pi au D0
Contrairement à l'Arduino, le Raspberry Pi n'a pas d'entée analogique.
Voici un petit programme qui allume une LED si c'est sec :
sec.py :
On réglera la sensibilité avec un tournevis
lecteur RFID
Il sagit du RC522, on le branche ainsi :
Ensuite il faut activer le module SPI du Raspberry pi, pour cela taper dans le terminal (raccourci: Ctrl + Alt + t):
sudo raspi-config
Onglet 5 :
Puis
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 :
Voici un petit programme 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 a 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 :
Jaune ( bleu sur le shémas ) : 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:
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é :
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 :
L'écran LCD
On le branche ainsi :
- pin 01 : au GND
- pin 02 : au 5v
- pin 03 : au pin 2 du potentiomètre
- pin 04 : au GPIO 7 du Raspberry pi
- pin 05 : au GND
- pin 06 : au GPIO 8 du Raspberry pi
- pin 07 : non utilisé
- pin 08 : non utilisé
- pin 09 : non utilisé
- pin 10 : non utilisé
- pin 11 : au GPIO 25 du Raspberry pi
- pin 12 : au GPIO 24 du Raspberry pi
- pin 13 : au GPIO 23 du Raspberry pi
- pin 14 : au GPIO 18 du Raspberry pi
- pin 15 : au 5v
- pin 16 : au GPIO 13 du Raspberry pi
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 :
L'écran LCD I2C
On le branche ainsi :
- GND : au GND
- 5v : au 5v
- SCL : au SCL1 du Raspberry pi
- SDA : au SDA1 du Raspberry pi
Il faut activer le module I2C dans la config du Raspberry
sudo raspi-config
Onglet 5 :
Puis
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 :
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 :
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 :
Le capteur Ultrason
Il sagit du HC-SRO4 :
On le branche ainsi :
- GND : au GND
- 5v : au 5v
- Trigger : au GPIO 27 du Raspberry pi
- Echo : au GPIO 17 du Raspberry pi en passant par un pont diviseur car sinon la pin Echo va retourner du 5v sur le GPIO 17
Le petit programme de test :
hcr.py :
Ce qui donne :
Le moteur DC
On a besoin d'un double pont en H, le L293D, qui nous permet de contrôler jusqu' à 2 moteurs.
Il faut une alimentation externe pour le moteur, piles ou autres, qui correspond aux caractéristiques de votre moteur bien sur.
Le montage :
Et un petit programme de test: