Indholdsfortegnelse:

IoT - Portable Mood Reporter: 4 trin
IoT - Portable Mood Reporter: 4 trin

Video: IoT - Portable Mood Reporter: 4 trin

Video: IoT - Portable Mood Reporter: 4 trin
Video: Internet Of Things (IoT) In 10 Minutes | What Is IoT And How It Works | Great Learning 2024, November
Anonim
IoT - Portable Mood Reporter
IoT - Portable Mood Reporter

Ting vi får brug for:

  • Raspberry Pi med Raspbian
  • Berøringssensor fra adafruit
  • Strømkilde (batteri/DC)
  • Ethernet eller WiFi til Raspberry Pi
  • En anden computer

Trin 1: Opsætning af vores Raspberry Pi -hardware

Opsætning af vores Raspberry Pi -hardware
Opsætning af vores Raspberry Pi -hardware
Opsætning af vores Raspberry Pi -hardware
Opsætning af vores Raspberry Pi -hardware

Tilslut først vores berøringssensor til GPIO -ben på vores Raspberry Pi. Brug nogle fleksible kabler

Identificer 3 ben på vores sensor:

  • GND - forbind til jordstift
  • VCC - tilsluttet 5V pin
  • SIG - tilslut til en signalpind

Vi bruger 5V, jorden og GPIO 18 på vores hindbær pi i dette eksempel.

Trin 2: Opsætning af vores miljø på Raspberry Pi

Opsætning af vores miljø på Raspberry Pi
Opsætning af vores miljø på Raspberry Pi

Få IP -adressen på vores hindbær Pi.

Tilslut derefter til vores hindbær pi ved hjælp af ssh:

ssh brugernavn@ipaddress

indtast derefter vores adgangskode.

Når vi er inde, skal du installere apache2 som vores webserver ved at indtaste:

sudo apt-get install apache2

Trin 3: Design et stykke Python -kode for at læse input fra vores sensor

Design et stykke Python -kode for at læse input fra vores sensor
Design et stykke Python -kode for at læse input fra vores sensor

Design

I vores eksempelkode bruger vi et par forskellige kommandoer.

For at indikere, at vi er glade, laver vi to lange tryk

For at angive, at vi er kede af det, trykker vi på et kort tryk og et langt tryk

For at angive, at vi er forvirrede, laver vi et kort tryk, venter et slag og derefter to korte tryk. For at angive, at vi er glade, laver vi et kort tryk, et kort mellemrum og et langt tryk

For at indikere, at vi keder os, har vi tre korte tryk

Oversætter disse til strengkommandoer: (t for kort tryk, T for langt tryk, g for kort mellemrum, G for langt mellemrum)

glad: TgT

trist: tgT

forvirret: tGtgt

keder sig: tgtgt

Så får vi vores kode til at udsende vores nuværende humør til en browservenlig html-fil til 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

Hej, mit seneste 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 else: if gap_duration 200: current_cmd = current_cmd +" T "else: current_cmd = current_cmd +" t "touch_duration = 0 cmd ()

GPIO.cleanup ()

Opsætning til at fungere med vores webserver

skriv eller upload ovenstående python -fil til vores webserverplacering, som er standard til/var/www/html

cd/var/www/html

sudo nano touch.py

Indtast derefter koden ovenfor

Trin 4: Start vores server for at se den i aktion

Start vores server for at se den i aktion!
Start vores server for at se den i aktion!

cd/var/www/html

sudo python touch.py

Indtast derefter IP -adressen til vores Raspberry Pi, så skulle vi se vores humørreporter arbejde!

Prøv forskellige typer berøringskommandoer, og siden skal automatisk opdateres for at afspejle det!

Anbefalede: