Menguji Sensor Suhu DS18B20 pada Raspberry Pi
Menguji Sensor Suhu DS18B20 pada Raspberry Pi
- sudo modprobe w1-gpio
- sudo modprobe w1-therm
- cd /sys/bus/w1/devices
- ls
- cd 28-xxxx (ganti dengan nomor serial yang muncul)
- cat w1_slave
Antarmuka 1-Wire bisa agak tidak stabil, tetapi secara andal melaporkan apakah nilai suhu tersedia. Karena sensor mengekspos datanya sebagai berkas teks sederhana, yang perlu Anda lakukan adalah membaca berkas tersebut.
Baris pertama diakhiri dengan YES atau NO. Jika YES, baris kedua berisi suhu dalam seribu bagian derajat Celsius. Dalam contoh di atas, sensor melaporkan 20.687 °C dan kemudian 26.125 °C.
Ketika beberapa sensor terhubung, masing-masing akan muncul sebagai direktori 28-xxxx terpisah. Colokkan satu per satu, catat direktori yang dibuat, dan beri label sensor untuk referensi di masa depan.
Bekerja dengan Sensor Ultrasonik
Sensor ultrasonik HC-SR04 diberi daya dari rel +5 V Pi (pin 2). Pin trigger (GPIO 23) memulai pengukuran, sementara pin echo mengembalikan pulsa tinggi yang lebarnya sesuai dengan jarak perjalanan balik. Karena pin GPIO hanya dapat menahan 3.3 V, pembagi resistor melindungi garis echo.
Contoh Kode
#!/usr/bin/python # Import pustaka Python yang diperlukan import time import RPi.GPIO as GPIO # Gunakan referensi GPIO BCM daripada nomor pin fisik GPIO.setmode(GPIO.BCM) # Definisikan GPIO yang akan digunakan pada Pi GPIO_TRIGGER = 23 GPIO_ECHO = 24 print("Ultrasonic Measurement") # Atur pin sebagai output dan input GPIO.setup(GPIO_TRIGGER,GPIO.OUT) # Trigger GPIO.setup(GPIO_ECHO,GPIO.IN) # Echo # Atur trigger ke False (Low) GPIO.output(GPIO_TRIGGER, False) # Biarkan modul menenang time.sleep(0.5) # Kirim pulsa 10us untuk memicu GPIO.output(GPIO_TRIGGER, True) time.sleep(0.00001) GPIO.output(GPIO_TRIGGER, False) start = time.time() while GPIO.input(GPIO_ECHO)==0: start = time.time() while GPIO.input(GPIO_ECHO)==1: stop = time.time() # Hitung panjang pulsa elapsed = stop-start # Jarak yang ditempuh pulsa dalam waktu tersebut adalah waktu dikalikan kecepatan suara (cm/s) distance = elapsed * 34000 # Itu adalah jarak perjalanan balik jadi bagi nilai dengan dua distance = distance / 2 print("Distance : %.1f" % distance) # Atur ulang pengaturan GPIO GPIO.cleanup()
Peluncur Rok Berbasis Ultrasonik
Skrip berikut menggunakan sensor ultrasonik untuk memicu peluncuran roket ketika objek lebih dekat dari jarak yang ditentukan oleh pengguna. Ini juga menangkap gambar dan menyalakan LED sebagai indikator visual.
#!/usr/bin/python # Penulis : Julian dan Kyle Milligan # Tanggal : 09/01/2013 # Import pustaka Python yang diperlukan import time import RPi.GPIO as GPIO from subprocess import call # Gunakan referensi GPIO BCM daripada nomor pin fisik GPIO.setmode(GPIO.BCM) # Definisikan GPIO yang akan digunakan pada Pi GPIO_TRIGGER = 23 GPIO_ECHO = 24 GPIO_FIRE = 4 print("Ultrasonic Measurement") # Atur pin sebagai output dan input GPIO.setup(GPIO_TRIGGER,GPIO.OUT) # Trigger GPIO.setup(GPIO_ECHO,GPIO.IN) # Echo GPIO.setup(GPIO_FIRE,GPIO.OUT) # Fire # Atur trigger ke False (Low) GPIO.output(GPIO_TRIGGER, False) # Biarkan modul menenang time.sleep(0.5) # Set jarak untuk memicu setdistance = input('Masukkan nilai untuk memicu kamera:') while True: time.sleep(0.1) GPIO.output(GPIO_TRIGGER, True) time.sleep(0.00001) GPIO.output(GPIO_TRIGGER, False) start = time.time() s = start quit = 0 while quit == 0: quit = GPIO.input(GPIO_ECHO) start = time.time() if start - s > 0.1: quit = 1 if start - s < 0.1: while GPIO.input(GPIO_ECHO) == 1: stop = time.time() elapsed = stop-start distance = elapsed * 34300 distance = distance / 2 print("Distance : %.1f" % distance) if distance < setdistance: call(["raspistill -o image.jpg"], shell=True) # ambil gambar dengan Pi Camera print("Fire") GPIO.output(GPIO_FIRE, True) # Nyalakan pin GPIO 7 peluncurkan roket # Atur ulang pengaturan GPIO GPIO.cleanup()
Streaming Webcam dari Raspberry Pi
Untuk streaming video dari webcam USB, pastikan Pi Anda terhubung ke jaringan. Pasang webcam terbaru dan ikuti panduan resmi untuk pengaturan streaming MJPEG. Untuk penjelasan yang lebih mendalam, lihat dokumentasi pengujian sensor DS18B20.