文档章节

利用树莓派监控家里温度和湿度

Joy1024
 Joy1024
发布于 2015/11/22 19:36
字数 743
阅读 859
收藏 14
  1. 硬件需求

    • WIFI无线路由器

    • Raspberry Pi B+

    • DHT11 温湿度传感器和4.7k 欧姆的电阻

    • 面包板一块

    • 一些母对公的杜邦线

  2. 树莓派运行起来
        首先你的树莓派已经可以正常启动和工作。
        具体操作请参考官方快速启动文档:https://www.raspberrypi.org/help/quick-start-guide/

  3. 更新系统

  4. sudo apt-get update
    sudo apt-get dist-upgrade -y
    sudo reboot
  5. 进入树莓派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。
        
    下载

  6. wget  http://www.airspayce.com/mikem/bcm2835/bcm2835-1.46.tar.gz

    安装

    tar xzvf bcm2835-1.46.tar.gz
    cd  bcm2835-1.46
    ./configure
    make
    sudo make check
    sudo make install
  7. 下载和安装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

9、接法:

     1、连接VCC到板的子3.3v,

    2、 GND连接板子的GND,DATA和VCC之间需要放置一个4.7K电阻,

    3、DATA连接GPIO端口

注意:请在树莓派关机断电情况下操作。

  1. 创建一个WIFI访问的Node.js项目

  2. pi@raspberrypi ~/app $ find
  3. .
    ./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
  4. app.js
  5. 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);
    });


  6. interface.js
    <doctype html>
    <h1>树莓派</h1>  
    <ul>  
        <li>温度:<%=temperature%>。C</li>
        <li>湿度:<%=humidity%>%</li>
    </ul>

启动项目

  1. pi@raspberrypi ~/app $ sudo node app.js 
    Listening on port 3000

访问页面
在浏览器中输入:

  1. http://192.168.8.24:3000/interface
  2. 树莓派
    温度:20.00。C
    湿度:38.00%


    

© 著作权归作者所有

Joy1024
粉丝 9
博文 49
码字总数 12997
作品 0
东城
架构师
私信 提问
云上树莓派(2):将传感器数据上传到 AWS IoT 并利用Kibana进行展示

云上树莓派(1):环境准备 云上树莓派(2):将传感器数据上传到AWS IoT 并利用Kibana进行展示 1. 传感器安装及配置 1.1 DHT22 安装 DHT22 是一款温度与湿度传感器,它有3个针脚,左边的第一...

SammyLiu
2018/08/09
0
0
树莓派下DHT11温湿度传感器控制程序(python)

首先简要说明一下树莓派,然后介绍DHT11,最后附上相关代码。 树莓派引脚功能 树莓派引脚分为多种,最常见的有40引脚和26引脚。其引脚号数一致的引脚功能也一致。以40引脚的为例,引脚资源为...

鄙人张钊_有何贵干
01/18
0
0
用 NodeJS 驱动硬件 - oneDevice

oneDevice.js 用 NodeJS 驱动硬件。 这是什么? 这是一个旨在用NodeJS驱动硬件的驱动包。开箱即用、完善的文档、持续更新、友好的API。用树莓派打造自己的智能家居。 我对智能家居非常感兴趣...

LanFly
2018/04/24
537
0
用树莓派和DS18B20做个汽车温度记录仪[原创]

用树莓派和DS18B20做个汽车温度记录仪[原创] 很想知道夏日阳光暴晒下,汽车内的最高温度以及温度的变化情况。觉得用树莓派和DS18B20来实现应该很简单,于是就尝试捣鼓了一下,半天时间就搞定...

helesheng
2018/08/01
0
0
树莓派使用DHT11温湿度传感器

一、相关介绍 DHT11介绍: DHT11是一款比较便宜的温湿度传感器模块。读取数据只需要占用一个IO口。能够同时测量温度和相对湿度。 DHT11的数据手册可以看这里:http://wenku.baidu.com/view/1...

李鱼跃龙门
2014/06/07
19.9K
18

没有更多内容

加载失败,请刷新页面

加载更多

PostgreSQL 11.3 locking

rudi
46分钟前
5
0
Mybatis Plus sql注入器

一、继承AbstractMethod /** * @author beth * @data 2019-10-23 20:39 */public class DeleteAllMethod extends AbstractMethod { @Override public MappedStatement injectMap......

一个yuanbeth
今天
8
1
一次写shell脚本的经历记录——特殊字符惹的祸

本文首发于微信公众号“我的小碗汤”,扫码文末二维码即可关注,欢迎一起交流! redis在容器化的过程中,涉及到纵向扩pod实例cpu、内存以及redis实例的maxmemory值,statefulset管理的pod需要...

码农实战
今天
4
0
为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符串拼接的效率...

武培轩
今天
8
0
队列-链式(c/c++实现)

队列是在线性表功能稍作修改形成的,在生活中排队是不能插队的吧,先排队先得到对待,慢来得排在最后面,这样来就形成了”先进先出“的队列。作用就是通过伟大的程序员来实现算法解决现实生活...

白客C
今天
78
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部