2 changed files with 38 additions and 115 deletions
@ -0,0 +1,38 @@
|
||||
# Credentials |
||||
credential.h |
||||
|
||||
# emacs files |
||||
*~ |
||||
|
||||
# Prerequisites |
||||
*.d |
||||
|
||||
# Compiled Object files |
||||
*.slo |
||||
*.lo |
||||
*.o |
||||
*.obj |
||||
|
||||
# Precompiled Headers |
||||
*.gch |
||||
*.pch |
||||
|
||||
# Compiled Dynamic libraries |
||||
*.so |
||||
*.dylib |
||||
*.dll |
||||
|
||||
# Fortran module files |
||||
*.mod |
||||
*.smod |
||||
|
||||
# Compiled Static libraries |
||||
*.lai |
||||
*.la |
||||
*.a |
||||
*.lib |
||||
|
||||
# Executables |
||||
*.exe |
||||
*.out |
||||
*.app |
@ -1,115 +0,0 @@
|
||||
#include <PubSubClient.h> |
||||
#include <ESP8266WiFi.h> |
||||
#include <DHTesp.h> |
||||
|
||||
#include <SPI.h> |
||||
#include <Wire.h> |
||||
#include <Adafruit_GFX.h> |
||||
#include <Adafruit_SSD1306.h> |
||||
|
||||
#include "credential.h" |
||||
|
||||
#define SLEEP_MINUTES 1 |
||||
|
||||
DHTesp dht; |
||||
|
||||
char* mqtt_server = "ashpool.lan"; |
||||
|
||||
WiFiClient wclient; |
||||
|
||||
PubSubClient client(wclient, mqtt_server, 1883); |
||||
|
||||
String nodeID; |
||||
|
||||
|
||||
#define SCREEN_WIDTH 128 |
||||
#define SCREEN_HEIGHT 64 |
||||
|
||||
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); |
||||
|
||||
void setup() { |
||||
Serial.begin(115200); |
||||
nodeID = "ESP_" + String(ESP.getChipId(), 16); |
||||
|
||||
Serial.println("DHT MQTT Logger:" + nodeID + " Starting\n"); |
||||
|
||||
dht.setup(D4, DHTesp::DHT22); |
||||
|
||||
Wire.begin(D6, D5); |
||||
|
||||
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3c)) { |
||||
Serial.println("SSD1306 allocation failed"); |
||||
} |
||||
|
||||
wifi_set_sleep_type(LIGHT_SLEEP_T); |
||||
wifi(); |
||||
|
||||
if (client.connect((char*) nodeID.c_str())) { |
||||
Serial.println("Connected to MQTT broker"); |
||||
} |
||||
|
||||
display.display(); |
||||
display.drawPixel(10, 10, SSD1306_WHITE); |
||||
display.clearDisplay(); |
||||
display.setTextSize(4); |
||||
display.setTextColor(SSD1306_WHITE); |
||||
|
||||
} |
||||
|
||||
void wifi() { |
||||
WiFi.persistent(false); |
||||
WiFi.mode(WIFI_OFF); |
||||
WiFi.mode(WIFI_STA); |
||||
WiFi.begin(ssid_name, ssid_pass); // Access WiFi, details from credential.h
|
||||
|
||||
Serial.print("Connecting to "); |
||||
Serial.print(ssid_name); |
||||
Serial.print(" ..."); |
||||
|
||||
while (WiFi.status() != WL_CONNECTED) { // Wait for WiFi to connect
|
||||
delay(250); |
||||
Serial.print("."); |
||||
} |
||||
|
||||
Serial.println('\n'); |
||||
Serial.println("WiFi connection established"); |
||||
Serial.print("Device's IP address is "); |
||||
Serial.println(WiFi.localIP()); // Show device's IP address
|
||||
} |
||||
|
||||
template <typename T> |
||||
void publish(const char * topic, T msg) |
||||
{ |
||||
if (!client.connected()) { |
||||
client.connect((char*) nodeID.c_str()); |
||||
} |
||||
|
||||
client.publish(nodeID + "/" + topic, String(msg)); |
||||
Serial.println(nodeID + "/" + topic + ": " + String(msg)); |
||||
} |
||||
|
||||
void loop() { |
||||
delay(dht.getMinimumSamplingPeriod()); |
||||
|
||||
Serial.println ( "------------------------" ) ; |
||||
|
||||
if (WiFi.status() != WL_CONNECTED) { |
||||
wifi(); |
||||
} |
||||
|
||||
float h = dht.getHumidity(); |
||||
float t = dht.getTemperature(); |
||||
float hic = dht.computeHeatIndex(t, h, false); |
||||
|
||||
publish("temp", t); |
||||
publish("relative_humidity", h); |
||||
publish("heat_index", String(hic)); |
||||
|
||||
display.clearDisplay(); |
||||
display.setCursor(10,0); |
||||
display.println(String(t)); |
||||
display.display(); |
||||
|
||||
delay(SLEEP_MINUTES * 60 * 1000L); |
||||
|
||||
} |
Loading…
Reference in new issue