Arduino和Node.js实现网页控制LED亮度

Arduino和Node.js实现网页控制LED亮度

Arduino简介

Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。由一个欧洲开发团队于2005年冬季开发。其成员包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti等。
它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是通过 Arduino编程语言 (基于 Wiring)和Arduino开发环境(基于 Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。

Node.js

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。
Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。
Node对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。Node是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。

这次实验中我将控制LED灯亮度,即:
使用Node.js框架和浏览器的网页实现LED亮度控制:Arduino UNO将充当网络服务器,HTML网页将托管在PC或笔记本电脑上。

本次实验中需要用到的东西是:

1、Arduino UNO开发板
2、LED指示灯
3、电阻
4、Arduino IDE:用于将草图上传到Arduino UNO开发板。
5、Firmata:它是一种协议,用于通过计算机、智能手机等软件与不同的微控制器进行通信。Firmata固件可以加载到任何微控制器板(如Arduino、Teensy)中,并且可以与任何笔记本电脑、PC或智能手机通信。Arduino IDE自带Firmata库,因此无需从任何地方下载。
6、Johnny-Five:Johnny-Five是基于JavaScript的机器人和物联网平台,用于在JavaScript中编写代码并用于在Arduino开发板和计算机之间建立通讯。 Johnny-Five已经过各种Arduino兼容板的测试,如Arduino UNO、NANO、Promini等。在本文中,必须下载Johnny-Five库才能使用其所有功能。安装指南将在本文的后面部分进行说明。

电路原理图:
本实验只需要将LED灯和ArduinoUNO开发板连接起来即可。

Arduino和Node.js实现网页控制LED亮度

安装Johnny-Five库

现在,在下载Node.js之后,在Documents中创建一个名为“LED_Control”的新文件夹,以将所有项目文件保存在一个位置。每个项目文件都将保存在“LED_Control”文件夹中。现在下载“LED_Control”文件夹中的Johnny-Five Library。要下载,请按照以下步骤操作:
1、打开命令提示符
2、按照’cd’命令转到“LED_Control”文件夹。
3、运行命令’npm install johnny-five’
4、安装Johnny-Five的所有依赖项。
5、安装本教程中用于控制LED亮度的必要库。这里使用了三个库:

其中安装socket.io库时可能会出现rollbackfailedoptional的错误
可以通过输入以下命令
npm install -g cnpm –registry=https:“//registry.npm.taobao.org
再输入
输入cnpm -v输入是否正常
cnpm -v
出错需要配置环境变量
如下图所示:

Arduino和Node.js实现网页控制LED亮度

编写用于闪烁LED的Node.js程序:

编写Node.js程序,创建blink_led.js文件保存在“LED_Control”文件夹中。
1、初定义连接LED的微控制器引脚。在此示例中,LED连接到Arduino UNO的引脚5。 Node.js中的’var’表示变量声明。
代码如下:
var led_pin=5;
2、函数’require()’访问模块。
代码如下:
var johnny_five=require(“johnny-five”);
var arduino_board=new johnny_five.Board();
3、console.log语句类似于print语句,它将打印消息。并且LED引脚设置为输出模式,定义的延迟设置为闪烁LED。
代码如下:
console.log(“LED has Started Blinking!”);
var led = new johnny_five.Led(led_pin);
led.blink(100);

执行程序

1、打开命令提示符
2、按照’cd’命令找到“LED_Control”文件夹
3、运行’Node led_blink.js’命令。如果成功执行,它将显示“LED has Started Blinking!”

Arduino和Node.js实现网页控制LED亮度
4、打开浏览器并在网址中输入“localhost:8080”。
5、更改亮度,移动滑块即可。
亮度0时:
Arduino和Node.js实现网页控制LED亮度

文章知识点与官方知识档案匹配,可进一步学习相关知识Vue入门技能树Node.js和npmNode安装与配置22949 人正在系统学习中

来源:GDMooN

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年5月16日
下一篇 2019年5月16日

相关推荐