- Что такое Node.js?
- Необходимые компоненты
- Принципиальная электрическая схема
- Настройка фреймворка Node.js
- Установка библиотеки 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 поставляется с Arduino IDE, поэтому ее не нужно скачивать откуда угодно. Мы сделали руководство по управлению Arduino с помощью Raspberry Pi с помощью pyFirmata.
- Johnny-Five: Johnny-Five - это платформа робототехники и Интернета вещей на основе JavaScript, используемая для написания кодов на JavaScript и используемая для создания моста между платами Arduino и компьютером. Johnny-Five были протестированы с различными Arduino-совместимыми платами, такими как Arduino UNO, NANO, Promini и т. Д. В этом руководстве необходимо загрузить библиотеку Johnny-Five, чтобы использовать все ее функции. Руководство по установке будет объяснено позже в этом руководстве.
Принципиальная электрическая схема
Принципиальная схема очень проста, нам просто нужно подключить светодиод к Arduino.Настройка фреймворка Node.js
Перед началом кодирования и разработки необходимо загрузить и настроить 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 Firmware, просто выполните следующие простые шаги:
- Подключите Arduino UNO с помощью USB-кабеля
- Откройте Arduino IDE и выберите плату Arduino UNO (при использовании другой платы выберите соответствующую) в меню «Инструменты».
- Выберите соответствующий COM-порт подключенного Arduino UNO
- Теперь найдите эскиз фирмы, используя Меню -> Файл -> Примеры -> Фирмы -> Стандартные данные.
- Загрузите эскиз «StandardFirmata», выбрав Файл -> Загрузить.
Это загрузит Firmata Sketch в Arduino UNO, и теперь Arduino UNO готов принять любую команду с компьютера.
Написание программы Node.js для мигающего светодиода:
Чтобы написать программу на Node.js, откройте любой текстовый редактор (Блокнот, Блокнот ++ и т. Д.) И вставьте код 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 = новый johnny_five.Board ();
Оператор console.log аналогичен оператору печати и выводит сообщение. И вывод светодиода установлен в режим вывода, и заданная задержка дается для мигания светодиода.
console.log («Светодиод начал мигать!»); var led = new johnny_five.Led (led_pin); led.blink (100);
Теперь, чтобы запустить программу, выполните следующие действия:
- Открыть командную строку
- Найдите папку «LED_Control», выполнив команду cd.
- Запустите команду «Node led_blink.js». В случае успешного выполнения отобразится сообщение «Светодиод начал мигать!» как показано на изображении ниже .
- Светодиод на выводе 5 Arduino UNO начнет мигать.
- И на этом завершается первая часть нашего руководства, то есть мигание светодиода в Node.js.
Управление яркостью светодиода с помощью веб-сервера Arduino и Node.js
Подобно миганию светодиода в Node.js, в этом разделе также будут некоторые части, например, настройка Arduino UNO, настройка веб-интерфейса и написание программы на Node.js.
Настройка Arduino UNO для управления яркостью светодиода:
Чтобы настроить Arduino UNO, просто загрузите скетч « arduino_control.ino » в плату Arduino UNO и все. Это настроит плату Arduino. Вы можете скачать полный код с файлами HTML отсюда. Код « arduino_control.ino» включает следующие важные шаги.
Изначально скорость передачи установлена на 9600.
Serial.begin (9600);
Последовательный порт всегда ищет входящий байт, и этот байт записывается на вывод 5, который является выводом ШИМ.
пока (! Serial.available ()); analogWrite (5, Serial.read ());
Вот и все. Это заставит Arduino зафиксировать байт на выводе PWM и изменить яркость светодиода.
Настройка веб-интерфейса:
Для управления яркостью светодиода с помощью веб-интерфейса написан небольшой фрагмент HTML-кода для интерфейса в браузере. Чтобы получить интерфейс, выполните следующие простые шаги:
- Создайте новую папку с именем «public» внутри созданной ранее папки «LED_Control».
- Теперь загрузите файлы «index.html» и «style.css» и переместите оба файла в «общую » папку, созданную на первом шаге выше. Файлы можно скачать отсюда.
Это создаст слайдер на веб-странице для управления яркостью светодиода с помощью Node.js и Arduino.
Управлять светодиодом с веб-страницы интересно, и это можно сделать с помощью другого микроконтроллера, создав веб-сервер и разместив веб-страницу на веб-сервере. Здесь можно посмотреть все проекты, связанные с веб-сервером.
Написание программы на Node.js для управления яркостью светодиода:
Следующим шагом будет написание скетча «яркость_control.js» с использованием Node.js и выполнение кода. Выполнение кода будет немного похоже на мигание светодиода в Node.js.
Чтобы написать программу на Node.js, откройте любой текстовый редактор (Блокнот, Блокнот ++ и т. Д.) И вставьте код «яркости_контроля», прилагаемый в конце этого руководства, и сохраните его с расширением «.js», т.е. (яркость_control.js). в созданной ранее папке «LED_Control». Вы также можете скачать код отсюда.
Подобно программе Blink Led Node.js, в этом разделе также будут использоваться модули (библиотека). Включите модули «экспресс», «http» и «последовательный порт».
var express = require ('экспресс'); приложение = экспресс (); server = require ('http'). createServer (приложение); io = require ('socket.io'). listen (server); var SerialPort = require ("последовательный порт") //. SerialPort
Теперь установите COM-порт и скорость передачи. Обратите внимание, что в Windows это всегда будет COM с расширением номера (COM6, COM4, COM24 и т. Д.), Поэтому установите ниже, как требуется, после '/'. Также установил буадрате.
var serialPort = новый SerialPort ("/ COM4", {baudRate: 9600});
Начните прослушивать сервер на порту 8080.
server.listen (8080);
Изначально установите яркость на 0. Затем зафиксируйте данные яркости в IO с модулем сокетов, который является модулем веб-сокета. Данные будут получены веб-интерфейсом с использованием протокола сокетов.
io.sockets.on ('соединение', функция (сокет) { socket.on ('led', функция (данные) { яркость = данные.значение; var buf = новый буфер (1); buf.writeUInt8 (яркость, 0); serialPort.write (buf);
Теперь передайте значение яркости светодиода, полученное от гнезда к выводу светодиода.
io.sockets.emit ('светодиод', {значение: яркость}); }); socket.emit ('светодиод', {значение: яркость}); });
Теперь просто для отладки добавьте в конец оператор печати. Console.log - это оператор печати в Node.js.
console.log («Веб-сервер запущен, перейдите по адресу 'http: // localhost: 8080' в вашем браузере.»);
Теперь, чтобы запустить программу, выполнив следующие действия:
- Открыть командную строку
- Найдите папку «LED_Control», выполнив команду cd.
- Запустите команду «Node Brightness_control.js». В случае успешного выполнения он покажет «Веб-сервер запущен, перейдите по адресу http: // localhost: 8080 в вашем браузере». чуть ниже команды .
- Теперь перейдите в свой браузер и введите «localhost: 8080» в URL-адресе.
- Чтобы изменить яркость, просто переместите ползунок от 0 до 255 значений.
Полный код и работает видео оба раздела прилагаются ниже. Также, если у вас есть какие-либо сомнения или предложения, вы можете связаться с нами через форум или оставить комментарий ниже. Все файлы кода также можно скачать отсюда.