Mundarija:

Raspberry Pi yordamida ma'lumotlarni ro'yxatga oluvchi yaratish: 3 qadam (rasmlar bilan)
Raspberry Pi yordamida ma'lumotlarni ro'yxatga oluvchi yaratish: 3 qadam (rasmlar bilan)

Video: Raspberry Pi yordamida ma'lumotlarni ro'yxatga oluvchi yaratish: 3 qadam (rasmlar bilan)

Video: Raspberry Pi yordamida ma'lumotlarni ro'yxatga oluvchi yaratish: 3 qadam (rasmlar bilan)
Video: ComfyUI Tutorial - How to Install ComfyUI on Windows, RunPod & Google Colab | Stable Diffusion SDXL 2024, Noyabr
Anonim
Raspberry Pi yordamida ma'lumotlar jurnalini yaratish
Raspberry Pi yordamida ma'lumotlar jurnalini yaratish

Bu oddiy ma'lumotlar yozuvchisi analog LDR (Fotoresistor) yordamida muntazam yorug'lik o'lchovlarini olib boradi va ularni Raspberry Pi -dagi matnli faylda saqlaydi. Bu ma'lumotni yozuvchi har 60 soniyada yorug'lik darajasini o'lchaydi va qayd qiladi, bu sizga yorqinlikning uzoq vaqt davomida qanday o'zgarishini kuzatishga imkon beradi.

Agar biz Raspberry Pi bilan o'xshash sensorlardan foydalanmoqchi bo'lsak, biz sensorning qarshiligini o'lchay olamiz. Arduino -dan farqli o'laroq, Raspberry Pi -ning GPIO pinlari qarshilikni o'lchay olmaydi va ularga berilgan kuchlanish ma'lum bir kuchlanishdan (taxminan 2 volt) yuqori bo'lsa, buni sezadi. Ushbu muammoni hal qilish uchun siz analogdan raqamli konvertorga (ADC) foydalanishingiz mumkin yoki uning o'rniga nisbatan arzon kondansatör ishlatishingiz mumkin.

1 -qadam: Sizga nima kerak

Sizga nima kerak bo'ladi
Sizga nima kerak bo'ladi
Sizga nima kerak bo'ladi
Sizga nima kerak bo'ladi
Sizga nima kerak bo'ladi
Sizga nima kerak bo'ladi
Sizga nima kerak bo'ladi
Sizga nima kerak bo'ladi

- Raspbian o'rnatilgan RaspberryPi. Shuningdek, siz monitorga, sichqoncha va klaviatura yordamida yoki masofaviy ish stoli orqali Pi -ga kirishingiz kerak bo'ladi. Siz Raspberry Pi -ning har qanday modelidan foydalanishingiz mumkin. Agar sizda Pi Zero modellaridan biri bo'lsa, siz GPIO portiga bir nechta bosh pinlarini lehimlashingiz mumkin.

- nurga bog'liq rezistor (LDR yoki fotorezistor sifatida ham tanilgan)

- 1 uF seramika kondansatkichi

- Lehimsiz prototipli jadval

- Erkak -Ayol jumper simlari

2 -qadam: O'z davrangizni yarating

O'z davrangizni yarating
O'z davrangizni yarating
O'z davrangizni yarating
O'z davrangizni yarating

Yuqoridagi sxemani o'z taxtangizga o'rnating, uning tarkibiy qismlarining hech biri tegmasligiga ishonch hosil qiling. Yorug'likka bog'liq rezistor va seramika kondansatör kutupluluğa ega emas, demak manfiy va musbat tokni simga ulash mumkin. Shunday qilib, ushbu komponentlar sizning elektron tizimingizga qanday ulanganligi haqida tashvishlanishingiz shart emas.

O'chirish sxemasini tekshirgandan so'ng, yuqoridagi diagramaga amal qilib, o'tish kabellarini Raspberry Pi GPIO pinlariga yaxshilab ulang.

3 -qadam: Ma'lumotlaringizni o'qish va qayd qilish uchun Python skriptini yarating

Ma'lumotlaringizni o'qish va qayd qilish uchun Python skriptini yarating
Ma'lumotlaringizni o'qish va qayd qilish uchun Python skriptini yarating

Raspberry Pi -da IDLE -ni oching (Menyu> Dasturlash> Python 2 (IDLE)) va yangi loyihani oching (Fayl> Yangi fayl). Keyin quyidagilarni kiriting:

RPi. GPIO -ni GPIO sifatida import qilish

import vaqti import datetime loginterval = 60 #log oralig'i soniyalarda savefilename = "lightlevels.txt" SensorPin = 17 TriggerPin = 27

GPIO.setmode (GPIO. BCM)

cap = 0.000001 #1uf adj = 2.130620985

def o'lchov qarshiligi (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) boshlanish vaqti = time.time () endtime = time.time () while (GPIO.input (mpin) == GPIO. LOW): endtime = time.time () end time-starttime def writeline (txt, fn): f = open (fn, 'a') f.write (txt+'\ n') f.close () i = 0 t = 0 while True: stime = time.time () a (1, 11) oralig'ida: res = (o'lchov qarshiligi (SensorPin, TriggerPin)/cap)*adj i = i+1 t = t+res a == 10: t = t/i print (t) writeline (str (datetime.datetime.now ())+","+str (t), savefilename) i = 0 t = 0 esa stime+loginterval> time.time (): #logtime tugaguncha kuting vaqt o'tdi. uxlash (0.0001)

Hujjatlar papkasida loyihangizni datalogger.py (Fayl> Saqlash sifatida) sifatida saqlang.

Endi terminalni oching (Menyu> Aksessuarlar> Terminal) va quyidagi buyruqni kiriting:

python datalogger.py

Skript "lightlevels.txt" nomli matnli faylni yaratadi va har 60 soniyada yangilanadi. Siz bu fayl nomini 6 -qatorda o'zgartirishingiz mumkin. Shuningdek, 5 -qatorni o'zgartirib, ma'lumotlar katalogining yangilanish tezligini sozlashingiz mumkin.

Tavsiya: