Gyengus™ weblapja

Raspberry Pi GPIO vezérlése Node.js segítségével

Az előző részben (Raspberry Pi GPIO vezérlése C nyelven) megnéztük, hogy lehet C nyelven írt programból vezérelni a Raspberry Pi GPIO lábait.
Ebben a cikkben megmutatom, hogy lehet a Raspberry Pi GPIO lábait Node.js segítségével vezérelni.

Először a node.js-t kell telepíteni a Raspberry Pi-re, ha eddig nem tettük volna meg:

sudo wget http://node-arm.herokuapp.com/node_latest_armhf.deb  
sudo dpkg -i node_latest_armhf.deb

Az rpi-gpio.js Node.js modult használtam a Raspberry Pi GPIO vezérléséhez.

A Node.js példa program forráskódját Git-tel lehet letölteni a legegyszerűbben:

$ git clone https://github.com/gyengus/rpi_gpio_test_nodejs.git

Miután lejöttek a fájlok, lépjünk be a projekt rpi_gpio_test_nodejs nevű könyvtárába. Az

$ npm install

parancs telepíti a szükséges rpi_gpio.js Node.js modult.

Itt a kód:

Fent látható az index.js fájl tartalma.
A kód tele van callback függvényhívásokkal, emiatt a végrehajtás sorrendje futtatásonként eltérhet. Ez a gyakorlatban azt jelenti, hogy hiába kezdjük a gomb állapotának beolvasásával (16. sor), többször előfordult, hogy a piros led bekapcsolása előbb lefutott. Erre oda kell figyelni komolyabb program írásakor.
A 2. és 3. sorban lévő változók tartalmazzák a led és a gomb elérhetőségét. Jegyezzük meg, hogy a láb kivezetés sorszámát kell itt megadni!
Emlékeztetőül a Raspberry Pi B+ GPIO lábkiosztása:
Raspberry Pi B+ GPIO PinoutA két szélső oszlopban lévő számok fognak kelleni.

Térjünk vissza a Node.js programunkra!
A 16. sorban állítjuk bemenetnek a Raspberry Pi azon lábát, melyre a gombot kötöttük. Nálam ez a 16. láb lett. Ha ez megvan, akkor a 17. sor beolvassa az állapotát, majd kiírja. A függvény az err nevű paraméterben kapja meg az esetleges hiba okát. Még nem találkoztam ilyennel :-)
A 27. sorban lesz kimenet a Raspberry Pi-nek az a lába, amin a led van. Majd a 28. sorban lesz magasra állítva (gyk. a led világítani fog).
Csak, hogy lássunk is valamit a ledből, a 33. sor indít egy 5 másodperces időzítőt. A Raspberry Pi-re kötött led eddig fog világítani.
Az 5. sorban lévő függvény fogja lekapcsolni a ledet.
A 39. sortól kezdve egy 10 másodperces késleltetéssel zárjuk a Raspberry Pi GPIO lábait. Azért lett időzítve, hogy a fentieknek legyen idejük lefutniuk.

A programot futtatni a

$ sudo node index.js

paranccsal tudjuk. Fontos, hogy csak rootként futtatva fér hozzá a program a Raspberry Pi GPIO portjához.

A program forráskódja megtalálható GitHubon is.

Kategóriák: Programozás
Címkék: node.js, raspberrypi
Dátum: 2014. december. 25.
Ha tetszett a cikk, oszd meg barátaiddal:
« »