树莓派网页控制小灯教程
这是我很早之前写的文章,整体逻辑不复杂,功能也很简单,就是多端控制二极管。
大体的思路就是,先写一个后台提供接口对小灯进行控制。
web端和APP都是发起接口,控制小灯的。
电路图分析
正极接GP17,负极接GND
实物连接图如下:
开发环境
- wiringPi
- nodejs
- git
安装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小灯。