Talaan ng mga Nilalaman:

Paggawa ng isang Data Logger Gamit ang Raspberry Pi: 3 Hakbang (na may Mga Larawan)
Paggawa ng isang Data Logger Gamit ang Raspberry Pi: 3 Hakbang (na may Mga Larawan)

Video: Paggawa ng isang Data Logger Gamit ang Raspberry Pi: 3 Hakbang (na may Mga Larawan)

Video: Paggawa ng isang Data Logger Gamit ang Raspberry Pi: 3 Hakbang (na may Mga Larawan)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Hulyo
Anonim
Paggawa ng isang Data Logger Gamit ang Raspberry Pi
Paggawa ng isang Data Logger Gamit ang Raspberry Pi

Ang simpleng data logger na ito ay tumatagal ng regular na mga sukat ng ilaw sa isang analogue LDR (Photoresistor) at iniimbak ang mga ito sa isang text file sa iyong Raspberry Pi. Susukat at itatala ng data logger na ito ang antas ng ilaw tuwing 60 segundo, na nagbibigay-daan sa iyo upang subaybayan kung paano nagbabago ang ilaw sa loob ng mahabang panahon.

Kung nais naming gumamit ng mga analogue sensor sa Raspberry Pi, kakailanganin naming masusukat ang paglaban ng sensor. Hindi tulad ng Arduino, ang mga GPIO pin ng Raspberry Pi ay hindi masusukat ang paglaban at maaari lamang maunawaan kung ang boltahe na ibinigay sa kanila ay nasa itaas ng isang tiyak na boltahe (humigit-kumulang na 2 volts). Upang mapagtagumpayan ang isyung ito, maaari kang gumamit ng isang Analogue sa Digital Converter (ADC), o maaari mong gamitin ang isang medyo murang capacitor sa halip.

Hakbang 1: Ano ang Kakailanganin Mo

Ano ang Kakailanganin Mo
Ano ang Kakailanganin Mo
Ano ang Kakailanganin Mo
Ano ang Kakailanganin Mo
Ano ang Kakailanganin Mo
Ano ang Kakailanganin Mo
Ano ang Kakailanganin Mo
Ano ang Kakailanganin Mo

- Isang RaspberryPi na may naka-install na na Raspbian. Kakailanganin mo ring ma-access ang Pi gamit ang isang Monitor, Mouse at Keyboard o sa pamamagitan ng Remote Desktop. Maaari mong gamitin ang anumang modelo ng Raspberry Pi. Kung mayroon kang isa sa mga modelo ng Pi Zero, baka gusto mong maghinang ng ilang mga pin ng header sa port ng GPIO.

- Isang Light Dependent Resistor (Kilala rin bilang isang LDR o Photoresistor)

- Isang 1 uF Ceramic Capacitor

- Isang Solderless Prototyping Breadboard

- Ang ilang mga Male to Female jumper wires

Hakbang 2: Buuin ang Iyong Circuit

Buuin ang Iyong Circuit
Buuin ang Iyong Circuit
Buuin ang Iyong Circuit
Buuin ang Iyong Circuit

Buuin ang circuit sa itaas sa iyong breadboard na tinitiyak na wala sa mga bahagi ng lead ang nakakaantig. Ang Light Dependent Resistor at Ceramic Capacitor ay walang polarity na nangangahulugang ang isang negatibo at positibong kasalukuyang ay maaaring konektado sa alinman sa lead. Samakatuwid hindi mo kailangang magalala tungkol sa kung aling paraan ang mga sangkap na ito ay konektado sa iyong circuit.

Sa sandaling nasuri mo ang iyong circuit, maingat na ikonekta ang mga jumper cables sa iyong mga GPIO pin ng Raspberry Pi sa pamamagitan ng pagsunod sa diagram sa itaas.

Hakbang 3: Lumikha ng isang Python Script upang Basahin at I-log ang iyong Data

Lumikha ng isang Python Script upang Basahin at I-log ang iyong Data
Lumikha ng isang Python Script upang Basahin at I-log ang iyong Data

Buksan ang IDLE sa iyong Raspberry Pi (Menu> Programming> Python 2 (IDLE)) at buksan ang isang bagong proyekto (File> Bagong File). Pagkatapos i-type ang sumusunod:

i-import ang RPi. GPIO bilang GPIO

oras ng pag-import ng datime loginterval = 60 # agwat ng log sa mga segundo savefilename = "lightlevels.txt" SensorPin = 17 TriggerPin = 27

GPIO.setmode (GPIO. BCM)

cap = 0.000001 # 1uf adj = 2.130620985

defereseresistensya (mpin, tpin):

GPIO.setup (mpin, GPIO. OUT) GPIO.setup (tpin, GPIO. OUT) GPIO.output (mpin, False) GPIO.output (tpin, Mali) oras. Tulog (0.2) GPIO.setup (mpin, GPIO. IN) time.s Sleep (0.2) GPIO.output (tpin, True) starttime = time.time () endtime = time.time () habang (GPIO.input (mpin) == GPIO. LOW): endtime = time.time () ibalik ang endtime-starttime def writeline (txt, fn): f = open (fn, 'a') f.write (txt + '\ n') f.close () i = 0 t = 0 habang True: stime = time.time () para sa isang nasa saklaw (1, 11): res = (pagsukat / resisteresist (SensorPin, TriggerPin) / cap) * adj i = i + 1 t = t + res kung isang == 10: t = t / i print (t) writeline (str (datime.datetime.now ()) + "," + str (t), savefilename) i = 0 t = 0 habang ang stime + loginterval> time.time (): #wait hanggang sa ang logtime ay mayroong lumipas ang oras. pagtulog (0,0001)

I-save ang iyong proyekto bilang datalogger.py (File> I-save Bilang) sa iyong folder ng Mga Dokumento.

Buksan ang Terminal (Menu> Mga Kagamitan> Terminal) at i-type ang sumusunod na utos:

python datalogger.py

Lilikha ang script ng isang file ng teksto na pinangalanang "lightlevels.txt" at ia-update ito tuwing 60 segundo. Maaari mong baguhin ang filename na ito sa linya 6. Maaari mo ring ayusin kung gaano kadalas ang mga update ng datalogger sa pamamagitan ng pagbabago ng linya 5.

Inirerekumendang: