Table des matières:

Faire un enregistreur de données avec le Raspberry Pi : 3 étapes (avec photos)
Faire un enregistreur de données avec le Raspberry Pi : 3 étapes (avec photos)

Vidéo: Faire un enregistreur de données avec le Raspberry Pi : 3 étapes (avec photos)

Vidéo: Faire un enregistreur de données avec le Raspberry Pi : 3 étapes (avec photos)
Vidéo: Recycle Webcam + Raspberry Pi et fabrique un système vidéo surveillance [Chmaude77 - EP01] 2024, Juillet
Anonim
Faire un enregistreur de données avec le Raspberry Pi
Faire un enregistreur de données avec le Raspberry Pi

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

Ce dont vous aurez besoin
Ce dont vous aurez besoin
Ce dont vous aurez besoin
Ce dont vous aurez besoin
Ce dont vous aurez besoin
Ce dont vous aurez besoin
Ce dont vous aurez besoin
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 votre circuit
Construisez votre circuit
Construisez votre circuit
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

Créez un script Python pour lire et enregistrer vos données
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.

Conseillé: