Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Acest simplu înregistrator de date ia măsurători regulate de lumină cu un LDR analog (Photoresistor) și le stochează într-un fișier text pe Raspberry Pi. Acest data logger va măsura și înregistra nivelul de lumină la fiecare 60 de secunde, permițându-vă să monitorizați cum se schimbă luminozitatea pe o perioadă de timp.
Dacă dorim să folosim senzori analogici cu Raspberry Pi, ar trebui să putem măsura rezistența senzorului. Spre deosebire de Arduino, pinii GPIO ai Raspberry Pi nu pot măsura rezistența și pot simți doar dacă tensiunea furnizată acestora este peste o anumită tensiune (aproximativ 2 volți). Pentru a depăși această problemă, ați putea folosi un convertor analogic la digital (ADC) sau ați putea folosi în schimb un condensator relativ ieftin.
Pasul 1: De ce veți avea nevoie
- Un RaspberryPi cu Raspbian deja instalat. De asemenea, va trebui să puteți accesa Pi utilizând un monitor, mouse și tastatură sau prin Desktop la distanță. Puteți utiliza orice model de Raspberry Pi. Dacă aveți unul dintre modelele Pi Zero, poate doriți să lipiți niște pini de antet pe portul GPIO.
- Un rezistor dependent de lumină (cunoscut și sub numele de LDR sau fotorezistor)
- Un condensator ceramic de 1 uF
- O placă de pâine fără sudură
- Unele fire jumper de la bărbat la femeie
Pasul 2: Construiește-ți circuitul
Construiți circuitul de mai sus pe placa dvs. de asigurare, asigurându-vă că niciunul dintre cablurile componentelor nu se atinge. Rezistorul dependent de lumină și condensatorul ceramic nu au polaritate, ceea ce înseamnă că un curent negativ și pozitiv poate fi conectat la oricare dintre cabluri. Prin urmare, nu trebuie să vă faceți griji cu privire la modul în care aceste componente au fost conectate în circuitul dvs.
După ce ați verificat circuitul, conectați cu grijă cablurile jumper la pinii GPIO ai Raspberry Pi urmând diagrama de mai sus.
Pasul 3: Creați un script Python pentru a vă citi și înregistra datele
Deschideți IDLE pe Raspberry Pi (Meniu> Programare> Python 2 (IDLE)) și deschideți un proiect nou (Fișier> Fișier nou). Apoi tastați următoarele:
importați RPi. GPIO ca GPIO
import timp import datetime loginterval = 60 #log interval în secunde savefilename = "lightlevels.txt" SensorPin = 17 TriggerPin = 27
GPIO.setmode (GPIO. BCM)
cap = 0.000001 # 1uf adj = 2.130620985
rezistență măsurătoare def (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 () returnează sfârșitul de timp-ora de început def scris scris (txt, fn): f = deschis (fn, 'a') f.write (txt + '\ n') f.close () i = 0 t = 0 în timp ce True: stime = time.time () pentru un interval (1, 11): res = (măsurarea rezistenței (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 în timp ce stime + loginterval> time.time (): # așteptați până când logtime are a trecut timpul.sleep (0.0001)
Salvați proiectul ca datalogger.py (Fișier> Salvare ca) în folderul Documente.
Acum deschideți Terminal (Meniu> Accesorii> Terminal) și tastați următoarea comandă:
python datalogger.py
Scriptul va crea un fișier text numit „lightlevels.txt” și îl va actualiza la fiecare 60 de secunde. Puteți modifica acest nume de fișier pe linia 6. Puteți, de asemenea, să ajustați frecvența cu care actualizatorul datalogger se schimbă în linia 5.