2024年5月18日土曜日

ambient pedia

 ESP32でBME280から取得したデータをAmbientに送信する | Wak-tech 

bme280をi2cで使う際は注意が必要(秋月パンフみること,GNDに2個おとす!)

Arduino ESP8266で温度・湿度を測定し、Ambientに送ってグラフ化する – Ambient (ambidata.io) これを改変するがサイトにグラフ化の手順も書いている 便利

#include <WiFi.h>

#include <Wire.h>

#include <Adafruit_Sensor.h>

#include <Adafruit_BME280.h>

#include "Ambient.h"

#define PERIOD 300

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme;

WiFiClient client;

Ambient ambient;


unsigned long delayTime;

float temp;

float pressure;

float humid;


const char* ssid = "";

const char* password = "";


unsigned int channelId = 78037;

// AmbientのチャネルID

const char* writeKey = "1cee9795917843b8"; // ライトキー


void setup() {

  Serial.begin(115200);

  bool status;

  status = bme.begin(0x76);  

  while (!status) {

    Serial.println("BME280 sensorが使えません");

    delay(1000);

  }

  delayTime = 1000;

  WiFi.begin(ssid, password);  //  Wi-Fi APに接続

    while (WiFi.status() != WL_CONNECTED) {  //  Wi-Fi AP接続待ち

        delay(100);

    }


  Serial.print("WiFi connected\r\nIP address: ");

  Serial.println(WiFi.localIP());

  ambient.begin(channelId, writeKey, &client); // チャネルIDとライトキーを指定してAmbientの初期化

}

void loop() { 

  temp=bme.readTemperature();

  pressure=bme.readPressure() / 100.0F;

  humid=bme.readHumidity();

  Serial.print("温度 ;");

  Serial.print(temp);

  Serial.println(" °C");

   

  Serial.print("気圧 ;");

  Serial.print(pressure);

  Serial.println(" hPa");

  Serial.print("湿度 ;");

  Serial.print(humid);

  Serial.println(" %");

  Serial.println();

  delay(delayTime);

  ambient.set(1, temp); // 温度をデータ1にセット

  ambient.set(2, humid); // 湿度をデータ2にセット

  ambient.set(3, pressure); // 気圧をデータ3にセット


  ambient.send(); // データをAmbientに送信


  delay(PERIOD * 1000);

}

0 件のコメント:

コメントを投稿