树莓派入门-Node.js入门

最近想用树莓派去做无人洗车机的中控系统,这里面需要使用到GPIO接口来控制各路继电器。

对于很多来说,树莓派可能意味着入门需要迈过C语言、Linux操作系统底层等等门槛。经过一番查找,发现现在树莓派上可以运行Node.js了,而且可以控制GPIO口,这就意味着你能够用它实现端口数据传输、开关设备等操作了。

什么是GPIO

树莓派的开发基础是用程序来控制板上的 GPIO 引脚的逻辑值(也就是电平高低)。

这一排中右侧标记为橙色的引脚就是 GPIO
这一排中右侧标记为橙色的引脚就是 GPIO

GPIO 引脚可以设置为输入和输出两种状态,输出状态即是由程序控制引脚的输出,0表示低电平,1表示高电平(此时该引脚为+3.3V电压)。输入状态是由外接设备给该引脚引入信号,输入状态下的引脚是只读的不可写,可以读取状态。此时的引脚还有上拉或下拉电阻可以设置。

实例

下面我们通过一个直观的例子就可以体会用树莓派控制硬件设备有多简单:

  1. 取一个发光二极管元件
  2. 将它的正极连接 P36 脚(即 GPIO 16),将它的负级接旁边的 P34 脚(GND,接地)
  3. 编写程序 blink.js:
//blink.js
var Gpio = require("rpio2");
var led = new Gpio(36);  //创建 P36 引脚

led.open(Gpio.OUTPUT, Gpio.LOW); //设置为 OUTPUT、默认低电平

for(var i = 0; i < 10; i++){
    led.toggle();  //切换 led 的电平状态
    led.sleep(500);  //等待 500ms
}

led.close();

安装 rpio2 库,执行 node blink.js,就会看到连接的 LED 元件闪烁 5 下,每次闪烁 1s。

拓展

如果将二级发光管换成一个继电器,继电器另一头连接的电机、灯泡等设备,那就可以实现中控的控制部分功能了。接下来,是写传感器的数据读取,实现控制的反馈逻辑。