Obsah:

IoT - Přenosný reportér nálady: 4 kroky
IoT - Přenosný reportér nálady: 4 kroky

Video: IoT - Přenosný reportér nálady: 4 kroky

Video: IoT - Přenosný reportér nálady: 4 kroky
Video: CO JSEM NESNÁŠELA JAKO MALÁ 2024, Červenec
Anonim
IoT - přenosný reportér nálady
IoT - přenosný reportér nálady

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

Nastavení hardwaru Raspberry Pi
Nastavení hardwaru Raspberry Pi
Nastavení hardwaru Raspberry Pi
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

Nastavení prostředí na Raspberry Pi
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

Navrhněte kousek kódu Pythonu pro čtení vstupu z našeho senzoru
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

Spusťte náš server, abyste to viděli v akci!
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!

Doporučuje: