Inhoudsopgave:

IoT - Draagbare Mood Reporter: 4 stappen
IoT - Draagbare Mood Reporter: 4 stappen

Video: IoT - Draagbare Mood Reporter: 4 stappen

Video: IoT - Draagbare Mood Reporter: 4 stappen
Video: Полный курс Redux Toolkit + RTK Query для начинающих | Редакс за 2 часа! 2024, Juli-
Anonim
IoT - Draagbare Mood Reporter
IoT - Draagbare Mood Reporter

Dingen die we nodig hebben:

  • Raspberry Pi met Raspbian
  • Aanraaksensor van adafruit
  • Stroombron (batterij/DC)
  • Ethernet of WiFi voor Raspberry Pi
  • Een andere computer

Stap 1: Onze Raspberry Pi-hardware instellen

Onze Raspberry Pi-hardware instellen
Onze Raspberry Pi-hardware instellen
Onze Raspberry Pi-hardware instellen
Onze Raspberry Pi-hardware instellen

Verbind eerst onze aanraaksensor met GPIO-pinnen op onze Raspberry Pi. Gebruik wat flexibele kabels

Identificeer 3 pinnen op onze sensor:

  • GND - verbinden met aardingspin
  • VCC - verbind met 5V pin
  • SIG - aansluiten op een signaalpin

In dit voorbeeld gebruiken we de 5V, ground en GPIO 18 op onze Raspberry Pi.

Stap 2: Onze omgeving instellen op de Raspberry Pi

Onze omgeving instellen op de Raspberry Pi
Onze omgeving instellen op de Raspberry Pi

Verkrijg het IP-adres van onze Raspberry Pi.

Maak vervolgens verbinding met onze raspberry pi met behulp van ssh:

ssh gebruikersnaam@ipad

typ dan ons wachtwoord in.

Als we eenmaal binnen zijn, installeer dan apache2 als onze webserver door in te typen:

sudo apt-get install apache2

Stap 3: Ontwerp een stukje Python-code om de invoer van onze sensor te lezen

Ontwerp een stukje Python-code om invoer van onze sensor te lezen
Ontwerp een stukje Python-code om invoer van onze sensor te lezen

Ontwerp

In onze voorbeeldcode gebruiken we een aantal verschillende opdrachten.

Om aan te geven dat we blij zijn, doen we 2 keer lang drukken

Om aan te geven dat we verdrietig zijn, doen we één keer kort tikken en één keer lang drukken

Om aan te geven dat we in de war zijn, doen we een korte tik, wachten een tel en dan 2 korte tikken. Om aan te geven dat we tevreden zijn, doen we een korte tik, een korte opening en een lange druk

Om aan te geven dat we ons vervelen, tikken we 3 keer kort

Deze vertalen naar string-commando's: (t voor korte tik, T voor lang indrukken, g voor korte opening, G voor lange opening)

blij: TgT

verdrietig: tgT

verward: tGtgt

verveeld: tgtgt

Dan zullen we onze code onze huidige stemming laten uitvoeren in een browservriendelijk html-bestand om te serveren.

Code

importeer RPi. GPIO als GPIOimporttijd

GPIO.opschonen()

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("Verward") if current_cmd[-5:] == "tgtgt": current_cmd = "" mood("Verveeld")

def mood (stemming):

file = open("index.html", "w") html = """

Draagbare Mood Reporter

Hé, mijn meest recente stemming is

{}

"""

file.write(html.format(mood))

terwijl(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.opschonen()

Instellen om met onze webserver te werken

typ of upload het bovenstaande python-bestand naar onze webserverlocatie, die standaard is ingesteld op /var/www/html

cd /var/www/html

sudo nano touch.py

Typ dan de bovenstaande code in

Stap 4: Start onze server om hem in actie te zien

Start onze server om hem in actie te zien!
Start onze server om hem in actie te zien!

cd /var/www/html

sudo python touch.py

Typ dan het IP-adres van onze Raspberry Pi in, dan zouden we onze mood reporter aan het werk moeten zien!

Probeer verschillende soorten aanraakcommando's, en de pagina zou automatisch moeten vernieuwen om dat weer te geven!

Aanbevolen: