Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Ting vi kommer til å trenge:
- Raspberry Pi med Raspbian
- Berøringssensor fra adafruit
- Strømkilde (batteri/likestrøm)
- Ethernet eller WiFi for Raspberry Pi
- En annen datamaskin
Trinn 1: Konfigurere Raspberry Pi -maskinvaren vår
Koble først berøringssensoren til GPIO -pins på Raspberry Pi. Bruk noen fleksible kabler
Identifiser 3 pins på sensoren vår:
- GND - koble til jordet pinne
- VCC - kobles til 5V pin
- SIG - koble til en signalpinne
Vi bruker 5V, bakken og GPIO 18 på bringebær pi i dette eksemplet.
Trinn 2: Sette opp miljøet vårt på Raspberry Pi
Skaff IP -adressen til bringebær Pi.
Koble deretter til bringebær pi ved hjelp av ssh:
ssh brukernavn@ipaddress
skriv deretter inn passordet vårt.
Når vi er inne, installerer du apache2 som vår webserver ved å skrive inn:
sudo apt-get install apache2
Trinn 3: Design et stykke Python -kode for å lese inndata fra vår sensor
Design
I vår eksempelkode bruker vi et par forskjellige kommandoer.
For å indikere at vi er fornøyde, gjør vi to lange trykk
For å indikere at vi er triste, gjør vi ett kort trykk og ett langt trykk
For å indikere at vi er forvirret, gjør vi ett kort trykk, vent et slag og deretter to korte trykk. For å indikere at vi er fornøyde, gjør vi ett kort trykk, ett kort mellomrom og et langt trykk
For å indikere at vi kjeder oss, tre korte trykk
Oversette disse til strengkommandoer: (t for kort trykk, T for langt trykk, g for kort gap, G for langt gap)
glad: TgT
trist: tgT
forvirret: tGtgt
lei: tgtgt
Deretter får vi koden til å sende ut vårt nåværende humør til en nettleservennlig html-fil for visning.
Kode
importer RPi. GPIO som GPIOimporttid
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 ("Sad") 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")
def humør (humør):
file = open ("index.html", "w") html = """
Bærbar stemningsreporter
Hei, mitt siste humør er
{}
"""
file.write (html.format (humør))
mens (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 annet: if gap_duration 200: current_cmd = current_cmd +" T "else: current_cmd = current_cmd +" t "touch_duration = 0 cmd ()
GPIO.cleanup ()
Oppsett for å fungere med vår webserver
skriv inn eller last opp python -filen ovenfor til vår webserverplassering, som er standard til/var/www/html
cd/var/www/html
sudo nano touch.py
Skriv deretter inn koden ovenfor
Trinn 4: Start serveren vår for å se den i bruk
cd/var/www/html
sudo python touch.py
Skriv deretter inn IP -adressen for vår Raspberry Pi, så skulle vi se vår stemningsreporter jobbe!
Prøv forskjellige typer berøringskommandoer, og siden bør oppdateres automatisk for å gjenspeile det!