硬件需求php
WIFI無線路由器css
Raspberry Pi B+html
DHT11 溫溼度傳感器和4.7k 歐姆的電阻java
麪包板一塊node
一些母對公的杜邦線jquery
樹莓派運行起來
首先你的樹莓派已經能夠正常啓動和工做。
具體操做請參考官方快速啓動文檔:https://www.raspberrypi.org/help/quick-start-guide/web
更新系統shell
sudo apt-get update sudo apt-get dist-upgrade -y sudo reboot
進入樹莓派SSH,下載和編譯芯片庫
肯定樹莓派芯片型號, 個人是樹莓派B+,CPU是 博通BCM2836因此我下在的是:t http://www.airspayce.com/mikem/bcm2835/bcm2835-1.46.tar.gz
注:實際上支持2836, 經過cpuinfo查詢史其實是2709,能夠查看:http://bbs.21ic.com/forum.php?mod=viewthread&tid=1180900。
下載express
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.46.tar.gz
安裝
npm
tar xzvf bcm2835-1.46.tar.gz cd bcm2835-1.46 ./configure make sudo make check sudo make install
下載和安裝Node.js:
因爲Node.js安裝在嵌入式設備,樹莓派使用的ARMv7芯片,使用Node.js時則須要關注Node.js版本,因爲node4.0以上版本已經提供了armv7的bin包,可是因爲存在兼容性問題咱們仍是使用node-v0.12.7.tar.gz
下載
wget http://nodejs.org/dist/v0.12.7/node-v0.12.7.tar.gz
編譯Node.js
tar xzvf node-v0.12.7.tar.gz cd node-v0.12.7 ./configure make sudo make install
這個過程須要花費2小時左右的時間,可能中間還會出現錯誤退出,繼續執行未完成的命令就好。
下載相關依賴包
npm install node-dht-sensor express ejs
8.硬件設備接法
認識樹莓派GPIO排插,能夠參考這個:
http://pi4j.com/images/j8header-b-plus-large.png
DHT11溫溼度傳感器
http://tu.webps.cn/tb/img/4/T1C0P8FpxdXXXXXXXX_!!0-item_pic.jpg
九、接法:
一、鏈接VCC到板的子3.3v,
二、 GND鏈接板子的GND,DATA和VCC之間須要放置一個4.7K電阻,
三、DATA鏈接GPIO端口
注意:請在樹莓派關機斷電狀況下操做。
建立一個WIFI訪問的Node.js項目
pi@raspberrypi ~/app $ find
. ./views ./views/interface.ejs ./app.js ./js ./public ./public/pictures ./public/css ./public/js ./public/js/interface.js ./public/js/jquery-1.8.3.min.js
app.js
var sensorLib = require('node-dht-sensor'); var express = require('express'); var ejs = require('ejs'); var app = express(); app.set('views', __dirname + '/views'); app.set('view engine', 'ejs') app.use(express.static(__dirname + '/public')) var DHT11_GPIO = 21; //GPIO端口 var DHT11 = 11; //傳感器型號 sensorLib.initialize(DHT11, DHT11_GPIO); app.get('/interface', function(req, res){ var readout = sensorLib.read(); // console.dir(readout) res.render('interface', {temperature: readout.temperature.toFixed(2), humidity: readout.humidity.toFixed(2)}); }); var server = app.listen(3000, function() { console.log('Listening on port %d', server.address().port); });
interface.js <doctype html> <h1>樹莓派</h1> <ul> <li>溫度:<%=temperature%>。C</li> <li>溼度:<%=humidity%>%</li> </ul>
啓動項目
pi@raspberrypi ~/app $ sudo node app.js Listening on port 3000
訪問頁面
在瀏覽器中輸入:
http://192.168.8.24:3000/interface
樹莓派 溫度:20.00。C 溼度:38.00%