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.
83 lines
1.7 KiB
83 lines
1.7 KiB
|
|
#include <SoftwareSerial.h>
|
|
#include <Wire.h>
|
|
#include <BME280I2C.h>
|
|
|
|
#include <ESP8266WiFi.h>
|
|
#include <ESP8266WiFiMulti.h>
|
|
#include <ESP8266HTTPClient.h>
|
|
#include <WiFiClient.h>
|
|
|
|
#define ENABLE_PIN1 D5 // 8 // dir
|
|
#define ENABLE_PIN2 D6 // 9 // speed
|
|
#define SERIAL_RO D7 // 10
|
|
#define SERIAL_DI D8 // 11
|
|
|
|
#define WIFIUSR "weather"
|
|
#define WIFIPWD "dslakweatherpwd"
|
|
#define DATA_DELAY 10000
|
|
|
|
ESP8266WiFiMulti WiFiMulti;
|
|
BME280I2C bme;
|
|
|
|
const byte codes[] = {0x01 ,0x03 ,0x00 ,0x00 ,0x00 ,0x02 ,0xC4 ,0x0B};
|
|
const char server[] PROGMEM = "http://2.233.91.82/weather/api/station?data=capaccio|%d|%d|%f|%f|%f";
|
|
|
|
byte values[2][20];
|
|
SoftwareSerial sensor(SERIAL_RO, SERIAL_DI);
|
|
|
|
int windSpeed = 0;
|
|
int windDirection = 0;
|
|
|
|
float temperature = 0;
|
|
float humidity = 0;
|
|
float pressure = 0;
|
|
|
|
void setup() {
|
|
// Initialize Serial Monitor for debugging
|
|
Serial.begin(9600);
|
|
while(!Serial);
|
|
|
|
// Initialize a Wire
|
|
Wire.begin();
|
|
while(!bme.begin()){
|
|
Serial.println("Could not find BME280 sensor!");
|
|
delay(1000);
|
|
}
|
|
|
|
// Initialize a SoftwareSerial
|
|
sensor.begin(4800);
|
|
delay(500);
|
|
pinMode(ENABLE_PIN1, OUTPUT);
|
|
pinMode(ENABLE_PIN2, OUTPUT);
|
|
|
|
// Initialize WiFi
|
|
for (uint8_t t = 4; t > 0; t--) {
|
|
Serial.printf("[SETUP] WAIT %d...\n", t);
|
|
Serial.flush();
|
|
delay(1000);
|
|
}
|
|
|
|
WiFi.mode(WIFI_STA);
|
|
WiFiMulti.addAP(WIFIUSR, WIFIPWD);
|
|
}
|
|
|
|
void loop() {
|
|
|
|
getWind();
|
|
Serial.print("Direction: ");
|
|
Serial.println(windDirection);
|
|
Serial.print("Speed: ");
|
|
Serial.println(windSpeed);
|
|
|
|
getBME280Data();
|
|
Serial.print("Temp: ");
|
|
Serial.println(temperature);
|
|
Serial.print("Hum: ");
|
|
Serial.println(humidity);
|
|
Serial.print("Pres: ");
|
|
Serial.println(pressure);
|
|
|
|
sendData();
|
|
delay(DATA_DELAY);
|
|
}
|