通过blinker获取BMP180气压传感器数据-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3344|回复: 7

[分享] 通过blinker获取BMP180气压传感器数据

[复制链接]
发表于 2019-8-22 08:43 | 显示全部楼层 |阅读模式
[md]
# BMP180  
BMP180是当前最常用的气压传感器传感器之一,可以检测温度和气压,通过这两个数据还可以计算出当前海拔高度。

之前的示例中展示了blinker获取DHT温湿度传感器的数据
[使用blinker结合DHT22](https://www.arduino.cn/thread-83176-1-1.html)
这里再提供一个获取BMP180气压传感器数据的示例,方便大家更好的理解blinker设备端开发方法  

# 硬件&接入方式  
开发板使用esp8266开发板,接入方式为WiFi接入   
BMP180为IIC传感器,连接到开发板IIC接口即可  

# 驱动库  
本示例中使用的驱动库为Adafruit-BMP085-Library  
[点击下载](https://github.com/adafruit/Adafruit-BMP085-Library/archive/master.zip)
[Github](https://github.com/adafruit/Adafruit-BMP085-Library)

# 示例程序  
```
#define BLINKER_WIFI

#include <Blinker.h>

char auth[] = "Your Device Secret Key";
char ssid[] = "Your WiFi network SSID or name";
char pswd[] = "Your WiFi network WPA password or WEP key";

BlinkerNumber TEMP("temp"); // 温度
BlinkerNumber PRES("pres"); // 气压
BlinkerNumber ALTI("alti"); // 海拔

// Download Adafruit-BMP085-Library library here:
//https://github.com/adafruit/Adafruit-BMP085-Library
#include <Wire.h>
#include <Adafruit_BMP085.h>

Adafruit_BMP085 bmp;

void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);

    Blinker.vibrate();
   
    uint32_t BlinkerTime = millis();
   
    Blinker.print("millis", BlinkerTime);
}

void heartbeat()
{
    TEMP.print(bmp.readTemperature());
    PRES.print(bmp.readPressure());
    ALTI.print(bmp.readAltitude());
}

void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);

    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, LOW);

    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
    Blinker.attachHeartbeat(heartbeat);
   
    if (!bmp.begin()) {
        BLINKER_LOG("Could not find a valid BMP085 sensor, check wiring!");
        while (1) {delay(100);}
    }
}

void loop()
{
    Blinker.run();
}
```[/md]

发表于 2019-11-29 18:51 | 显示全部楼层
这对应的SCL\SDA脚是什么呢?

点评

对于8266开发板 I2C (Wire library) Wire library currently supports master mode up to approximately 450KHz. Before using I2C, pins for SDA and SCL need to be set by calling Wire.begin(int sda, int scl),  详情 回复 发表于 2019-11-29 20:17
发表于 2019-11-29 20:17 | 显示全部楼层
凝固勒水 发表于 2019-11-29 18:51
这对应的SCL\SDA脚是什么呢?

对于8266开发板
I2C (Wire library)
Wire library currently supports master mode up to approximately 450KHz. Before using I2C, pins for SDA and SCL need to be set by calling Wire.begin(int sda, int scl), i.e. Wire.begin(0, 2) on ESP-01, else they default to pins 4(SDA) and 5(SCL).

https://arduino-esp8266.readthed ... ml#i2c-wire-library
发表于 2019-12-5 13:25 | 显示全部楼层
奈何col 发表于 2019-11-29 20:17
对于8266开发板
I2C (Wire library)
Wire library currently supports master mode up to approximately  ...

谢谢回复,学习了~~
发表于 2020-3-5 08:26 来自手机 | 显示全部楼层
你好!我按这程序、blinker APP上只显示温度、压力和高度都没有显示。数据健名设置都对的、请问是什么问题?谢谢
发表于 2020-3-5 09:59 来自手机 | 显示全部楼层
气压要设置标准大气压,高度要设置成珠穆朗玛峰的高度,不知我的建议是否正确。
发表于 2020-3-5 10:00 来自手机 | 显示全部楼层
wthjq 发表于 2020-3-5 08:26
你好!我按这程序、blinker APP上只显示温度、压力和高度都没有显示。数据健名设置都对的、请问是什么问题 ...

气压要设置标准大气压,高度要设置成珠穆朗玛峰的高度,不知我的建议是否正确。
 楼主| 发表于 2020-3-5 18:47 | 显示全部楼层
wthjq 发表于 2020-3-5 08:26
你好!我按这程序、blinker APP上只显示温度、压力和高度都没有显示。数据健名设置都对的、请问是什么问题 ...

添加调试组件,看看app是否收到数据,如果收到没显示,那就是你设置问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 17:57 , Processed in 0.101265 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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