迷你强 发表于 2015-6-10 13:37:52

新一代的桌面气象站系统

本帖最后由 迷你强 于 2015-6-10 14:08 编辑

   大家还记得N年前本强做的一个桌面气象站系统么? 在面包板上做的,一坨一坨的连接线,相当复杂,最近我升级了下设计使用了α系列重新做了气象站

http://www.geek-workshop.com/thread-5321-1-1.html


当时的链接

重新做过的气象站拥有更简洁的外观了。当然还是通用硬件。(设备基本情况和当时的设计并没有特别的不同之处,略有升级)


基本的东西都差不多,从图上看从左到右依次是 CP2104usb串口工具(用来下载程序的),光照度传感器,328pARDUINO核心板,温湿度传感器(htu-21),气压计,锂电池控制板(电池供电,电池充电),还有下面的OLDE显示屏

依次堆叠起来







非常简单

当然啦,用了一堆库,U8GLIB库,bmp180库还有HTU-21的库

程序代码

#include <Wire.h>
#include "Adafruit_HTU21DF.h"
Adafruit_HTU21DF htu = Adafruit_HTU21DF();

#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp;

#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);        // I2C / TWI

#define ADDR0b1011100

void draw(byte id,float date) {
if(id ==0)   //temp
{
u8g.setFont(u8g_font_unifont);
u8g.drawStr( 0, 10, "Temperature");
u8g.setFont(u8g_font_freedoomr25n);
   u8g.setPrintPos(30, 45);
   u8g.print(date,1);
   u8g.setFont(u8g_font_10x20);
   u8g.print("C");
}
if(id ==1)//hum
{
u8g.setFont(u8g_font_unifont);
u8g.drawStr( 0, 10, "Humidity");
u8g.setFont(u8g_font_freedoomr25n);
   u8g.setPrintPos(40, 45);
   u8g.print(date,0);
   u8g.setFont(u8g_font_10x20);
   u8g.print("%");
}
if(id ==2)//pa
{
u8g.setFont(u8g_font_unifont);
u8g.drawStr( 0, 10, "Atmospheric pressure");
u8g.setFont(u8g_font_courB18);
   u8g.setPrintPos(0, 45);
   u8g.print(date,0);
   u8g.setFont(u8g_font_10x20);
   u8g.print("Pa");
}
if(id ==3)//gzd
{
u8g.setFont(u8g_font_unifont);
u8g.drawStr( 0, 10, "Light intensity");
u8g.setFont(u8g_font_freedoomr25n);
   u8g.setPrintPos(30, 45);
   u8g.print(date,0);
   u8g.setFont(u8g_font_10x20);
   u8g.print("Lux");
}
}

void setup(void) {

htu.begin();
bmp.begin();
Wire.begin();   //IIC初始化
Wire.beginTransmission(ADDR);
Wire.write(0b00000001);
Wire.endTransmission();

}

void loop(void) {
// picture loop


/*********aaaaaaaaaaaa*********/

int val = 0;

// reset
Wire.beginTransmission(ADDR);
Wire.write(0b00000111);
Wire.endTransmission();
delay(100);
Wire.beginTransmission(ADDR);
Wire.write(0b00100000);
Wire.endTransmission();
delay(120);
Wire.requestFrom(ADDR, 2); // 2byte every time

for (val=0; Wire.available()>=1; ) {
    char c = Wire.read();
    //Serial.println(c, HEX);
    val = (val << 8) + (c & 0xFF);
}

val = val / 1.2;

/*********aaaaaaaaaaaa*********/



float tem = htu.readTemperature();
float hum = htu.readHumidity();
float pa =bmp.readPressure();
float lux =val;
u8g.firstPage();
do {
    draw(0,tem);
} while( u8g.nextPage() );
      delay(2000);
/******************************/

    u8g.firstPage();
do {
    draw(1,hum);
} while( u8g.nextPage() );
   delay(2000);
    /******************************/
   
    u8g.firstPage();
do {
    draw(2,pa);
} while( u8g.nextPage() );
    delay(2000);
    /******************************/
   
      u8g.firstPage();
do {
    draw(3,lux);
} while( u8g.nextPage() );

// rebuild the picture after some delay
delay(2000);
}


制作过程的视频演示
http://player.youku.com/player.php/sid/XMTI1OTAzNDIyNA==/v.swf

葱拌豆腐 发表于 2015-6-10 14:14:40

沙发么?
前排鼓掌

wetnt 发表于 2015-6-10 14:18:43

非常不错,不过那个OLED屏幕,也做块板子插上去,就更利索了!

迷你强 发表于 2015-6-10 15:14:48

wetnt 发表于 2015-6-10 14:18 static/image/common/back.gif
非常不错,不过那个OLED屏幕,也做块板子插上去,就更利索了!

挡住咋办?这个考虑不清楚啊。。。

zoologist 发表于 2015-6-10 16:20:54

你们的 alpha 系列的定位是什么呢?

潜在给什么人用哦?

Super169 发表于 2015-6-10 16:26:34

的確整齊得多了, 也很方便.
但這種設計, 會否限制了傳感器使用的接口?如果每個板子上可以用 類似 dip switch 的方式去設定 使用的 I/O 就更好了.
當然, 如果 I/O 固定了, 開發的程式也可以用固定 I/O, 只要編掛上沒衝突就好了.

迷你强 发表于 2015-6-10 16:59:08

Super169 发表于 2015-6-10 16:26 static/image/common/back.gif
的確整齊得多了, 也很方便.
但這種設計, 會否限制了傳感器使用的接口?如果每個板子上可以用 類似 dip...

大部分传感器都是总线式的。不用担心啦。。就像我这次的,其实都是在一条总线上(I2C)

Super169 发表于 2015-6-10 17:56:50

是 I2C 的就比较方便, 不用考虑 接口的问题.
光照度传感器 也是 I2C 的吗?我还以为是用简单的光敏做的.

如果接其他 非 I2C 传感, 有可能做到在版子上用 switch 控制 I/O 吗?
可以的话, 相信比接线再方便.
但要把传感器收到这样细的空间, 可能会有点难度.

不过, 这个设计, 真的可以方便了很多, 而且接线减少了, 也整齐得多了.

wetnt 发表于 2015-6-10 19:00:08

迷你强 发表于 2015-6-10 15:14 static/image/common/back.gif
挡住咋办?这个考虑不清楚啊。。。

可以做侧面显示的啊……

suoma 发表于 2015-6-10 23:55:00

堆叠设计,刚好体现了积木特性

迷你强 发表于 2015-6-11 11:02:37

suoma 发表于 2015-6-10 23:55 static/image/common/back.gif
堆叠设计,刚好体现了积木特性

:lol

大尾鲈鳗 发表于 2015-6-11 13:03:50

{:soso_e179:}

mikeliujia 发表于 2015-6-11 14:41:11

我也觉得比较适合教学:lol
页: [1]
查看完整版本: 新一代的桌面气象站系统