Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Stvari, ki jih bomo potrebovali:
- Raspberry Pi z Raspbian
- Senzor na dotik iz adafruta
- Vir napajanja (baterija/enosmerni tok)
- Ethernet ali WiFi za Raspberry Pi
- Še en računalnik
1. korak: Nastavitev strojne opreme Raspberry Pi
Najprej povežite naš senzor dotika z zatiči GPIO na naši Raspberry Pi. Uporabite prilagodljive kable
Prepoznajte 3 zatiče na našem senzorju:
- GND - priključite na ozemljitveni zatič
- VCC - priključite na 5V pin
- SIG - povežite se s signalnim zatičem
V tem primeru bomo uporabili 5V, maso in GPIO 18 na našem maline pi.
2. korak: Nastavitev našega okolja na Raspberry Pi
Pridobite naslov IP naše maline Pi.
Nato se povežite z malinovim pi s pomočjo ssh:
ssh uporabniško ime@ipaddress
nato vnesite naše geslo.
Ko smo notri, namestite apache2 kot naš spletni strežnik tako, da vnesete:
sudo apt-get namestite apache2
3. korak: Oblikujte del kode Python za branje vnosa iz našega senzorja
Oblikovanje
V našem primeru kode uporabljamo nekaj različnih ukazov.
Da bi pokazali, da smo zadovoljni, naredimo 2 dolgi stiski
Če želimo pokazati, da smo žalostni, naredimo en kratek dotik in en dolg pritisk
Da bi pokazali, da smo zmedeni, naredimo en kratek dotik, počakamo malo, nato pa 2 kratka dotika. Če želimo pokazati, da smo zadovoljni, naredimo en kratek dotik, en kratek razmik in en dolg pritisk
Če želimo pokazati, da nam je dolgčas, naredimo 3 kratke tapke
Prevajanje teh v ukaze niza: (t za kratek dotik, T za dolg pritisk, g za kratek razmik, G za dolg razmik)
vesel: TgT
žalostno: tgT
zmeden: tGtgt
dolgčas: tgtgt
Potem bo naša koda prikazala naše trenutno razpoloženje v brskalniku prijazno datoteko html za serviranje.
Koda
uvozite RPi. GPIO kot GPIOimportni čas
GPIO.cleanup ()
GPIO.setmode (GPIO. BCM) GPIO.setup (18, GPIO. IN)
count_count = 0
touch_state = 0 touch_duration = 0 gap_duration = 0 current_cmd = ""
def cmd ():
globalni current_cmd če current_cmd [-3:] == "TgT": current_cmd = "" razpoloženje ("Žalostno") če je trenutno_cmd [-3:] == "tgT": current_cmd = "" razpoloženje ("Veselo") če je trenutno_cmd [-5:] == "tGtgt": current_cmd = "" razpoloženje ("zmedeno"), če current_cmd [-5:] == "tgtgt": current_cmd = "" razpoloženje ("dolgčas")
def razpoloženje (razpoloženje):
datoteka = odprta ("index.html", "w") html = """
Prenosni poročevalec razpoloženja
Hej, moje zadnje razpoloženje je takšno
{}
"""
file.write (html.format (razpoloženje))
medtem ko (1):
time.sleep (0,001) if (GPIO.input (18)): if touch_state == 0: if gap_duration> 2000: gap_duration = 0 if gap_duration> 200: current_cmd = current_cmd + "G" else: current_cmd = current_cmd + "g "gap_duration = 0 touch_state = 1 touch_count = touch_count + 1 if touch_state == 1: touch_duration = touch_duration + 1 else: if gap_duration 200: current_cmd = current_cmd +" T "else: current_cmd = current_cmd +" t "touch_duration = 0 cmd ()
GPIO.cleanup ()
Nastavite za delo z našim spletnim strežnikom
vnesite ali naložite zgornjo datoteko python na naš spletni strežnik, ki je privzeto nastavljen na/var/www/html
cd/var/www/html
sudo nano touch.py
Nato vnesite zgornjo kodo
4. korak: Zaženite naš strežnik in si oglejte njegovo delovanje
cd/var/www/html
sudo python touch.py
Nato vnesite naslov IP za naš Raspberry Pi, potem bi morali videti, da naš poročevalec razpoloženja deluje!
Preizkusite različne vrste ukazov na dotik in stran se mora samodejno osvežiti, da to odraža!