- Що таке Node.js?
- Потрібні компоненти
- Кругова діаграма
- Налаштування Node.js Framework
- Встановлення бібліотеки Johnny-Five
- Блимає світлодіод з Arduino та Node.js
- Керування яскравістю світлодіодів за допомогою веб-сервера Arduino та Node.js
Ми бачили численні приклади миготіння світлодіода за допомогою різних мікроконтролерів та різних мов програмування. Сьогодні ми будемо використовувати дуже популярний фреймворк JavaScript Node.js для управління світлодіодом, підключеним до Arduino Uno. Ми також будемо використовувати Node.js для управління яскравістю світлодіода з веб-сторінки за допомогою Arduino. За допомогою декількох налаштувань та використання ESP8266 це можна перетворити на проект IoT, де світлодіод можна керувати з будь-якого місця.
Що таке Node.js?
У Node.js широко використовується JavaScript на основі структури, побудованої на Google в Chrome JavaScript V8 Engine і застосовується при розробці I / O інтенсивні веб - додатки, такі як додатки однієї сторінки, потокове відео сайтів і т.д.
Раніше ми вже робили інформаційний підручник з Початок роботи з Node.js та Raspberry Pi для управління світлодіодом. У цьому посібнику ми дотримуватимемось подібного підходу, тобто світлодіод буде керуватися двома методами, такими як:
- Просте світлодіодне блимання, написавши код JavaScript у фреймворці Node.js.
- Контроль яскравості світлодіодів за допомогою фреймворка Node.js та веб-інтерфейсу з будь-якого браузера: Arduino UNO буде виконувати функції веб-сервера, а веб-сторінка HTML розміщуватиметься на ПК або ноутбуці.
Потрібні компоненти
Обладнання:
- Правління Arduino UNO
- Світлодіодний
- Резистор
Програмне забезпечення:
- Arduino IDE: для завантаження ескізу на дошку Arduino UNO.
- Firmata: Це протокол для спілкування з різними мікроконтролерами із програмного забезпечення на комп’ютері, смартфоні тощо. Прошивку Firmata можна завантажити на будь-яку плату мікроконтролера (наприклад, Arduino, Teensy) і може спілкуватися з будь-яким ноутбуком, ПК чи смартфоном. Бібліотека Firmata постачається з IDE Arduino, тому не потрібно завантажувати з будь-якого місця. Ми зробили підручник з управління Arduino за допомогою Raspberry Pi за допомогою pyFirmata.
- Johnny-Five: Johnny-Five - це платформа Robotics та IoT на основі JavaScript, яка використовується для написання кодів у JavaScript і використовується для створення моста між платами Arduino та комп’ютером. Johnny-Five пройшли тестування на різноманітних платах, сумісних з Arduino, таких як Arduino UNO, NANO, Promini тощо. У цьому посібнику бібліотеку Johnny-Five потрібно завантажити, щоб використовувати всі її функції. Посібник із встановлення буде пояснено далі в цьому посібнику.
Кругова діаграма
Схема принципів дуже проста, нам просто потрібно підключити світлодіод з Arduino.Налаштування Node.js Framework
Перш ніж розпочати кодування та розробку, Node.js потрібно завантажити та налаштувати. Для завантаження середовища Node.js просто виконайте прості кроки.
Крок 1: - Завантажте.exe-файл Node.js зі свого офіційного веб-сайту.
Крок 2: - Запустіть.exe та дотримуйтесь наведених інструкцій у програмі встановлення.
Крок 3: - Перезавантажте комп’ютер, як це рекомендовано в документі Node.js, а також використовувати всі функції Node.js
Крок 4: - Щоб перевірити, чи вузол встановлено, відкрийте командний рядок і введіть Node –v
Крок 5: - Відобразиться версія Node.js із зазначенням того, що Node.js встановлено.
Встановлення бібліотеки Johnny-Five
Тепер, завантаживши Node.js, створіть нову папку з назвою “LED_Control” у Документах, щоб зберегти всі файли проекту в одному місці. Кожен файл проекту зберігатиметься в папці “ LED_Control ”. Тепер завантажте бібліотеку Johnny-Five у папку “ LED_Control ”. Щоб завантажити, виконайте кроки нижче:
Крок 1: - Відкрийте командний рядок
Крок 2: - Перейдіть до папки “ LED_Control ”, виконавши команду “ cd ”.
Крок 3: - Запустіть команду ' npm install johnny-five'
Крок 4: - Це встановить усі залежності Johnny-Five.
Крок 5: - Також встановіть необхідні бібліотеки, що використовуються в цьому посібнику для контролю яскравості світлодіодів. Тут використовуються три бібліотеки:
- express: обгортка сервера
- socket.i o: бібліотека WebSockets
- serialpor t: обгортка послідовного порту
Крок 5: - Виконайте наведені нижче команди по черзі, щоб встановити ці три бібліотеки.
npm install express npm install socket.io npm install serialport
Як вже було сказано раніше, проект розділений на дві частини:
- По-перше, Arduino блимає світлодіодом з Node.js
- По-друге, управління яскравістю світлодіодів через веб-інтерфейс за допомогою Arduino та Node.js.
Блимає світлодіод з Arduino та Node.js
Щоб блимати світлодіодом, Arduino повинен бути налаштований для зв'язку з комп'ютером.
Налаштування Arduino UNO для миготливого світлодіода:
Для того, щоб змусити Arduino UNO прийняти команду від ноутбука на світлодіод управління, прошивку Firmata потрібно завантажити в Arduino UNO. Щоб завантажити прошивку Firmata, просто виконайте такі прості дії:
- Підключіть Arduino UNO за допомогою кабелю USB
- Відкрийте IDE Arduino та виберіть плату Arduino UNO (якщо використовується інша плата, то виберіть відповідну) з Інструменти.
- Виберіть відповідний COM-порт підключеного Arduino UNO
- Тепер знайдіть Firmata Sketch за допомогою меню -> Файл -> Приклади -> Firmata -> StandardFirmata.
- Завантажте ескіз “StandardFirmata”, перейшовши до Файл -> Завантажити.
Це завантажить Firmata Sketch на Arduino UNO, і тепер Arduino UNO готовий прийняти будь-яку команду від комп'ютера.
Написання програми Node.js для миготливого світлодіода:
Щоб написати програму Node.js, відкрийте будь-який текстовий редактор (Notepad, Notepad ++ та ін.) Та вставте код blink_led, доданий в кінці цього посібника, та збережіть його з розширенням '.js', тобто (blink_led.js) у створеній раніше папці “LED_Control”. Ми обговоримо важливі кроки у файлі коду blink_led.js.
Спочатку визначте штифт мікроконтролера, куди підключений світлодіод. У цьому прикладі світлодіод підключений до виводу 5 Arduino UNO. 'Var' у Node.js представляє оголошення змінної.
var led_pin = 5;
В Johnny-п'ять модулів повинні бути включені і потреби ради директорів повинні бути обрані. Модулі в Node.js - це бібліотеки. Функція ' require () ' отримає доступ до модуля.
var johnny_five = require ("johnny-five"); var arduino_board = new johnny_five.Board ();
Оператор console.log схожий на оператор print, і він надрукує повідомлення. І світлодіодний штифт встановлений у вихідний режим, і визначена затримка дається на блимання.
console.log ("Світлодіод почав блимати!"); var led = new johnny_five.Led (led_pin); led.blink (100);
Тепер для запуску програми виконайте наведені нижче дії:
- Відкрийте командний рядок
- Знайдіть «LED_Control» папку, слідуючи «CD» команда
- Запустіть команду 'Node led_blink.js'. У разі успішного виконання буде показано "Світлодіод почав блимати!" як показано на зображенні нижче .
- Світлодіод почне блимати на Pin 5 Arduino UNO.
- На цьому перша частина нашого підручника, тобто блимаючий світлодіод із Node.js, закінчується
Керування яскравістю світлодіодів за допомогою веб-сервера Arduino та Node.js
Як і блимання світлодіода за допомогою Node.js, у цьому розділі також будуть деякі частини, тобто налаштування Arduino UNO, налаштування веб-інтерфейсу та написання програми Node.js.
Налаштування Arduino UNO для управління яскравістю світлодіодів:
Щоб налаштувати Arduino UNO, просто завантажте ескіз “ arduino_control.ino ” на дошку Arduino UNO і все. Це створить Arduino Board. Ви можете завантажити повний код із файлами HTML звідси. Код “ arduino_control.ino” має наступні важливі кроки.
Спочатку швидкість передачі даних встановлена на рівні 9600.
Serial.begin (9600);
Послідовний порт завжди шукає вхідний байт, і байт записується на Pin 5, який є ШІМ-піном.
while (! Serial.available ()); analogWrite (5, Serial.read ());
Це воно. Це налаштує Arduino на фіксацію байта до ШІМ- контакту і змінить яскравість світлодіода.
Налаштування веб-інтерфейсу:
Для управління яскравістю світлодіодів за допомогою веб-інтерфейсу написано один невеликий фрагмент HTML-коду, який має інтерфейс у браузері. Щоб мати інтерфейс, виконайте прості кроки нижче:
- Створіть нову папку з назвою “public” у створеній раніше папці “LED_Control”.
- Тепер завантажте файли “index.html” і “style.css” і перемістіть обидва файли всередину папки “public”, створеної на першому кроці вище. Файли можна завантажити звідси.
Це створить слайдер на веб-сторінці для управління яскравістю світлодіода за допомогою Node.js та Arduino.
Управлінню світлодіодом з веб-сторінки цікаво навчитися, і це можна зробити за допомогою іншого мікроконтролера, створивши веб-сервер і розмістивши веб-сторінку на веб-сервері. Перегляньте всі проекти, пов’язані з веб-сервером, тут.
Написання програми Node.js для управління яскравістю світлодіода:
Наступним кроком буде написання ескізу “brightness_control.js” за допомогою Node.js та виконання коду. Виконання коду буде трохи схоже на блимання світлодіода за допомогою Node.js.
Щоб написати програму Node.js, відкрийте будь-який текстовий редактор (Notepad, Notepad ++ та ін.) Та вставте код 'brightness_control', доданий в кінці цього посібника, та збережіть його з розширенням '.js', тобто (brightness_control.js) у створеній раніше папці “LED_Control”. Ви також можете завантажити код звідси.
Подібно до програми Blink Led Node.js, у цьому розділі також будуть використовуватися модулі (бібліотека). Включіть модулі 'express', 'http' та 'serial port'.
var express = require ('express'); app = express (); server = require ('http'). createServer (додаток); io = require ('socket.io'). listen (сервер); var SerialPort = require ("serialport") //
Тепер встановіть COM-порт і швидкість передачі даних. Зверніть увагу, що у вікнах це завжди буде COM з розширенням номера (COM6, COM4, COM24 тощо), тому встановіть нижче, як потрібно після '/'. Також встановіть буадрат.
var serialPort = новий SerialPort ("/ COM4", {baudRate: 9600});
Почніть прослуховувати сервер з порту 8080.
server.listen (8080);
Спочатку встановіть яскравість 0. Потім закріпіть дані яскравості на IO за допомогою модуля розеток, який є модулем веб-розетки. Дані надходитимуть через веб-інтерфейс із використанням сокетного протоколу.
io.sockets.on ('connection', function (socket) { socket.on ('led', function (data) { brightness = data.value; var buf = new Buffer (1); buf.writeUInt8 (brightness, 0); serialPort.write (buf);
Тепер випромінюйте значення яскравості світлодіода, отримане від розетки, до світлодіодного штиря.
io.sockets.emit ('led', {значення: яскравість}); }); socket.emit ('led', {значення: яскравість}); });
Тепер просто для налагодження, додайте в кінці оператор print. Console.log - це оператор друку в Node.js.
console.log ("Веб-сервер розпочато, перейдіть до" http: // localhost: 8080 "у вашому браузері.");
Тепер запустіть програму, виконавши наведені нижче дії:
- Відкрийте командний рядок
- Знайдіть «LED_Control» папку, слідуючи «CD» команда
- Запустіть команду 'Node brightness_control.js'. У разі успішного виконання буде показано "Веб-сервер запущений", перейдіть до "http: // localhost: 8080" у вашому браузері. " трохи нижче команди .
- Тепер перейдіть у свій браузер і введіть "localhost: 8080" у url.
- Щоб змінити яскравість, просто посуньте повзунок від 0-255 значень.
Повний код і працює відео обидва розділу додаються нижче. Крім того, якщо у вас є якісь сумніви чи пропозиції, ви можете зв'язатися з нами через форум або коментар нижче. Усі файли коду також можна завантажити звідси.