A weather station
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

102 lines
2.2 KiB

/*
* WetterStation
* Version: 0.0
* Author: Hendrik Langer <hendrik+dev@xd0.de>
*/
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP085_U.h>
#include <DHT.h>
const char* server = "ingress.opensensemap.org";
const char* ssid = "Freifunk";
const char* password = "";
constexpr unsigned int postingInterval = 60000; //Uploadintervall in Millisekunden
//senseBox ID
#define SENSEBOX_ID "5a9e9e38f55bff001a494877"
//Sensor IDs
// Temperature
#define SENSOR1_ID "5a9e9e38f55bff001a49487e"
// Humidity
#define SENSOR2_ID "5a9e9e38f55bff001a49487d"
// Pressure
#define SENSOR3_ID "5a9e9e38f55bff001a49487c"
// PM10
#define SENSOR4_ID "5a9e9e38f55bff001a49487b"
// PM2.5
#define SENSOR5_ID "5a9e9e38f55bff001a49487a"
// Radioactivity
#define SENSOR6_ID "5a9e9e38f55bff001a494879"
// Voltage
#define SENSOR7_ID "5a9e9e38f55bff001a494878"
static constexpr uint8_t BMP_SCL = D4;
static constexpr uint8_t BMP_SDA = D3;
static constexpr uint8_t DHT22_PIN = D7;
static constexpr uint8_t DHTTYPE = DHT22; // DHT 22 (AM2302)
Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(10085);
DHT dht(DHT22_PIN, DHTTYPE);
void sendValues() {
WiFi.forceSleepWake();
WiFi.begin(ssid, password);
Serial.print("Connecting to wifi");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println(" [CONNECTED]");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
Wire.begin(BMP_SDA, BMP_SCL);
if (!bmp.begin()) {
Serial.println("No valid BMP085 sensor!");
}
dht.begin();
float temp = dht.readTemperature();
// float pressure = bme.readPressure() / 100.0F;
float humidity = dht.readHumidity();
Serial.println(temp);
Serial.println(humidity);
float pressure, temp2;
bmp.getPressure(&pressure);
pressure /= 100;
bmp.getTemperature(&temp2);
Serial.println(temp2);
Serial.println(pressure);
// float temperature = sensor.readTemperature();
// postFloatValue(temperature, 1, temperatureSensorID);
WiFi.mode(WIFI_OFF);
WiFi.forceSleepBegin();
}
7 years ago
void setup() {
Serial.begin(115200);
7 years ago
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
sendValues();
delay(postingInterval);
7 years ago
}