极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 90853|回复: 32

[迷你DIY]arduino 桌面气象站

[复制链接]
发表于 2013-7-15 10:45:26 | 显示全部楼层 |阅读模式
本帖最后由 迷你强 于 2013-8-30 10:05 编辑

本实验基础平台:气象站套件




wiki详情:http://wiki.ocrobot.com/doku.php?id=zh:weather_stations_kit   



     今天做了一个小小气象站,顺便做成套件了。这个气象站能测量当前的温度、湿度、大气压,已经有了基本的测量数据,使用了两款传感器  BMP085气压计   DHT11温湿度传感器 ,一款低成本的8*8矩阵显示器。核心控制是由NANO做的。



BMP085 和 8*8矩阵是I2C通讯接口,所以直接接在一条串行总线上即可,DHT11使用单总线通讯接口,我们使用NANO做内上拉,所以可以省略上拉电路
设计图如下


很清晰明了吧。。。
附上原理图


然后我就飞线飞线在飞线,然后成品就诞生了



插好以后就把程序烧进去就行了


需要如下几个驱动库放到arduino里。。。
BMP085库
DHT11
i2c 8*8矩阵库
adafruit绘图库


  1. /*======通用I2C驱动库调用======*/
  2. #include <Wire.h>

  3. /*========BMP085气压计库调用=====*/
  4. #include <Adafruit_BMP085.h>
  5. Adafruit_BMP085 bmp;

  6. /*========8*8点阵库调用========*/
  7. #include "Adafruit_LEDBackpack.h"
  8. #include "Adafruit_GFX.h"
  9. Adafruit_BicolorMatrix matrix = Adafruit_BicolorMatrix();


  10. /*========DHT11传感器库调用=======*/
  11. #include "DHT.h"
  12. #define DHTPIN 3
  13. #define DHTTYPE DHT11   
  14. DHT dht(DHTPIN, DHTTYPE);

  15. /*=========程序开始===========*/

  16. void setup() {

  17.   bmp.begin();                 //初始化气压计
  18.   dht.begin();                //初始化DHT11传感器
  19.    pinMode(3,INPUT_PULLUP);    //使用IO口内上拉 将DHT11输出口上拉
  20.   matrix.begin(0x70);  // 初始化I2C 8X8点阵屏幕的地址位
  21. }



  22. void loop() {

  23.   float temp = bmp.readTemperature();             //读取温度数据 (BMP085)
  24.   long pa = bmp.readPressure();   //读取气压数据 (BMP085)
  25. float hpa = pa /100.0 ;           //将Pa换算成hPa
  26.   int hum = dht.readHumidity();                  //读取湿度(DHT11)


  27. matrix.setRotation(2);           //显示方向
  28.   matrix.setTextWrap(false);  // 文本不换行,所以以滚动方式显示
  29.   matrix.setTextSize(1);      //字号,推荐最小号
  30.   matrix.setTextColor(LED_GREEN);   //指定led颜色, 在双色点阵下有效。单色点阵请保持默认


  31.   /*===========显示温度==========*/
  32.   for (int8_t x=7; x>=-70; x--) {    //x>=-70 这个数值,如果内容很长,适当放长,如果短就适当缩短
  33.     matrix.clear();
  34.     matrix.setCursor(x,0);
  35.     matrix.print("Temp:");
  36.     matrix.print(temp,1);
  37.     matrix.print("C");
  38.     matrix.writeDisplay();
  39.     delay(100);
  40.   }

  41.   /*=============显示气压============*/
  42.       for (int8_t x=7; x>=-90; x--) {
  43.     matrix.clear();
  44.     matrix.setCursor(x,0);
  45.     matrix.print("Atm:");
  46.     matrix.print(hpa);
  47.     matrix.print("hPa");
  48.     matrix.writeDisplay();
  49.     delay(100);

  50.   }
  51.   /*==============显示湿度==============*/
  52.   for (int8_t x=7; x>=-70; x--) {
  53.     matrix.clear();
  54.     matrix.setCursor(x,0);
  55.     matrix.print("RH:");
  56.     matrix.print(hum);
  57.     matrix.print("%");
  58.     matrix.writeDisplay();
  59.     delay(100);
  60.   }

  61. }
复制代码




妥了

看看效果吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2013-7-15 10:50:50 | 显示全部楼层
挺精美的样子
回复 支持 反对

