码农之家

树莓派(Raspberry Pi)Node.js多端控制Led小灯

树莓派网页控制小灯教程

这是我很早之前写的文章,整体逻辑不复杂,功能也很简单,就是多端控制二极管。

大体的思路就是,先写一个后台提供接口对小灯进行控制。

web端和APP都是发起接口,控制小灯的。

电路图分析

正极接GP17,负极接GND

实物连接图如下:

开发环境

安装wiringPi

cd ~/Desktop/

git clone git://git.drogon.net/wiringPi

cd wiringPi

./build

安装nodejs

具体安装步骤,可以参考我之前写的文章。学习Node.js和Raspberry Pi(树莓派)(一)树莓派介绍和Node.js安装配置

输入node -v显示node版本信息则正常

测试

安装好wiringPi和nodejs,我们就可以先测试一下了
输入:

gpio mode 0 out(0代表的是之前我们连接的GP17)

我们也可以这样

gpio -g mode 17 out

输入:

gpio write 0 1

向0写入高电平,此时如果正常,小灯应该亮了,如果出现异常请仔细检查线路连接是否正确
输入:

gpio write 0 0#向0写入低电平,小灯灭

后台逻辑编辑

脚本编辑,读取当前小灯状态,开灯或关灯,并返回小灯状态。

#!/bin/bash
status=`gpio read 0`
echo $status
if [ 0 -eq $status ];then
    gpio write 0 1
else
    gpio write 0 0
fi
status=`gpio read 0`
echo $status

后台逻辑编写,以post方式请求接口,并返回小灯的状态。

app.post('/api/led',(req,res)=>{
    exec('bash ./bash/led.sh',(err,stdout,stderr)=>{
        if(err){
            res.json({"err":err})
        }
        res.json({"success":stdout});
    })

})

后台

git clone https://github.com/Caibiy/LED.git && npm install --save && node app.js

访问地址:

http://localhost:8080

可以对小灯进行控制了,当灯灭的时候,画面上的灯就是暗的,当灯亮的时候,画面对应的背景图片就亮了。

APP

APP需要下载AndroidStudio和相关sdk

git clone https://github.com/Caibiy/LedApp.git

导入到AndroidStudio后等待build后修改接口地址为树莓派的地址,然后进行安装如果有安卓手机可以直接安装到自己手机上,如果没有可以安装到模拟器上进行控制Led小灯。