Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Věci, které budeme potřebovat:
- Raspberry Pi s Raspbianem
- Touch Sensor od společnosti adafruit
- Zdroj napájení (baterie/DC)
- Ethernet nebo WiFi pro Raspberry Pi
- Další počítač
Krok 1: Nastavení hardwaru Raspberry Pi
Nejprve připojte náš dotykový senzor k pinům GPIO na našem Raspberry Pi. Použijte nějaké flexibilní kabely
Identifikujte 3 piny na našem senzoru:
- GND - připojení k uzemňovacímu kolíku
- VCC - připojení na 5V pin
- SIG - připojení k pinu signel
V tomto příkladu použijeme 5V, zem a GPIO 18 na našem malinovém pi.
Krok 2: Nastavení prostředí na Raspberry Pi
Získejte IP adresu našeho Raspberry Pi.
Poté se připojte k našemu malinovému pi pomocí ssh:
ssh uživatelské jméno@ipaddress
poté zadejte naše heslo.
Jakmile jsme v, nainstalujte apache2 jako náš webový server zadáním:
sudo apt-get install apache2
Krok 3: Navrhněte kousek kódu Pythonu pro čtení vstupu z našeho senzoru
Design
V našem ukázkovém kódu používáme několik různých příkazů.
Abychom naznačili, že jsme šťastní, provedeme 2 dlouhé stisknutí
Abychom naznačili, že jsme smutní, provedeme jedno krátké klepnutí a jedno dlouhé stisknutí
Abychom naznačili, že jsme zmatení, provedeme jedno krátké poklepání, počkáme a pak 2 krátká klepnutí. Abychom naznačili, že jsme šťastní, provedeme jedno krátké klepnutí, jednu krátkou mezeru a jedno dlouhé stisknutí
Abychom naznačili, že se nudíme, provedeme 3 krátká klepnutí
Jejich překlad do řetězcových příkazů: (t pro krátké klepnutí, T pro dlouhé stisknutí, g pro krátkou mezeru, G pro dlouhou mezeru)
šťastný: TgT
smutné: tgT
zmatený: tGtgt
znuděný: tgtgt
Poté necháme náš kód vygenerovat naši aktuální náladu do html souboru vhodného pro prohlížeč pro poskytování.
Kód
importovat RPi. GPIO jako čas GPIOimportu
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 = "" nálada ("Confused") if current_cmd [-5:] == "tgtgt": current_cmd = "" nálada ("znuděný")
def nálada (nálada):
soubor = otevřený ("index.html", "w") html = """
Přenosný reportér nálady
Hej, moje poslední nálada je
{}
"""
file.write (html.format (nálada))
zatímco (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 ()
Nastavení pro práci s naším webovým serverem
zadejte nebo nahrajte výše uvedený soubor pythonu do umístění našeho webového serveru, který je standardně nastaven na/var/www/html
cd/var/www/html
sudo nano touch.py
Poté zadejte výše uvedený kód
Krok 4: Spusťte náš server, abyste to viděli v akci
cd/var/www/html
sudo python touch.py
Poté zadejte IP adresu našeho Raspberry Pi, pak bychom měli vidět, jak náš reportér nálad pracuje!
Vyzkoušejte různé typy dotykových příkazů a stránka by se měla automaticky aktualizovat, aby to odrážela!