Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Cet enregistreur de données simple prend des mesures de lumière régulières avec un LDR (photorésistance) analogique et les stocke dans un fichier texte sur votre Raspberry Pi. Cet enregistreur de données mesurera et enregistrera le niveau de lumière toutes les 60 secondes, vous permettant de surveiller l'évolution de la luminosité sur une certaine durée.
Si nous voulons utiliser des capteurs analogiques avec le Raspberry Pi, nous aurions besoin de pouvoir mesurer la résistance du capteur. Contrairement à l'Arduino, les broches GPIO du Raspberry Pi sont incapables de mesurer la résistance et ne peuvent détecter que si la tension qui leur est fournie est supérieure à une certaine tension (environ 2 volts). Pour surmonter ce problème, vous pouvez utiliser un convertisseur analogique-numérique (ADC), ou vous pouvez utiliser à la place un condensateur relativement bon marché.
Étape 1: ce dont vous aurez besoin
- Un RaspberryPi avec Raspbian déjà installé. Vous devrez également pouvoir accéder au Pi à l'aide d'un moniteur, d'une souris et d'un clavier ou via le bureau à distance. Vous pouvez utiliser n'importe quel modèle de Raspberry Pi. Si vous possédez l'un des modèles Pi Zero, vous souhaiterez peut-être souder des broches d'en-tête au port GPIO.
- Une résistance dépendante de la lumière (également connue sous le nom de LDR ou photorésistance)
- Un condensateur céramique 1 uF
- Une planche à pain de prototypage sans soudure
-Certains cavaliers mâles à femelles
Étape 2: Construisez votre circuit
Construisez le circuit ci-dessus sur votre maquette en vous assurant qu'aucun des fils des composants ne se touche. La résistance dépendant de la lumière et le condensateur céramique n'ont pas de polarité, ce qui signifie qu'un courant négatif et positif peut être connecté à l'un ou l'autre des fils. Par conséquent, vous n'avez pas à vous soucier de la manière dont ces composants ont été connectés dans votre circuit.
Une fois que vous avez vérifié votre circuit, connectez soigneusement les câbles de démarrage aux broches GPIO de votre Raspberry Pi en suivant le schéma ci-dessus.
Étape 3: créez un script Python pour lire et enregistrer vos données
Ouvrez IDLE sur votre Raspberry Pi (Menu > Programmation > Python 2 (IDLE)) et ouvrez un nouveau projet (Fichier > Nouveau fichier). Tapez ensuite ce qui suit:
importer RPi. GPIO en tant que GPIO
import time import datetime loginterval=60 #intervalle de journal en secondes savefilename="lightlevels.txt" SensorPin=17 TriggerPin=27
GPIO.setmode(GPIO. BCM)
cap=0.000001 #1uf adj=2.130620985
def mesurerésistance (mpin, tpin):
GPIO.setup(mpin, GPIO. OUT) GPIO.setup(tpin, GPIO. OUT) GPIO.output(mpin, False) GPIO.output(tpin, False) time.sleep(0.2) GPIO.setup(mpin, GPIO. IN) time.sleep(0.2) GPIO.output(tpin, True) starttime=time.time() endtime=time.time() while (GPIO.input(mpin) == GPIO. LOW): endtime=time.time () return endtime-starttime def writeline(txt, fn): f = open(fn, 'a') f.write(txt+'\n') f.close() i=0 t=0 while True: stime= time.time() pour a in range(1, 11): res=(measureresistance(SensorPin, TriggerPin)/cap)*adj i=i+1 t=t+res if a==10: t=t/i print(t) writeline(str(datetime.datetime.now())+", "+str(t), savefilename) i=0 t=0 while stime+loginterval>time.time(): #attendre que l'heure de connexion ait temps passé.sommeil(0.0001)
Enregistrez votre projet sous datalogger.py (Fichier > Enregistrer sous) dans votre dossier Documents.
Ouvrez maintenant Terminal (Menu > Accessoires > Terminal) et tapez la commande suivante:
python datalogger.py
Le script créera un fichier texte nommé "lightlevels.txt" et le mettra à jour toutes les 60 secondes. Vous pouvez modifier ce nom de fichier à la ligne 6. Vous pouvez également ajuster la fréquence de mise à jour de la centrale de mesure en modifiant la ligne 5.