Uji sensor DS18B20
- sudo modprobe w1-gpio
- sudo modprobe w1-therm
- cd /sys/bus/w1/devices
- l
- cd 28-xxxx (ubah ini agar sesuai dengan nomor seri yang muncul)
- kucing w1_slave
Antarmukanya sedikit tidak dapat diandalkan, tetapi untungnya ini memberi tahu kita jika ada suhu yang valid untuk dibaca. Ini seperti file, jadi yang harus kita lakukan hanyalah membaca
Responsnya akan memiliki YA atau TIDAK di akhir baris pertama. Jika ya, maka suhu akan berada di akhir baris kedua, dalam 1/000 derajat C. Jadi, pada contoh di atas, suhu sebenarnya dibaca sebagai 20,687 dan kemudian 26,125 derajat C.
Jika Anda memiliki lebih dari satu Sensor yang terhubung, Anda akan melihat beberapa 28-xxx file. Masing-masing akan memiliki nomor seri unik sehingga Anda mungkin ingin mencolokkannya satu per satu, melihat file apa yang dibuat, dan memberi label pada sensor!
Sensor ini didukung oleh rel +5v dari pin 2 dari Pi. Pin pemicu berasal dari pin 16 (Gpio23) dan ini memberi tahu sensor untuk mulai mengukur. Pin gema biasanya rendah sampai sensor mengirimkan output kemudian berjalan +5v untuk waktu yang dibutuhkan sensor untuk mengukur jarak. Inilah alasan resistor karena GPIO hanya dapat menangani +3.3v.
Diagram
Kode
#!/usr/bin/python
# Impor pustaka Python yang diperlukan
waktu impor
impor RPi.GPIO sebagai GPIO
# Gunakan referensi BCM GPIO
# sebagai ganti nomor pin fisik
GPIO.setmode(GPIO.BCM)
#
# Tentukan 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
#
# Setel pemicu ke False (Rendah)
GPIO.output(GPIO_TRIGGER, False)
#
# Izinkan modul untuk menyelesaikan
time.sleep(0.5)
#
# Kirim 10us pulsa ke trigger
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
yang telah berlalu =stop- mulai #
# Jarak yang ditempuh pulsa dalam waktu tersebut adalah waktu
# dikalikan kecepatan suara (cm/s)
jarak =berlalu * 34000
#
# Itu jarak sana dan belakang jadi separuh nilainya
distance =distance / 2
#
print "Distance :%.1f" % distance
#
# Setel ulang pengaturan GPIO
GPIO.cleanup()
Ini adalah kode dan diagram untuk menembakkan roket trak besar menggunakan sensor ultra sonik pada Pi. Tujuannya adalah agar pod roket terpasang ke Big Trak dengan sensor di depan. Kode sederhana itu akan meminta jarak saya biasanya mengatakan 80 (8cm). Kemudian akan mencetak pengukuran setiap detik sampai ada satu di bawah 80 kemudian menembakkan roket, mengambil gambar menggunakan fungsi panggilan dan menyalakan LED. Kode ini sedang dalam proses, jadi jika Anda melihat cara untuk memperbaikinya, saya ingin mendengarnya.
Diagram dalam PDF
#!/usr/bin/python
#
#
# Penulis :Julian dan Kyle Milligan
# Tanggal :09/01/2013
# Impor pustaka Python yang diperlukan
waktu impor
impor RPi.GPIO sebagai GPIO
dari panggilan impor subproses
# Gunakan referensi BCM GPIO
# alih-alih nomor pin fisik
GPIO.setmode(GPIO.BCM)
# Tentukan GPIO yang akan digunakan pada Pi
GPIO_TRIGGER =23
GPIO_ECHO =24
GPIO_FIRE =4
#
print "Pengukuran Ultrasonik"
#
# 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
# Setel pemicu ke False (Rendah)
GPIO.output(GPIO_TRIGGER, False)
# GPIO.output (GPIO_FIRE, False)
#
# Izinkan modul untuk menyelesaikan
time.sleep(0.5)
#
# mengatur jarak ke pemicu
setdistance =input ('Silakan masukkan nilai untuk memicu kamera:')# pada layar prompt untuk menembak
sementara Benar:
time.sle ep(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( )
jika mulai - s> 0,1:
keluar =1
#
jika mulai - s <0,1:
while GPIO.input(GPIO_ECHO) ==1:
stop =time.time()
#
elapsed =stop-start
#
distance =elapsed * 34300
distance =distance / 2
#
print "Jarak :%.1f" % jarak
#
jika jarak panggil (["raspistill -o image.jpg"], shell=Benar) # mengambil gambar dengan Kamera Pi
print "Api"
GPIO.output(GPIO_FIRE,True) ## Nyalakan GPIO pin 7 tembakkan roket
#
# Reset Pengaturan GPIO
GPIO.cleanup(
Bahan
1. Raspberry Pi dengan jaringan / koneksi internet.
2. Web Cam lebih baru lebih baik
Untuk detail lebih lanjut:Uji sensor DS18B20