- Необхідні матеріали
- Встановлення Node.js на Raspberry Pi
- Блимання світлодіода за допомогою Node.js
- Node.js Світлодіодний блимаючий сценарій та пояснення
- Схема для блимання світлодіода за допомогою Node.js
- Raspberry Pi
У попередніх підручниках Raspberry Pi ми використовували безліч різних мов програмування та програмне забезпечення для управління Raspberry Pi, включаючи Python, вбудований C, Flask тощо. Щоб розширити горизонт потужної плати Raspberry Pi, сьогодні ми будемо використовувати дуже популярне середовище на основі JavaScript (Node.js) для управління Raspberry Pi GPIO як локально, так і глобально, встановивши його як веб-сервер. Спочатку Node.js був розроблений для Google Chrome, але пізніше він був відкритим для Google.
У цьому підручнику ми будемо керувати світлодіодом, підключеним до Raspberry Pi, двома методами
- Спочатку ми просто напишемо код JavaScript за допомогою Node.js, щоб блимати світлодіодом
- У другому способі ми створимо HTML-сторінку з двома кнопками для ввімкнення та вимкнення світлодіода. Ця веб-сторінка HTML розміщуватиметься на Raspberry Pi і може бути відкрита в будь-якому веб-браузері. Отже, тут Raspberry Pi буде виконувати функції веб-сервера
Необхідні матеріали
- Дошка Raspberry pi з встановленою в ній Raspbian
- СВІТЛОДІОДНИЙ
У цьому підручнику я використовую зовнішній монітор за допомогою кабелю HDMI для підключення до Raspberry Pi. Якщо у вас немає монітора, ви можете використовувати клієнт SSH (Putty) або сервер VNC для підключення до Raspberry pi за допомогою ноутбука або комп’ютера. Якщо у вас виникнуть труднощі, дотримуйтесь нашого Посібника з вивчення Raspberry Pi.
Встановлення Node.js на Raspberry Pi
Ми встановимо Node.js на нашій дошці, використовуючи такі команди.
Крок 1: - Спочатку перевірте, чи є версія вашої дошки Raspberry Pi за допомогою цієї команди.
uname -m
У моєму випадку версія 7.
Крок 2: - Завантажте програму встановлення, скопіювавши це посилання в терміналі. Не забудьте змінити версію за посиланням нижче.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
Крок 3: - Витягніть файли за допомогою команди нижче
tar -xvf вузол-v4.6.1-linux-armvl.tar.gz
Крок 4: - Нарешті, виконайте ці команди, щоб також додати важливі файли до локальних каталогів.
cd node-v4.3.1-linux-armvl sudo cp -R * / usr / local /
Node.js встановлено зараз у вашому Raspberry Pi. Перевірте версію вузла для підтвердження за допомогою цієї команди.
вузол –версія
Перш ніж перейти до створення сервера Node.js, спочатку ми побачимо, як написати сценарій для блимання світлодіода за допомогою node.js (пакет npm onoff).
Блимання світлодіода за допомогою Node.js
Для управління GPIO на Raspberry Pi за допомогою Node.js ми будемо використовувати модуль onoff.
Для встановлення модуля onoff ми використаємо менеджер пакунків npm, використовуючи команду нижче
npm встановити onoff
Тепер ми напишемо сценарій для мигання led. Відкрийте редактор nano і за допомогою команди надайте ім'я файлу
nano blink_led.js
Якщо ви новачок у Node.js та його пакетах, ви можете отримати документацію npm для кращого розуміння сценарію.
Node.js Світлодіодний блимаючий сценарій та пояснення
Спочатку оголосіть змінні для led, delay і GPIO. Я використовую Raspberry Pi GPIO 4 для підключення світлодіода.
var Gpio = require ('onoff'). Gpio; var LED = новий Gpio (4, 'out'); var blinkInterval = setInterval (blinkLED, 500);
Тепер ми створимо функцію для запуску мигання.
функція blinkLED () {if (LED.readSync () === 0) {LED.writeSync (1); // встановити вихід на 1, тобто увімкнути світлодіод} else {LED.writeSync (0); // встановити вихід на 0 тобто вимкнути світлодіод }}
Подібним чином створіть функцію зупинки мигання
функція endBlink () {clearInterval (blinkInterval); LED.writeSync (0); LED.unexport (); // Неекспортувати GPIO до вільних ресурсів} setTimeout (endBlink, 10000);
Повний код Node.js для блимаючого світлодіода наведено в кінці цього посібника. Тож скопіюйте та вставте код у файл led_blink.js , який ми створили раніше за допомогою команди nano , збережіть файл за допомогою Ctrl + x, потім натисніть Y та натисніть Enter.
Щоб запустити сценарій, відкрийте термінал і введіть команду нижче:
вузол blink_led.js
Ви побачите, що світлодіод блиматиме протягом 10 секунд, а після цього перестане блимати. Перевірте повну роботу у відео, поданому в кінці цього підручника.
Схема для блимання світлодіода за допомогою Node.js
Raspberry Pi
Тепер, перейдіть до цікавої частини, тут ми збираємося створити власний веб-сервер, з якого ми можемо керувати GPIO з Raspberry pi за допомогою веб-сторінки.
Для цього спочатку нам потрібно створити HTML-сторінку та написати сценарій для виконання фонового завдання, тобто для управління RPi GPIO.
Крок 1: - Створіть каталог для зберігання всіх файлів в одному місці.
mkdir nodejs_server
Крок 2: - Усередині папки nodejs_server створіть ще одну папку для збереження файлу HTML.
cd nodejs_server mkdir подання
Крок 3: - Якщо ви хочете додати зображення на свою html-сторінку, то вам слід зробити іншу папку з назвою загальнодоступною в головному каталозі, тобто в папці nodejs_server . У загальнодоступній папці створіть папку із зображеннями та збережіть усі зображення в цій папці.
Крок 4: - Зараз ми створимо HTML-сторінку. Для цього перейдіть на перегляди каталог і відкрити нано текстовий редактор з ім'ям файл index.ejs
У сценарії немає нічого вигадливого. Це просто HTML-файл, щоб зробити кнопку ввімкнення та вимкнення.
Скопіюйте вставте наведений нижче HTML-код у текстовий редактор nano та збережіть його.
Ласкаво просимо до сервера Nodejs
Світлодіодний статус: <% = status%>Крок 5: - Тепер ми повинні написати код JavaScript. Ми використовуємо node express framework для відповіді на http-запити, виконані користувачем.
Ви можете перейти за посиланням, щоб дізнатись більше про Node Express.
Відкрити термінал і відкритий нано текстовий редактор з index.js файлу в nodejs_server папку, а потім скопіювати і вставити нижче Java код сценарію і цей файл.
var express = require ('express'); var app = express (); var path = require ('path'); var gpio = require ('rpi-gpio'); gpio.setup (7, gpio.DIR_OUT); app.set ('механізм перегляду', 'ejs'); app.use (express.static (path.join (__ dirname, 'public'))); console.log (path.join (__ dirname, 'public')); app.get ('/', функція (req, res) { res.render ('index', {status: "Press Button"}); }); app.post ('/ led / on', function (req, res) { gpio.write (7, true, function (err) { if (err) throw err; console.log ('Written True to pin'); console.log (path.join (__ dirname, 'public')); повернути res.render ('індекс',{статус: "Світлодіод увімкнено"}); }); }); app.post ('/ led / off', function (req, res) { gpio.write (7, false, function (err) { if (err) throw err; console.log ('Written False to pin'); console.log (path.join (__ dirname, 'public')); return res.render ('index', {status: "Led is Off"}); }); }); app.listen (3000, function () { console.log ('Сервер запущений на порту: 3000!') })
Крок 6: - Усередині каталогу nodejs_server нам потрібно виконати таку команду, щоб встановити бібліотеки node.js
npm встановити
Крок 7: - Тепер ваш сервер готовий до роботи. Щоб запустити локальний сервер, виконайте наступну команду всередині каталогу nodejs_server
вузол index.js
у терміналі ви побачите повідомлення про те, що ваш сервер запущений за визначеним портом.
Крок 8: - Тепер відкрийте браузер та відкрийте URL-адресу Raspberry Pi із номером порту, тобто raspberrypi: 3000
Переконайтеся, що ваш Raspberry Pi та ноутбук, у якому ви відкриваєте браузер, підключені до однієї мережі.
У браузері ви побачите наступну сторінку.
Тепер натисніть кнопку Увімк. Світлодіод, щоб увімкнути світлодіод, і кнопку Вимк. Світлодіода, щоб вимкнути світлодіод.