使用道具 举报

发表于 2013-7-15 12:15:59 | 显示全部楼层
难得发新帖啦~
不过这个点阵显示的信息量也够大的,估计有1M长了吧
回复 支持 反对

使用道具 举报

发表于 2013-7-15 12:57:10 | 显示全部楼层
刚上强老师的现场了!呵呵。
回复 支持 反对

使用道具 举报

发表于 2013-7-15 13:01:03 | 显示全部楼层
对了 ,迷你老师,我在极客工坊的淘宝买了红外线LED,然后接了个110欧电阻(并了俩220的),直接通电,结果发现发光极其微弱,目视只有普通遥控器的10分之一不到。现在什么都遥控不到。请问该如何办呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-15 13:48:13 | 显示全部楼层
iRobot 发表于 2013-7-15 13:01
对了 ,迷你老师,我在极客工坊的淘宝买了红外线LED,然后接了个110欧电阻(并了俩220的),直接通电,结果 ...

肉眼????红外光谱人眼是看不到的。。。。你只能看到微量的可见光谱部分
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-15 13:48:46 | 显示全部楼层
幻生幻灭 发表于 2013-7-15 12:15
难得发新帖啦~
不过这个点阵显示的信息量也够大的,估计有1M长了吧

信息量,貌似可以无限往里扔
回复 支持 反对

使用道具 举报

发表于 2013-7-15 14:47:33 | 显示全部楼层
好吧,我的意思是信息量太大,显示面积太小不直观。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-15 16:26:58 | 显示全部楼层
幻生幻灭 发表于 2013-7-15 14:47
好吧,我的意思是信息量太大,显示面积太小不直观。

便宜啊~~~~~8*8显示器便宜。。。
回复 支持 反对

使用道具 举报

发表于 2013-7-15 16:38:14 | 显示全部楼层
迷你强 发表于 2013-7-15 13:48
肉眼????红外光谱人眼是看不到的。。。。你只能看到微量的可见光谱部分

我说的肉眼是指眼睛通过摄像头看,区别于仪器检测。
回复 支持 反对

使用道具 举报

发表于 2013-7-15 18:31:07 | 显示全部楼层
这个设计非常巧妙,谢谢分享,特别一提的是他所选用i红色iic 的点阵,很好,我用过一块所谓真彩色的8*8点阵,这种彩色只能远在数米开外看,近看效果很差,所以选择单色是聪明的高手。
回复 支持 反对

使用道具 举报

发表于 2013-7-15 18:33:44 | 显示全部楼层
iRobot 发表于 2013-7-15 13:01
对了 ,迷你老师,我在极客工坊的淘宝买了红外线LED,然后接了个110欧电阻(并了俩220的),直接通电,结果 ...

可以尝试的接更小的电阻看看,这款红外发射管功率比较小,一般遥控距离在1米左右。更远的就需要换更大功率的红外发光管了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-15 21:24:34 | 显示全部楼层
iRobot 发表于 2013-7-15 16:38
我说的肉眼是指眼睛通过摄像头看,区别于仪器检测。

请注意摄像头是否是比较昂贵的手机或者较为高价值的摄像头,近些年新出的质量较好的摄像头都配有高质量的红外低通滤镜,例如IPHONE4,几乎能滤除所有的红外线,原来我们测试过,使用IPHONE4拍摄红外二极管基本看不出发光
回复 支持 反对

使用道具 举报

发表于 2013-7-15 21:44:48 | 显示全部楼层
请教版内各位朋友,红、黄、绿三色的led点阵屏卖么?
回复 支持 反对

使用道具 举报

发表于 2013-7-15 22:50:26 | 显示全部楼层
迷你强 发表于 2013-7-15 21:24
请注意摄像头是否是比较昂贵的手机或者较为高价值的摄像头,近些年新出的质量较好的摄像头都配有高质量的 ...

迷你老师,我不知道我遇到的是不是你说的那个情况,不过我先前说了,目测只有遥控器的十分之一的亮度,难道这不能推断出我是拿着空调遥控器对比过嘛。。。

我是从#3口接正极,负极并联6个220欧电阻之后接gnd,直接put #3 high观察,发光十分微弱。完全起不到遥控作用。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 22:01 , Processed in 0.066346 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表