Stap 6: Project Software
Ik gebruikte twee programma's, een proces van de Node.js praten met een kind proces via het stdin gegevensstroom.
Dit is zodat ze kunnen ieder doen wat ze het beste doen en als onafhankelijke processen in hun eigen tempo fungeren.
Hier is wat ik deed:
Maar je niet moet, zoals ik heb verstrekt een tar-gzip-bestand waarin de resulterende bestand-boom.
NodeJS serverzijde setup:
cd ~ mkdir node_rgb cd node_rgb mkdir public
Zet 'index.html' en 'style.css' in de ' ~ / node_rgb/publiek ' directory
Zet 'rgbDriver.c' en 'rgb_main.js' in de ' ~ / node_rgb' directory
Compile/bouwen de c proces 'rgbDriver':
cd ~/node_rgb cc -o rgbDriver rgbDriver.c -lwiringPi -lpthread
Downloaden en uitbreiden van de gelijkwaardigheid
Downloaden van node_rgb.tgz (zie hieronder) naar uw Pi-nul in je home directory (~ pi) kon jij één van de 3 volgende:
- Vanuit de browser in uw Pi-Zero's-GUI downloaden
Verplaats het bestand naar ~pi/ - In een terminal-venster verbonden met je Pi-nul:
CD ~ pi
wgetMV FZBF9BDIL6VBHKF.tgz rgb_node.tgz
- Downloaden van een browser op uw desktopcomputer.
Het gebruiken van WinSCP te kopiëren naar de ~ pi directory op de Pi-Zero
Na het uitvoeren van de #1 2 of 3 hierboven...
cd ~ tar -xzvf node_rgb.tgz tree node_rgb ... node_rgb<br> ├── public │ ├── Dow_Jones_Index.html │ ├── index.html │ └── style.css ├── rgbDriver ├── rgbDriver.c ├── rgb_main.js ├── start_rgb ├── kill_rgb<br> └── track_dji
De resulterende executable (above) 'rgbDriver' kan onafhankelijk van het proces van Node.js interface worden gebruikt.
Feed om te verifiëren dat dit stuurprogramma en de hardware werken, sets van drie waarden (van 0-255), gescheiden door een spatie, aan de bestuurder. Als ' echo 255 0 0 |. / rgbDriver' voor rood of ' echo 0 255 0 |. / rgbDriver' voor groen. Merk op dat de ". /" vertelt de OS te vinden van onze programma 'rgbDriver' in de huidige map. Wanneer u uitgeven een ^ c (cntl-c) om te stoppen met het stuurprogramma de led kan of niet aan kan blijven staan. Afwisselend, kon u interactief voeden haar waarden. Vanaf de opdrachtregel, typt u deze lijnen een na de andere en kijk naar de LED.
./rgbDriver 0 255 0 100 0 100 255 255 0 ...etc... ^c
Zorg ervoor dat u niet beschikt over 2 van deze processen parallel lopen.
Starten van de volledige software application suite, met inbegrip van het gebruik van de server Node.js deze opdracht:
sudo node rgb_main.js
Vervolgens cntl-c te gebruiken wanneer u wilt stoppen met de Node.js server.
Starten met
sudo node rgb_main.js&
dat het lopen in de achterkant op de grond, maar dan moet je zult moeten gebruiken een ' sudo kill -9 pid' opdracht om het te stoppen. Als deze opdracht ziet er alien aan u, bekijkt u de uitvoer van deze opdrachten: 'man kill' & 'man sudo'.
Gebruik een browser, op uw desktop, tablet of telefoon, die is aangesloten op uw lokale netwerk. Ga naar
http://raspberrypi:8080 / of als dat niet werkt gebruik het IP-adres van het apparaat (verkregen uit de cmd 'ifconfig') iets zoals 192.168.1.15 plus de specificatie poort: 8080 of als de Pi-Zero's GUI gebruikt: localhost8080 zal werken.
Bedienen van de RGB schuiven, op de pagina die verschijnt, en Bekijk de RGB-LED-lamp volgen.
Andere nuttige commando 's
Merk op dat als je met meer dan een 'rgbDriver eindigen' uitgevoerd op een bepaald moment bent u waarschijnlijk om onvoorspelbaar gedrag. Als u probeert en voer een tweede exemplaar van rgb_main.js zal het fout uit.
Dit commando zal een lijst van alle verwante processen:
ps aux |grep rgb
Deze opdracht zal doden alle processen nodeJS, samen met 'rgbDriver' kindprocessen:
sudo ps aux | grep node.*rgb | awk '{print "sudo kill -9 " $2}' | sh
Stand alone werking
Als u wilt dat de Pi-nul opstart Node.js server app wanneer op up. zelfstart.. met behulp van uw favoriete editor (bijv. nano ~/.bash_profile), typt u in de volgende regels & wegschrijven naar ~/.bash_profile
CD node_rgb cd node_rgb sudo node rgb_main.js &
Om te houden van het krijgen van hinderlijke fout berichten bij het openen van een terminalvenster gebruiken voorwaardelijke codding zoals het shell-script in het bestand 'start_rgb'
Wanneer de Pi-nul draait ingesloten, zonder een toetsenbord, muis of beeldscherm; de grafische User Interface vindt minimale CPU-tijd, omdat er geen tussenkomst van de gebruiker. Ik niet uit te schakelen de auto GUI start, zoals de Pi-nul meer middelen heeft dan nodig, in dit geval; en ik houd van kunnend een paar kabels en gebruiken, op elk gewenst moment in de toekomst. Dit is echter niet nodig omdat u SSH via een externe terminal kunt (bijv PuTTY) handelingen nodig onderhoud.
Gebruik het als een Event monitor
Ik heb een webpagina voor het toezicht op de dagelijkse verandering in de Dow Jones Index. Het bronpakket kan worden gebruikt als leidraad voor uw eigen pagina die gebruikmaakt van sommige webgegevens en drijft uw Pi-nul-indicator dienovereenkomstig. Deze pagina krijgt haar (json) gegevens van een webservice van Google. Er zijn vele vormen van webservices, dus je moeten zal om het onderzoek van degene die u wilt gebruiken om te bepalen van de JavaScript-code om toegang te krijgen.
Als u zou willen gebruiken van uw apparaat, net als ik, als een speciale, stand-alone, Dow Index verandering Indicator toevoegen deze lijnen aan het einde van het bestand ~/.bash_profile
sleep 20 epiphany-browser --display=:0.0 localhost:8080/Dow_Jones_Index.html &
De indicator zal verlichten een lichtgrijs, uitgaande van een waarde van 0. Het wordt meer en meer groen met hogere waarden. Het is de helderste zuiver groen op ongeveer 250. Hogere nog waarden aanvankelijk een ondiepe flits, tot een diepste flitser op ongeveer 500 veroorzaken. Voor negatieve waarde (dagelijkse druppels in de Dow) het doet vergelijkbaar, maar in het rood.