- Какво е Node.js?
- Необходими компоненти
- Електрическа схема
- Настройка на Node.js Framework
- Инсталиране на библиотека Johnny-Five
- Мигащ светодиод с Arduino и Node.js
- Контролиране на яркостта на LED с помощта на Arduino и Node.js уеб сървър
Видяхме многобройни примери за мигане на светодиод с помощта на различни микроконтролери и различни езици за програмиране. Днес ще използваме много популярна JavaScript рамка Node.js, за да контролираме светодиода, свързан към Arduino Uno. Също така ще използваме Node.js, за да контролираме яркостта на светодиода от уеб страница, използвайки Arduino. С няколко ощипвания и използване на ESP8266, това може да бъде превърнато в IoT проект, където светодиодът може да се контролира отвсякъде.
Какво е Node.js?
На Node.js е широко използван JavaScript базиран рамка построена на JavaScript V8 двигател на Google Chrome, и се нанася в разработването на I / O интензивни уеб приложения, като например приложения на една единствена страница, видео стрийминг сайтове и т.н.
По-рано направихме информативен урок за Първи стъпки с Node.js и Raspberry Pi за управление на светодиод. В този урок ще следваме подобен подход, т.е. светодиодът ще се контролира по два метода като:
- Просто мигане на LED, като напишете JavaScript код в рамката Node.js.
- Контрол на яркостта на LED с помощта на Node.js рамка и уеб интерфейс от всеки браузър: Arduino UNO ще действа като уеб сървър и HTML уеб страницата ще бъде хоствана на компютър или лаптоп.
Необходими компоненти
Хардуер:
- Arduino UNO Board
- Led
- Резистор
Софтуер:
- Arduino IDE: За качване на скица на борда на Arduino UNO.
- Firmata: Това е протокол за комуникация с различни микроконтролери от софтуер на компютър, смартфон и др. Firmata фърмуерът може да се зарежда във всяка дъска на микроконтролера (като Arduino, Teensy) и може да говори с всеки лаптоп, компютър или смартфон. Библиотеката Firmata се предлага с Arduino IDE, така че няма нужда да се изтегля от никъде. Направихме урок за управление на Arduino с Raspberry Pi с помощта на pyFirmata.
- Johnny-Five: Johnny-Five е платформата за роботика и IoT, базирана на JavaScript, използвана за писане на кодове в JavaScript и използвана за изграждане на мост между Arduino Boards и Computer. 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: обвивка на HTTP сървър
- socket.i o: библиотека WebSockets
- serialpor t: обвивка на сериен порт
Стъпка 5: - Изпълнете командите по-долу една по една, за да инсталирате тези три библиотеки.
npm install express npm install socket.io npm install serialport
Както беше казано по-рано, проектът е разделен на две части:
- Първо, мигащият светодиод Arduino с Node.js
- На второ място, контрол на яркостта на LED от уеб интерфейс с помощта на Arduino и Node.js.
Мигащ светодиод с Arduino и Node.js
За да мига LED, Arduino трябва да бъде настроен за комуникация с компютър.
Настройка на Arduino UNO за мигащ светодиод:
За да накара Arduino UNO да приеме командата от лаптопа за управление на LED, фърмуерът Firmata трябва да бъде зареден в Arduino UNO. За да заредите Firmata Firmware, просто следвайте тези прости стъпки:
- Свържете Arduino UNO с помощта на USB кабел
- Отворете Arduino IDE и изберете Arduino UNO платка (Ако използвате друга платка, изберете съответната) от Инструменти.
- Изберете съответния COM порт на свързания Arduino UNO
- Сега намерете скицата на Firmata, като използвате Меню -> Файл -> Примери -> Firmata -> StandardFirmata.
- Качете скицата „StandardFirmata“, като отидете на File -> Upload.
Това ще зареди Firmata Sketch върху Arduino UNO и сега Arduino UNO е готов да приеме всяка команда от компютър.
Писане на програма Node.js за мигащ светодиод:
За да напишете програма Node.js, отворете всеки текстов редактор (Notepad, Notepad ++ и др.) И поставете кода „blink_led“, прикачен в края на този урок, и го запазете с разширение „.js“ т.е. (blink_led.js) в папката “LED_Control”, създадена преди това. Ще обсъдим важни стъпки в кодовия файл blink_led.js.
Първоначално дефинирайте ПИН на микроконтролера, където е свързан led. В този пример светодиодът е свързан към Pin 5 на Arduino UNO. 'Var' в Node.js представлява декларация на променлива.
var led_pin = 5;
На Джони и пет модула трябва да бъде включен и нуждите на борда, за да бъдат избрани. Модулите в Node.js са библиотеки. Функцията ' require () ' ще осъществи достъп до модула.
var johnny_five = изискване ("johnny-five"); var arduino_board = new 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“. Ако бъде успешно изпълнено, ще се покаже „LED започна да мига!“ както е показано на изображението по-долу .
- Светодиодът ще започне да мига в Arduino UNO Pin 5.
- И това завършва първата част от нашия урок, т.е. мигащ светодиод с Node.js
Контролиране на яркостта на LED с помощта на 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);
Серийният порт винаги търси входящ байт и байтът се записва в Pin 5, който е PWM Pin.
докато (! Serial.available ()); analogWrite (5, Serial.read ());
Това е. Това ще настрои Arduino да фиксира байта към PWM щифт и ще промени яркостта на LED.
Настройване на уеб интерфейс:
За да се контролира яркостта на led с помощта на уеб интерфейс, се записва едно малко парче HTML код, за да има интерфейс в браузъра. За да имате интерфейс, следвайте прости стъпки по-долу:
- Създайте нова папка с име „public“ в папката „LED_Control“, създадена преди това.
- Сега изтеглете файловете „index.html“ и „style.css“ и преместете двата файла в папката „public“, създадена в първата стъпка по-горе. Файловете могат да бъдат изтеглени от тук.
Това ще създаде плъзгач на уеб страницата, за да контролира яркостта на светодиода с помощта на Node.js и Arduino.
Контролирането на LED от уеб страница е интересно да се научи и това може да се направи с друг микроконтролер, като създадете уеб сървър и хоствате уеб страницата на уеб сървър. Проверете всички проекти, свързани с уеб сървъра тук.
Писане на програма 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 (); сървър = изисква ('http'). createServer (приложение); io = require ('socket.io'). listen (сървър); var SerialPort = изисква ("serialport") //
Сега задайте COM порта и скоростта на предаване. Имайте предвид, че в прозорците той винаги ще бъде COM с разширение на номер (COM6, COM4, COM24 и т.н.), така че задайте по-долу, както се изисква след '/'. Също така задайте буадрат.
var serialPort = нов SerialPort ("/ COM4", {baudRate: 9600});
Започнете да слушате сървъра на порт 8080.
server.listen (8080);
Първоначално задайте яркостта на 0. След това фиксирайте данните за яркост към IO с модул за гнезда, който е модул за уеб сокет. Данните ще се получават чрез уеб интерфейс, използвайки сокет протокол.
io.sockets.on ('връзка', функция (гнездо) { socket.on ('led', функция (данни) { яркост = data.value; var buf = нов буфер (1); buf.writeUInt8 (яркост, 0); serialPort.write (buf);
Сега излъчвайте стойността на яркостта на LED, получена от гнездото на LED щифт.
io.sockets.emit ('led', {стойност: яркост}); }); socket.emit ('led', {стойност: яркост}); });
Сега само за отстраняване на грешки, добавете изявление за печат в края. Console.log е изявление за печат в Node.js.
console.log („Стартиран уеб сървър, отидете на„ http: // localhost: 8080 “във вашия браузър.“);
Сега да стартирате програмата, като следвате стъпките по-долу:
- Отворете командния ред
- Намерете папката „LED_Control“, като следвате командата „cd“
- Изпълнете командата „Node brightness_control.js“. Ако се изпълни успешно, ще се покаже „Web Server Started go to„ http: // localhost: 8080 “във вашия браузър.“ точно под командата .
- Сега отидете в браузъра си и напишете „localhost: 8080“ в URL адреса.
- За да промените яркостта, просто преместете плъзгача от 0-255 стойности.
В пълния код и работи видеото на двата раздела е приложен по-долу. Също така, ако имате някакви съмнения или предложения, можете да се свържете с нас чрез форум или коментар по-долу. Всички кодови файлове също могат да бъдат изтеглени от тук.