Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Lucruri de care vom avea nevoie:
- Raspberry Pi cu Raspbian
- Senzor tactil de la adafruit
- Sursa de alimentare (baterie / DC)
- Ethernet sau WiFi pentru Raspberry Pi
- Un alt computer
Pasul 1: Configurarea hardware-ului nostru Raspberry Pi
Mai întâi, conectați senzorul nostru tactil la pinii GPIO de pe Raspberry Pi. Folosiți câteva cabluri flexibile
Identificați 3 pini pe senzorul nostru:
- GND - conectați la pinul de masă
- VCC - conectat la pinul de 5V
- SIG - conectați-vă la un pin
În acest exemplu, vom folosi 5V, sol și GPIO 18 pe raspberry pi.
Pasul 2: Configurarea mediului nostru pe Raspberry Pi
Obțineți adresa IP a raspberry Pi.
Apoi conectați-vă la raspberry pi folosind ssh:
ssh nume de utilizator @ ipaddress
apoi introduceți parola noastră.
Odată ce ne aflăm, apoi instalăm apache2 ca server web prin introducerea:
sudo apt-get install apache2
Pasul 3: Proiectați o bucată de cod Python pentru a citi intrarea de la senzorul nostru
Proiecta
În exemplul nostru de cod, folosim câteva comenzi diferite.
Pentru a indica faptul că suntem fericiți, facem 2 apăsări lungi
Pentru a indica faptul că suntem triști, facem o atingere scurtă și o apăsare lungă
Pentru a indica faptul că suntem confuzi, facem o atingere scurtă, așteptăm o bătaie, apoi două atingeri scurte. Pentru a indica faptul că suntem mulțumiți, facem o singură atingere scurtă, o distanță scurtă și o apăsare lungă
Pentru a indica faptul că ne-am plictisit, avem 3 atingeri scurte
Traducerea acestora în comenzi de șir: (t pentru atingere scurtă, T pentru apăsare lungă, g pentru decalaj scurt, G pentru decalaj lung)
fericit: TgT
trist: tgT
confuz: tGtgt
plictisit: tgtgt
Apoi, vom avea codul nostru care va afișa starea actuală într-un fișier html prietenos cu browserul pentru difuzare.
Cod
import RPi. GPIO ca GPIOimport timp
GPIO.cleanup ()
GPIO.setmode (GPIO. BCM) GPIO.setup (18, GPIO. IN)
touch_count = 0
touch_state = 0 touch_duration = 0 gap_duration = 0 current_cmd = ""
def cmd ():
global current_cmd if current_cmd [-3:] == "TgT": current_cmd = "" mood ("Trist") if current_cmd [-3:] == "tgT": current_cmd = "" mood ("Happy") if current_cmd [-5:] == "tGtgt": current_cmd = "" mood ("Confused") if current_cmd [-5:] == "tgtgt": current_cmd = "" mood ("Bored")
starea de spirit (starea de spirit):
file = open ("index.html", "w") html = """
Portabil Mood Reporter
Hei, cea mai recentă dispoziție a mea este
{}
"""
file.write (html.format (dispoziție))
în timp ce (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 ()
Configurare pentru a lucra cu serverul nostru web
tastați sau încărcați fișierul python de mai sus în locația serverului nostru web, care este implicit la / var / www / html
cd / var / www / html
sudo nano touch.py
Apoi introduceți codul de mai sus
Pasul 4: Porniți serverul nostru pentru a-l vedea în acțiune
cd / var / www / html
sudo python touch.py
Apoi introduceți adresa IP pentru Raspberry Pi, apoi ar trebui să-l vedem pe reporterul nostru de stare de spirit!
Încercați diferite tipuri de comenzi tactile, iar pagina ar trebui să se actualizeze automat pentru a reflecta asta!