树莓派.使用Node.js控制GPIO
树莓派上的40个GPIO是最好玩的东西
它们可以被C,/C++, Python, Java等语言直接控制
现在就来看看怎么用Node.js做到同样的事情
在试验之前, 请先安装好Node.js, 具体可以移步到: <树莓派.安装系统+Node.js+MongoDB系列环境>
1.准备试验文件夹
mkdir /home/pi/Documents/test-gpio-demo/
2.创建文件package.json
{
"name": "test-gpio-demo",
"version": "0.0.1",
"dependencies":{
"rpio2":"0.4.1"
}
}
3.创建主文件blank.js
//blink.js
const Gpio = require('/home/pi/Documents/test-gpio/node_modules/rpio2/lib/index.js').Gpio;
var led = new Gpio(); //创建 P36 引脚 led.open(Gpio.OUTPUT, Gpio.LOW); //设置为 OUTPUT、默认低电平 for(var i = ; i < ; i++){
led.toggle(); //切换 led 的电平状态
led.sleep(); //等待 500ms
} led.close();
4.硬件电路连接
第36脚(GPIO16) 经过一个电阻(220欧或1K都可以),再接到LED的正级
LED负级接到第34脚(GND)
5.试运行
node /home/pi/Documents/test-gpio-demo/blank.js
闪灯效果:
亮灯
灭灯:
试验成功!
===============================分隔线=========================
rpio2常规用法: Synchronously
const Gpio = require('./lib/index.js').Gpio;
const gpio = new Gpio(); gpio.open(Gpio.OUTPUT); for(var i = ; i < ; i++){
gpio.toggle();
gpio.sleep();
} gpio.close();
Asynchronously
const Gpio = require('../lib/index.js').Gpio;
const gpio = new Gpio(); gpio.open(Gpio.OUTPUT); void function loop(){
Promise.resolve(gpio.toggle())
.then(gpio.sleep.bind(null, , true))
.then(loop)
}(); process.on("SIGINT", function(){
gpio.close(); console.log('shutdown!');
process.exit();
});
Toggle with button
const Gpio = require('../lib/index.js').Gpio;
const button = new Gpio();
const output = new Gpio(); button.open(Gpio.INPUT);
output.open(Gpio.OUTPUT, Gpio.LOW); //button down
button.on('rising', function(){
output.toggle();
}); process.on("SIGINT", function(){
button.close();
output.close(); console.log('shutdown!');
process.exit();
});
树莓派.使用Node.js控制GPIO的更多相关文章
- 树莓派.使用Node.js来制作一个作业检查仪
先上图 前段时间, 花了点时间给女儿做了个数学习题的小程序 首页 做题界面(题目每次都随机生成, 加减乘除都有) 做题记录 现在问题来了, 怎么才能随时知道作业有没有完成呢? 每次打开做题记录页面刷新 ...
- 树莓派与node.js —— onoff、dht
1. 发光二极管 tm-onoff var Gpio = require('tm-onoff').Gpio, led = new Gpio(17, 'out'), button = new Gpio( ...
- 树莓派安装node.js
因为树莓派是arm架构,node.js上并没有提供arm架构的二进制包下载. 试过使用apt包管理安装和直接node.js源代码编译安装(编译了四五个小时...),都没有成功,报非法指令错误,预计还是 ...
- node.js控制请求处理数量
问题: 现在有一个接口,这个接口用到了无头浏览器,总之是一个比较消耗内存的接口,并发上来后,这个接口会把服务器内存榨干,导致服务器宕机.现在在不加机器的情况下,并发上来后我该怎么做既能处理掉所有请求又 ...
- 《Node.js In Action》笔记之流程控制
转向Javascript后,开始学习了node.js,选择的第一本书是<Node.js in Action> 将近一个月时间,断断续续看完,选几个点做下笔记 1.实现串行化流程控制 var ...
- Node.js中Async详解:流程控制
安装 npm install async --save 地址 https://github.com/caolan/async Async的内容主要分为三部分 流程控制: 简化九种常见的流程的处理 集合 ...
- [js高手之路]Node.js模板引擎教程-jade速学与实战2-流程控制,转义与非转义
一.转义与非转义 jade模板文件代码: doctype html html head meta(charset='utf-8') title jade学习-by ghostwu body h3 转义 ...
- 树莓派.安装系统+Node.js+MongoDB系列环境
1.先去树莓派官网下载最新的ROM https://www.raspberrypi.org/downloads/raspbian/ 这里选的是: RASPBIAN JESSIE WITH DESKTO ...
- 使用events.EventEmitter 控制Node.js 程序执行流程
使用events.EventEmitter 控制Node.js 程序执行流程 标题写的可能也不太对,大家领会精神: Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. ...
随机推荐
- Java第十三周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...
- PHOTOSHOP常用快捷键大全
PHOTOSHOP常用快捷键大全一.文件新建 CTRL+N打开 CTRL+O 打开为 ALT+CTRL+O关闭 CTRL+W保存 CTRL+S 另存为 CTRL+SHIFT+S另存为网页格式 CTRL ...
- 第一部分----HTML的基本结构与基本标签
PART-1 HTML的基本结构以及Header的部分 一.什么是HTML? HTML是超文本标签语言,即网页的源码.而浏览器就是翻译解释HTML源码的工具. 二.HTML文档的结构: 三.详细注释 ...
- linux fork两次避免僵尸进程的程序(简单)
#include<stdio.h> #include<unistd.h> int main() { pid_t pid,pid1; int status; ) { printf ...
- hibernate中Query的list和iterator区别
1.Test_query_list类 public class Test_query_iterator_list { public static void main(String[] args) { ...
- 易语言 【寻找文本】命令的bug
最近在重写易语言模块的时候,在取子文本操作时老是出错,经常出现一些奇怪的问题,一开始以为是代码问题,可是找半天硬是找不到问题所在. 于是进入了找bug模式,这么几行代码,看了我半个小时,左改右改,总感 ...
- HTML超文本
1.HTML链接 2.HTML表格 3.HTML图像 4.HTML列表 5.HTML块 6.HTML布局 7.HTML表单 1.HTML链接 (1)给文字及图片添加超链接 < html> ...
- Matlab入门学习(程序设计)
一.循环(for,while) for循环: for i=begin:step:end ...... end while循环: while condition ...... end 二.分枝(if,i ...
- Python操作csv文件
1.什么是csv文件 The so-called CSV (Comma Separated Values) format is the most common import and export fo ...
- Divisors poj2992
Divisors Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9940 Accepted: 2924 Descript ...