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:
A 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.