Академический Документы
Профессиональный Документы
Культура Документы
Attribution-NonCommercial-NoDerivs
CC BY-NC-ND
Esti liber sa distribui acest document prin orice mijloace consideri (email, publicare pe website / blog, printare,
sau orice alt mijloc), atat timp cat nu aduci nici un fel de modificari acestuia. Codul sursa din acest document
poate fi utilizat in orice fel de scop, de natura comerciala sau nu, fara nici un fel de limitari.
Raspberry PI si senzorul de alcool brick
Raspberry PI poate citi foarte usor senzori de tip biometric multumita placii SensorShield.
Senzorii biometrici detecteaza si masoara cantitatea de alcool sau fum, gaze, monoxid de carbon, metan.
Semnalul senzorului este de tip analogic iar placa SensorShield ii ofera posibilitatea placii Raspberry PI
de a interpreta acest tip de semnal.
In acest tutorial vei descoperi cum se poate conecta un senzor de alcool (analogic) la placa
Raspberry PI. Totodata, in configuratia actuala, se pot conecta si senzorii de la adresa urmatoare asa ca
nu vei fi limitat doar la un anumit tip de senzor. Se pot conecta foarte usor senzori de fum si gaze,
GPL, metan, monoxid de carbon sau senzori optici pentru praf.
http://www.robofun.ro/senzori/biometric
Raspberry PI.
Senzor de alcool brick.
SensorShield V2.
Breadboard.
Fire pentru conexiuni.
Alimentator 5V (pentru Raspberry PI).
Alimentator 5V @ 1.2A breadboard (pentru senzorul de alcool brick).
http://www.robofun.ro/forum
Tabelul conexiunilor.
Daca ai observat din tabelul de conexiuni, senzorul de alcool brick se alimenteaza dintr-un
alimentator de breadboard 5V (nu se alimenteaza direct din Raspberry PI). Intre acest alimentator si
SensorShield trebuie sa existe masa comuna (ultima conexiune din tabel).
A nu se confunda alimentatorul breadboard cu alimentatorul placii Raspberry PI. Alimentatorul
breadboard arata ca in imagine mai jos si se poate identifica prin conectorul de alimentare (2 pini, negru
inseamna Gnd si alb inseamna Vcc).
http://www.robofun.ro/forum
Dupa realizarea conexiunilor vei obtine ceva asemanator ca in imaginea de mai jos.
http://www.robofun.ro/forum
Cum functioneaza ?
Vei citi concentratia de alcool detectata de senzor printr-o aplicatie Python. Daca se depaseste
un anumit prag se afiseaza un avertizment.
Imediat cum ai pornit aplicatia in executie, in terminal se vor printa valorile analogice ale
senzorului de alcool brick.
Codul sursa:
http://www.robofun.ro/forum
#!/usr/bin/env python
import time
import os
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.output(clockpin, False)
GPIO.output(cspin, False)
commandout = adcnum
commandout |= 0x18
commandout <<= 3
for i in range(5):
if (commandout & 0x80):
GPIO.output(mosipin, True)
else:
GPIO.output(mosipin, False)
commandout <<= 1
GPIO.output(clockpin, True)
GPIO.output(clockpin, False)
adcout = 0
for i in range(12):
GPIO.output(clockpin, True)
GPIO.output(clockpin, False)
adcout <<= 1
if (GPIO.input(misopin)):
adcout |= 0x1
GPIO.output(cspin, True)
adcout >>= 1
return adcout
SPICLK = 18
SPIMISO = 23
SPIMOSI = 24
SPICS = 25
http://www.robofun.ro/forum
GPIO.setup(SPIMOSI, GPIO.OUT)
GPIO.setup(SPIMISO, GPIO.IN)
GPIO.setup(SPICLK, GPIO.OUT)
GPIO.setup(SPICS, GPIO.OUT)
prag = 700
while True:
value = readadc(0, SPICLK, SPIMOSI, SPIMISO, SPICS)
print "Concentratie gaz: " + str(value)
if value > prag:
print "Nivelul de prag a fost depasit!"
time.sleep(0.5)
Este posibil sa-ti lipseasca o librarie sau extensie python. Iti recomand sa parcurgi urmatorii
pasi:
1. Instaleaza python:
http://www.robofun.ro/forum