Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Šis paprastas duomenų kaupiklis reguliariai matuoja šviesą su analoginiu LDR (fotorezistoriumi) ir saugo juos teksto faile jūsų „Raspberry Pi“. Šis duomenų kaupiklis matuos ir įrašys šviesos lygį kas 60 sekundžių, leisdamas jums stebėti, kaip ryškumas kinta per tam tikrą laiką.
Jei norime naudoti analoginius jutiklius su „Raspberry Pi“, turėtume sugebėti išmatuoti jutiklio varžą. Skirtingai nuo „Arduino“, „Raspberry Pi“GPIO kaiščiai negali išmatuoti pasipriešinimo ir gali jausti tik tuo atveju, jei jiems tiekiama įtampa viršija tam tikrą įtampą (maždaug 2 voltai). Norėdami išspręsti šią problemą, galite naudoti analoginį skaitmeninį keitiklį (ADC) arba palyginti pigų kondensatorių.
1 žingsnis: ko jums reikės
- RaspberryPi su jau įdiegtu Raspbian. Taip pat turėsite turėti galimybę pasiekti „Pi“naudodami monitorių, pelę ir klaviatūrą arba nuotolinį darbalaukį. Galite naudoti bet kurį „Raspberry Pi“modelį. Jei turite vieną iš „Pi Zero“modelių, galbūt norėsite lituoti kai kuriuos antraštės kaiščius prie GPIO prievado.
- Nuo šviesos priklausomas rezistorius (taip pat žinomas kaip LDR arba fotorezistorius)
- 1 uF keraminis kondensatorius
- Solidless prototipų kepimo lenta
- Kai kurie jungiamieji laidai nuo vyrų iki moterų
2 žingsnis: sukurkite grandinę
Sukurkite aukščiau pateiktą grandinę ant savo duonos lentos ir įsitikinkite, kad nė vienas iš komponentų laidų neliečia. Nuo šviesos priklausomas rezistorius ir keraminis kondensatorius neturi poliškumo, o tai reiškia, kad neigiamą ir teigiamą srovę galima prijungti prie bet kurio laido. Todėl jums nereikia jaudintis, kokiu būdu šie komponentai buvo prijungti prie jūsų grandinės.
Patikrinę grandinę, atsargiai prijunkite trumpiklius prie „Raspberry Pi“GPIO kaiščių, vadovaudamiesi aukščiau pateikta schema.
3 veiksmas: sukurkite „Python“scenarijų, kad galėtumėte skaityti ir registruoti savo duomenis
Raspberry Pi atidarykite IDLE (meniu> Programavimas> Python 2 (IDLE)) ir atidarykite naują projektą (Failas> Naujas failas). Tada įveskite:
importuoti RPi. GPIO kaip GPIO
importavimo laikas importavimo datos laikas loginterval = 60 #log intervalas sekundėmis savefilename = "lightlevels.txt" SensorPin = 17 TriggerPin = 27
GPIO.setmode (GPIO. BCM)
viršutinė riba = 0.000001 #1uf adj = 2.130620985
matuojamas atsparumas (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.putput (tpin, True) starttime = time.time () endtime = time.time () o (GPIO.input (mpin) == GPIO. LOW): endtime = time.time () return endtime-starttime def writeeline (txt, fn): f = open (fn, 'a)) f.write (txt+' / n ') f.close () i = 0 t = 0, o tiesa: stime = time.time () a diapazone (1, 11): res = (išmatuotas atsparumas (SensorPin, TriggerPin)/dangtelis)*adj i = i+1 t = t+res, jei a == 10: t = t/i print (t) writeline (str (datetime.datetime.now ())+","+str (t), išsaugoti failo pavadinimą) i = 0 t = 0, o trukmė+loginterval> time.time (): #laukti, kol baigsis logtime praėjo laikas. miegas (0,0001)
Išsaugokite savo projektą aplanke Dokumentai kaip datalogger.py (Failas> Įrašyti kaip).
Dabar atidarykite terminalą (Meniu> Priedai> Terminalas) ir įveskite šią komandą:
python datalogger.py
Scenarijus sukurs tekstinį failą pavadinimu „lightlevels.txt“ir atnaujins jį kas 60 sekundžių. Šį failo pavadinimą galite pakeisti 6 eilutėje. Taip pat galite koreguoti duomenų kaupiklio atnaujinimo dažnumą, pakeisdami 5 eilutę.