Dans ce tutoriel, nous expliquons comment donner le Raspberry PI capteur de température, l’humidité et la luminosité. Nous pouvons facilement tourner autour de notre framboise dans une station météorologique.
Configuration matérielle requise :
- Capteur de température et d’humidité SHT21 I2C. Vous pouvez également utiliser une sonde de température 1-wire
- Capteur de luminosité I2C YL-40
- 4 câbles
- SPI affichage ILI9341 (320x240px TFT couleur)
- (Facultatif) IRP-102 HAT Board. Cette carte nous rend facile le travail de connexion tous les appareils pour ce projet et nous permet également d’avoir une horloge RTC.
Comme alternative au dispositif de SHT21 comprenant l’humidité et capteur de température, il peut être utilisé une sonde de température 1-wire. Code source développé dans ce tutoriel Rechercher une sonde 1 fil devrait détecter pas les SHT21.
L’application, nous avons développé est pour Python il est donc nécessaire de l’installer à partir du référentiel. Ce tutoriel a été réalisé avec système d’exploitation Raspbian. Comme avec n’importe quelle installation pour obtenir les dernières versions des paquets à installer seront exécutera tout d’abord les étapes suivantes :
sudo apt-get update
Et si vous souhaitez effectuer une mise à jour de paquets déjà installés, vous exécutez :
sudo apt-get - y mise à niveau
Si vous n’avez pas encore installé vous devez exécuter Python (Python 2 version) :
sudo apt-get install python-dev
1. activez I2C
Il faut vérifier que le bus I2C est activé pour être utilisé par des capteurs. Si ce n’est pas le cas, il faut pour mettre en marche. Exécutez l’assistant de configuration de cette façon.
sudo raspi-config
CCF Config 1 image
Sélectionnez l’option 9: options avancées. Puis choisissez option A7 : I2C.
Image de CCF Config 2
Puis vous demandera si nous voulons permettre I2C. Choisissez Oui.
CCF Config 3 image
Sortir de raspi-config. Au prochain redémarrage des modules système i2c sera chargé par défaut.
2. installer i2c-tools
Il s’agit d’un package de l’utilitaire de gestion I2C.
sudo apt-get install i2c-tools
Lorsque le processus d’installation a terminé, tapez :
i2cdetect -y 1
Cette commande analyse tous les périphériques connectés au bus I2C. Le second paramètre désigne l’ID de BUS, nous devons utiliser 1 pour Raspberry PI B +, B (rev. 2) et A +, nous utilisons pour l’ancien modèle B (rev 1) 0: bus ID. Nous allons obtenir quelque chose comme ça
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- 6f
70: -- -- -- -- -- -- -- --
Vous devez vérifier le dispositif en position 6F est montrée. Cela signifie CCF ont été détectés.
3. le module de chargement au démarrage
Modifiez le fichier rc.local
sudo nano /etc/rc.local
et ajoutez les lignes suivantes juste avant la exit 0
# Dispositifs de I2C
modprobe i2c-dev
Si le projet que nous menons avec une sonde 1-wire nous autres ajoutez les lignes suivantes dans ce fichier :
# Capteur de température
modprobe w1-gpio pullup = 1
modprobe w1-therm strong_pullup = 1
Sortir de l’éditeur d’enregistrer les modifications et redémarrer le système à l’aide
sudo reboot
Maintenant, nous installons le contrôleur pour gérer YL-40 (capteur de luminosité) à partir des référentiels :
sudo apt-get install python-smbus
Si succès, quand nous essayons encore une fois
i2cdetect -y 1
Nous devrions obtenir :
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- UU
70: -- -- -- -- -- -- -- --
UU caractères moyens ce périphérique à cette position est en cours d’utilisation.
4. SPI écran installation d’affichage des données du capteur
Pour faire fonctionner l’écran pour la première fois, vous pouvez suivre le tutoriel à l’aide de 2,2 LCD SPI en Python avec Raspberry Pi
5. Télécharger le code source dès que nous aurons tout fonctionne : Python pour la demande, I2C pour capteurs et SPI pour l’affichage, nous avons juste télécharger le code source utilisé pour avoir disponible au lien suivant :http://ingeniapp.com/sources/weather_station/
ou tout simplement
wget http://ingeniapp.com/sources/weather_station/iRP102-weather-station.zip
Décompressez iRP102-météo-station.zip
CD iRP102-station-météo
sudo python météo-station.py
de la coque.
6. description de modules d’application
gy21.py: Module de lecture I2C capteurs (température et humidité). +
Fonction permettant d’obtenir la valeur d’humidité :
def read_humidity(self) :
Fonction permettant d’obtenir la valeur de la température :
def read_temperature(self) :
Fonction permettant d’obtenir la valeur de luminosité :
def read_ain()
weather_station.py: application principale. Il est important de se rappeler que vous pouvez utiliser l’affichage et les capteurs doivent être des modules importés :
importations Adafruit_ILI9341 TFT
importations RPi.GPIO RPGPIO
l’importation Adafruit_GPIO. SPI sous SPI
importation gy21
smbus importons SMBus
Fonction d’affichage des valeurs de température et d’humidité. La date et l’heure s’affichent également. Selon les capteurs a détecté pendant le démarrage de l’application, vous pouvez prendre la valeur de la sonde 1-wiretemperature si SHT21 capteur pas connencted.
def show_time_temp() :
Nous entendons par ce module de l’application principale et son contenu contiennent le thread principal :
Si __name__ == « __main__ » :
NOTE: nous avons ajouté un paramètre supplémentaire appelé 'bgcolor' dans le 'draw_rotated_text def' (écrit dans la fonction de pilote d’affichage) pour permettre de changer la couleur d’arrière-plan du texte. Par conséquent, nous indiquent la couleur sur laquelle nous écrivons.
def draw_rotated_text (image, texte, position, angle, polices, fill=(255,255,255), bgtext=(255,255,255,255)) :