查看: 594|回复: 3

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

[复制链接]
发表于 2019-8-22 08:43 | 显示全部楼层 |阅读模式

BMP180

BMP180是当前最常用的气压传感器传感器之一,可以检测温度和气压,通过这两个数据还可以计算出当前海拔高度。

之前的示例中展示了blinker获取DHT温湿度传感器的数据
使用blinker结合DHT22
这里再提供一个获取BMP180气压传感器数据的示例,方便大家更好的理解blinker设备端开发方法  

硬件&接入方式

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

驱动库

本示例中使用的驱动库为Adafruit-BMP085-Library
点击下载
Github

示例程序

#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();
}


发表于 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  ...

谢谢回复,学习了~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

Blynk与m5stack basic以及uiflow的交互玩法
Blynk与m5stack basic以及
Blynk与m5stack basic以及uiflow的交互玩法 [准备工作我们假设玩家已经熟悉下面的准备
求大佬帮助
求大佬帮助
有没有大佬能帮我把这个转化成c语言的啊,萌新完全看不懂 顺便弱弱的问一句如何将多个
VSCode写Arduino提示无法打开源文件"avr/pgmspace.h"
VSCode写Arduino提示无法
整个程序就这点内容,只是做个测试。 Ctrl+Alt+U的上传是没有问题。但是这里有个错误
【干货分享】mega2560原理图PCB图纸altium designer18
【干货分享】mega2560原理
分享一下mega2560的板子 AD版本 **** 本内容被作者隐藏 **** ergo
【原创】 drawbot平面关节scara机械臂写字机 画画机器人直播...
【原创】 drawbot平面关节
这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太忙,一直没来得及
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表