RPi-noll IoT händelse indikator / Color lampa (6 / 7 steg)
Steg 6: Projektet programvara
Jag använde två program, ett Node.js processen talar till en underordnad process via sin stdin -dataström.
Detta är så de kan var och en gör vad de gör bäst och fungera som oberoende processer i sin egen takt.
Här är vad jag gjorde:
Men du behöver inte, eftersom jag har gett en tjära-gzip-filen som innehåller det resulterande filen-trädet.
NodeJS serversidan setup:
CD ~
mkdir node_rgb
CD node_rgb
mkdir offentliga
sätta "index.html" och "style.css" i den "~ / node_rgb/offentliga ' katalog
Lägg "rgbDriver.c" och "rgb_main.js" i den "~ / node_rgb" Katalog
Kompilera/bygga c processen "rgbDriver":
CD ~/node_rgb
CC -o rgbDriver rgbDriver.c - lwiringPi - lpthread
Ladda ner och expandera likvärdighet
Att ladda ner node_rgb.tgz (nedan) till ditt Pi-noll i din hemkatalog (~ pi) du kan göra en av 3 följande:
- Hämta från webbläsaren i din Pi-noll GUI
Flytta filen till ~pi/ - I ett terminalfönster ansluten till du Pi-noll:
CD ~ pi
wgetMV FZBF9BDIL6VBHKF.tgz rgb_node.tgz
- Ladda ner från en webbläsare på datorn.
Använda WinSCP och kopiera den till den ~ pi katalog på Pi-noll
Efter att ha utfört #1 2 eller 3 ovan...
CD ~
tjära - xzvf node_rgb.tgz
träd node_rgb
...
node_rgb < br > ├── offentliga
│ ├── Dow_Jones_Index.html
│ ├── index.html
│ └── style.css
├── rgbDriver
├── rgbDriver.c
├── rgb_main.js
├── start_rgb
├── kill_rgb < br >
└── track_dji
Den resulterande körbara (från ovan) 'rgbDriver' kan användas oberoende av Node.js gränssnitt processen.
Kontrollera att drivrutinen och hårdvaran arbetar genom feed uppsättningar av tre värden (mellan 0-255), separerade med mellanslag, till föraren. Som "echo 255 0 0 |. / rgbDriver" för rött eller "echo 0 255 0 |. / rgbDriver" för grönt. Observera att den ". /" berättar OS att hitta vårt program "rgbDriver" i den aktuella katalogen. När du kör en ^ c (cntl-c) för att stoppa föraren led får eller får inte ha kvar. Alternativt kan du interaktivt mata sina värden. Prova att skriva dessa rader en efter den andra från kommandoraden, och titta på lampan.
. / rgbDriver
0 255 0
100 0 100
255 255 0
... osv...
^ c
Vara säker på att du inte har 2 av dessa processer som löper parallellt.
För att starta programvaran applicering sviten, inklusive Node.js servern använda detta kommando:
sudo nod rgb_main.js
Sedan använda cntl-c när du vill stoppa Node.js.
Starta den med
sudo nod rgb_main.js &
att det körs i ryggen marken, men då du måste använda en "sudo kill -9 pid" kommando för att stoppa den. Om kommandot ser alien till dig, sedan granska utdata från dessa kommandon: "man döda" & 'man sudo'.
Använd en webbläsare, på skrivbordet, tablet eller telefon som är ansluten till det lokala nätverket. Gå till
http://raspberrypi:8080 / eller om det inte fungerar använder IP-adressen för enheten (erhålls från cmd 'ifconfig') något som 192.168.1.15 plus specifikationen port: 8080 eller om du använder den Pi-Zero GUI: localhost: 8080 fungerar.
Använda RGB reglagen, på sidan som kommer upp, och titta på RGB-LED lampan följa med.
Andra användbara kommandon
Observera att om du sluta med mer än en "rgbDriver" köra samtidigt du sannolikt att få oförutsägbara beteende. Om du försöker köra en andra kopia av rgb_main.js kommer det fel ut.
Detta kommando kommer att lista alla relaterade processer:
PS aux |grep rgb
Detta kommando kommer att döda alla nodeJS processer, tillsammans med "rgbDriver" underordnade processer:
sudo ps aux | grep node.*rgb | awk "{skriva"sudo kill -9"$2}" | sh
Stand alone drift
För att ha Pi-noll starta upp Node.js server app när det startar upp... med din favorit editor (t.ex. nano ~/.bash_profile), skriv in följande rader och spara på ~/.bash_profile
CD node_rgb
sudo nod rgb_main.js &
För att hålla från att bli störande fel använder meddelanden när du öppnar ett terminal-fönster villkorsstyrd codding som shell script i filen "start_rgb"
När den Pi-Zero körs embedded, utan tangentbord, mus eller bildskärm; det grafiska gränssnittet tar minimal CPU-tid, som det blir inga användaråtgärder. Jag stänga inte av auto GUI start, eftersom den Pi-Zero har mer resurser än vad som behövs, i detta fall; och jag gillar att kunna ansluta några kablar och använda det, när som helst i framtiden. Detta är dock inte nödvändigt som du kan använda en fjärrterminal SSH (e.g. kitt) göra något behövs underhåll.
Använder den som ett Event monitor
Jag skapade en webbsida för att övervaka den dagliga förändringen i Dow Jones Index. Det är källa kan användas som en riktlinje för din egen sida som använder vissa webbdata och driver Pi-noll indikatorn därmed. Denna sida får dess (json) data från en webbtjänst för Google. Det finns många former av webbtjänster, så kommer ni att forskning som du vill använda för att avgöra den JavaScript-kod komma åt den.
Om du vill använda enheten, som jag, som en dedikerad, fristående, Dow Index förändring indikator lägga till dessa rader i slutet av filen ~/.bash_profile
sov 20
epiphany-browser--display =:0.0 localhost:8080/Dow_Jones_Index.html &
Indikatorn tänds en ljusgrå med värdet 0. Det blir mer och mer grön med högre värden. Det är ljusast pure Green på omkring 250. Högre men värden orsaka först en grunt blixt, upp till en djupaste blixt på cirka 500. För negativt värde (dagliga droppar i Dow) den gör liknande, men i rött.