Skip to content
Open
4 changes: 2 additions & 2 deletions BlynkRoutines.h
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ void myBTimerEvent()

char floatString[15];
float FTemp;
FTemp = dewpoint * 1.8 + 32.0;
FTemp = AM2315_Dewpoint * 1.8 + 32.0;

buffer[0] = '\0';
dtostrf(FTemp, 5, 1, floatString);
Expand All @@ -148,7 +148,7 @@ void myBTimerEvent()

char floatString[15];
float FTemp;
FTemp = dewpoint;
FTemp = AM2315_Dewpoint;

buffer[0] = '\0';
dtostrf(FTemp, 5, 1, floatString);
Expand Down
Binary file added Essentials/ESPWebServer.zip
Binary file not shown.
32 changes: 16 additions & 16 deletions SDL_ESP8266_WeatherPlus.ino
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
//

//
//
// Updated AM2315 variable name from dewpoint to AM2315_Dewpoint


#define WEATHERPLUSESP8266VERSION "036"
#define WEATHERPLUSESP8266VERSION "036a"

#define WEATHERPLUSPUBNUBPROTOCOL "OURWEATHER036"

Expand Down Expand Up @@ -53,8 +53,8 @@ bool WiFiPresent = false;

//needed for library
#include <DNSServer.h>
#include <ESP8266WebServer.h>

// #include <ESP8266WebServer.h> // This library is superceded by ESPWebServer.h
#include <ESPWebServer.h>


#include "WiFiManager.h" //https://github.com/tzapu/WiFiManager
Expand Down Expand Up @@ -269,24 +269,24 @@ int WeatherDisplayMode;

RtcDS3231 Rtc;


// AM2315
// ---------------------------------------------------------------
// AM2315 Temp / Humidity

float AM2315_Temperature;
float AM2315_Humidity;
float dewpoint;
float AM2315_Dewpoint;

bool AM2315_Present = false;

#include "SDL_ESP8266_HR_AM2315.h"


SDL_ESP8266_HR_AM2315 am2315;
float dataAM2315[2]; //Array to hold data returned by sensor. [0,1] => [Humidity, Temperature]

boolean AOK; // 1=successful read

// SHT30
// ---------------------------------------------------------------
// SHT30 Temp
#include "WEMOS_SHT3X.h"

SHT3X sht30(0x44);
Expand Down Expand Up @@ -1275,7 +1275,7 @@ void setup() {

AM2315_Temperature = dataAM2315[1];
AM2315_Humidity = dataAM2315[0];
dewpoint = AM2315_Temperature - ((100.0 - AM2315_Humidity) / 5.0);
AM2315_Dewpoint = AM2315_Temperature - ((100.0 - AM2315_Humidity) / 5.0);
AM2315_Present = true;

}
Expand All @@ -1290,7 +1290,7 @@ void setup() {
AM2315_Temperature = 0.0;

AM2315_Humidity = 0.0;
dewpoint = 0.0;
AM2315_Dewpoint = 0.0;

// Check for SHT30
int sht30_success;
Expand Down Expand Up @@ -1566,11 +1566,11 @@ void loop() {
#endif
AM2315_Temperature = dataAM2315[1];
AM2315_Humidity = dataAM2315[0];
dewpoint = AM2315_Temperature - ((100.0 - AM2315_Humidity) / 5.0);
AM2315_Dewpoint = AM2315_Temperature - ((100.0 - AM2315_Humidity) / 5.0);

Serial.print("Temp: "); Serial.println(AM2315_Temperature);
Serial.print("Hum: "); Serial.println(AM2315_Humidity);
Serial.print("DwPt: "); Serial.println(dewpoint);
Serial.print("DwPt: "); Serial.println(AM2315_Dewpoint);
#ifdef DEBUGPRINT
am2315.printStatistics();
#endif
Expand All @@ -1597,7 +1597,7 @@ void loop() {

AM2315_Temperature = sht30.cTemp;
AM2315_Humidity = sht30.humidity;
dewpoint = AM2315_Temperature - ((100.0 - AM2315_Humidity) / 5.0);
AM2315_Dewpoint = AM2315_Temperature - ((100.0 - AM2315_Humidity) / 5.0);
}

}
Expand Down Expand Up @@ -1948,8 +1948,8 @@ void loop() {
AM2315_Temperature = validateTemperature(convert4BytesToFloat(buffer, 25));
AM2315_Humidity = convert4BytesToFloat(buffer, 29);

// calculate dewpoint
dewpoint = AM2315_Temperature - ((100.0 - AM2315_Humidity) / 5.0);
// calculate AM2315_Dewpoint
AM2315_Dewpoint = AM2315_Temperature - ((100.0 - AM2315_Humidity) / 5.0);


// set up solar status and message ID for screen
Expand Down
2 changes: 1 addition & 1 deletion Utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -485,7 +485,7 @@ void updateAllWeatherVariables()

AM2315_Temperature = sht30.cTemp;
AM2315_Humidity = sht30.humidity;
dewpoint = AM2315_Temperature - ((100.0 - AM2315_Humidity) / 5.0);
AM2315_Dewpoint = AM2315_Temperature - ((100.0 - AM2315_Humidity) / 5.0);
}

}
Expand Down
10 changes: 3 additions & 7 deletions WeatherUnderground.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,12 @@ int sendWeatherUndergroundData()
myURL += "&humidity=" + String(AM2315_Humidity);
myURL += "&tempf=" + String((AM2315_Temperature * 9.0 / 5.0) + 32.0);

myURL += "&dewptf=" + String((dewpoint * 9.0 / 5.0) + 32.0);
myURL += "&dewptf=" + String((AM2315_Dewpoint * 9.0 / 5.0) + 32.0);

myURL += "&dewptf=" + String((AM2315_Dewpoint * 9.0 / 5.0) + 32.0);

myURL += "&rainin=" + String((rain60Minutes) / 25.4);
myURL += "&dailyrainin=" + String(( rainCalendarDay) / 25.4);


myURL += "&baromin=" + String((BMP180_Pressure / 1000.0) * 0.2953, 4);

Expand All @@ -52,10 +53,6 @@ int sendWeatherUndergroundData()

myURL += "&software=OurWeather";





Serial.print("Requesting URL: ");
Serial.println(myURL);

Expand Down Expand Up @@ -93,4 +90,3 @@ String WUResult;


}

62 changes: 50 additions & 12 deletions WiFiManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,41 @@ void WiFiManager::blinkLED(int timesToBlink, int delayBetweenBlinks)
WiFiManager::WiFiManager() {
}

String WiFiManager::statusStr(int wStatus) {
// output WiFi.status() as one of the known status values in a readable text format
String connResTxt = "";
switch (wStatus) {
case 255:
connResTxt = "[255] WL_NO_SHIELD";
break;
case 0:
connResTxt = "[0] WL_IDLE_STATUS";
break;
case 1:
connResTxt = "[1] WL_NO_SSID_AVAIL";
break;
case 2:
connResTxt = "[2] WL_SCAN_COMPLETED";
break;
case 3:
connResTxt = "[3] WL_CONNECTED";
break;
case 4:
connResTxt = "[4] WL_CONNECT_FAILED";
break;
case 5:
connResTxt = "[5] WL_CONNECTION_LOST";
break;
case 6:
connResTxt = "[6] WL_DISCONNECTED";
break;
default:
connResTxt = wStatus;
break;
}
return connResTxt;
}

void WiFiManager::addParameter(WiFiManagerParameter *p) {
_params[_paramsCount] = p;
_paramsCount++;
Expand All @@ -89,7 +124,7 @@ void WiFiManager::addParameter(WiFiManagerParameter *p) {

void WiFiManager::setupConfigPortal() {
dnsServer.reset(new DNSServer());
server.reset(new ESP8266WebServer(80));
server.reset(new ESPWebServer(80));

DEBUG_WM(F(""));
_configPortalStart = millis();
Expand Down Expand Up @@ -334,7 +369,9 @@ int WiFiManager::connectWifi(String ssid, String pass) {

int connRes = waitForConnectResult();
DEBUG_WM ("Connection result: ");
DEBUG_WM ( connRes );
// AHD 4/30/2020 - Updated to display code and description title for WiFi.status() with new WiFi.statusStr(status)
DEBUG_WM (statusStr(connRes));
// DEBUG_WM ( connRes );
#ifdef NO_EXTRA_4K_HEAP
//not connected, WPS enabled, no pass - first attempt
if (_tryWPS && connRes != WL_CONNECTED && pass == "") {
Expand All @@ -359,6 +396,7 @@ uint8_t WiFiManager::waitForConnectResult() {
if (millis() > start + _connectTimeout) {
keepConnecting = false;
DEBUG_WM (F("Connection timed out"));
DEBUG_WM ("WiFi.status = " + statusStr(WiFi.status()));
}
if (status == WL_CONNECTED || status == WL_CONNECT_FAILED) {
keepConnecting = false;
Expand Down Expand Up @@ -448,12 +486,12 @@ void WiFiManager::handleRoot() {
return;
}

String page = FPSTR(HTTP_HEAD);
String page = FPSTR(HTTP_HEADER_START);
page.replace("{v}", "Options");
page += FPSTR(HTTP_SCRIPT);
page += FPSTR(HTTP_STYLE);
page += _customHeadElement;
page += FPSTR(HTTP_HEAD_END);
page += FPSTR(HTTP_HEADER_END);
page += "<h1>";
page += _apName;
page += "</h1>";
Expand All @@ -468,12 +506,12 @@ void WiFiManager::handleRoot() {
/** Wifi config page handler */
void WiFiManager::handleWifi(boolean scan) {

String page = FPSTR(HTTP_HEAD);
String page = FPSTR(HTTP_HEADER_START);
page.replace("{v}", "Config OurWeather");
page += FPSTR(HTTP_SCRIPT);
page += FPSTR(HTTP_STYLE);
page += _customHeadElement;
page += FPSTR(HTTP_HEAD_END);
page += FPSTR(HTTP_HEADER_END);

if (scan) {
int n = WiFi.scanNetworks();
Expand Down Expand Up @@ -690,12 +728,12 @@ void WiFiManager::handleWifiSave() {
}
else
DEBUG_WM("Not updating DateTime in RTC");
String page = FPSTR(HTTP_HEAD);
String page = FPSTR(HTTP_HEADER_START);
page.replace("{v}", "Credentials Saved");
page += FPSTR(HTTP_SCRIPT);
page += FPSTR(HTTP_STYLE);
page += _customHeadElement;
page += FPSTR(HTTP_HEAD_END);
page += FPSTR(HTTP_HEADER_END);
page += FPSTR(HTTP_SAVED);
page += FPSTR(HTTP_END);

Expand All @@ -710,12 +748,12 @@ void WiFiManager::handleWifiSave() {
void WiFiManager::handleInfo() {
DEBUG_WM(F("Info"));

String page = FPSTR(HTTP_HEAD);
String page = FPSTR(HTTP_HEADER_START);
page.replace("{v}", "Info");
page += FPSTR(HTTP_SCRIPT);
page += FPSTR(HTTP_STYLE);
page += _customHeadElement;
page += FPSTR(HTTP_HEAD_END);
page += FPSTR(HTTP_HEADER_END);
page += F("<dl>");
page += F("<dt>Chip ID</dt><dd>");
page += ESP.getChipId();
Expand Down Expand Up @@ -750,12 +788,12 @@ void WiFiManager::handleInfo() {
void WiFiManager::handleReset() {
DEBUG_WM(F("Reset"));

String page = FPSTR(HTTP_HEAD);
String page = FPSTR(HTTP_HEADER_START);
page.replace("{v}", "Info");
page += FPSTR(HTTP_SCRIPT);
page += FPSTR(HTTP_STYLE);
page += _customHeadElement;
page += FPSTR(HTTP_HEAD_END);
page += FPSTR(HTTP_HEADER_END);
page += F("Module will reset in a few seconds.");
page += FPSTR(HTTP_END);
server->send(200, "text/html", page);
Expand Down
13 changes: 7 additions & 6 deletions WiFiManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
#define WiFiManager_h

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <ESPWebServer.h>
#include <DNSServer.h>
#include <memory>
#undef min
Expand Down Expand Up @@ -42,7 +42,7 @@ void writeEEPROMState();
void updateDisplay(int displayType);
/*
const char HTTP_200[] PROGMEM = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n";
const char HTTP_HEAD[] PROGMEM = "<!DOCTYPE html><html lang=\"en\"><head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><title>{v}</title>";
const char HTTP_HEADER_START[] PROGMEM = "<!DOCTYPE html><html lang=\"en\"><head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><title>{v}</title>";
const char HTTP_STYLE[] PROGMEM = "<style>div,input{padding:5px;font-size:1em;} input{width:95%;} body{text-align: center;} button{border:0;border-radius:0.3rem;background-color:#1fa3ec;color:#fff;line-height:2.4rem;font-size:1.2rem;width:100%;}</style>";
const char HTTP_SCRIPT[] PROGMEM = "<script>function c(l){document.getElementById('s').value=l.innerText||l.textContent;document.getElementById('p').focus();}</script>";
const char HTTP_HEAD_END[] PROGMEM = "</head><body><div style='text-align: left; display: inline-block;'>";
Expand All @@ -57,10 +57,10 @@ const char HTTP_END[] PROGMEM = "</div></body></html>";


const char HTTP_200[] PROGMEM = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n";
const char HTTP_HEAD[] PROGMEM = "<!DOCTYPE html><html lang=\"en\"><head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=no\"/><title>{v}</title>";
const char HTTP_HEADER_START[] PROGMEM = "<!DOCTYPE html><html lang=\"en\"><head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=no\"/><title>{v}</title>";
const char HTTP_STYLE[] PROGMEM = "<style>.c{text-align: center;} div,input{padding:5px;font-size:1em;} input{width:95%;} body{text-align: center;font-family:verdana;} button{border:0;border-radius:0.3rem;background-color:#1fa3ec;color:#fff;line-height:2.4rem;font-size:1.2rem;width:100%;} .q{float: right;width: 64px;text-align: right;} .l{background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAALVBMVEX///8EBwfBwsLw8PAzNjaCg4NTVVUjJiZDRUUUFxdiZGSho6OSk5Pg4eFydHTCjaf3AAAAZElEQVQ4je2NSw7AIAhEBamKn97/uMXEGBvozkWb9C2Zx4xzWykBhFAeYp9gkLyZE0zIMno9n4g19hmdY39scwqVkOXaxph0ZCXQcqxSpgQpONa59wkRDOL93eAXvimwlbPbwwVAegLS1HGfZAAAAABJRU5ErkJggg==\") no-repeat left center;background-size: 1em;}</style>";
const char HTTP_SCRIPT[] PROGMEM = "<script>function c(l){document.getElementById('s').value=l.innerText||l.textContent;document.getElementById('p').focus();}</script>";
const char HTTP_HEAD_END[] PROGMEM = "</head><body><div style='text-align:left;display:inline-block;min-width:260px;'>";
const char HTTP_HEADER_END[] PROGMEM = "</head><body><div style='text-align:left;display:inline-block;min-width:260px;'>";
//const char HTTP_PORTAL_OPTIONS[] PROGMEM = "SwitchDoc Labs OurWeather<BR><form action=\"wifi\" method=\"get\"><button>Configure WiFi</button></form><br/><form action=\"0wifi\" method=\"get\"><button>Configure WiFi (No Scan)</button></form>";
const char HTTP_PORTAL_OPTIONS[] PROGMEM = "SwitchDoc Labs OurWeather<BR><form action=\"wifi\" method=\"get\"><button>Configure WiFi</button></form>";
//const char HTTP_PORTAL_OPTIONS[] PROGMEM = "<form action=\"/wifi\" method=\"get\"><button>Configure WiFi</button></form><br/><form action=\"/0wifi\" method=\"get\"><button>Configure WiFi (No Scan)</button></form><br/><form action=\"/i\" method=\"get\"><button>Info</button></form><br/><form action=\"/r\" method=\"post\"><button>Reset</button></form>";
Expand Down Expand Up @@ -158,12 +158,12 @@ class WiFiManager

private:
std::unique_ptr<DNSServer> dnsServer;
std::unique_ptr<ESP8266WebServer> server;
std::unique_ptr<ESPWebServer> server;

//const int WM_DONE = 0;
//const int WM_WAIT = 10;

//const String HTTP_HEAD = "<!DOCTYPE html><html lang=\"en\"><head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><title>{v}</title>";
//const String HTTP_HEADER_START = "<!DOCTYPE html><html lang=\"en\"><head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><title>{v}</title>";

void setupConfigPortal();
#ifdef NO_EXTRA_4K_HEAP
Expand Down Expand Up @@ -203,6 +203,7 @@ class WiFiManager
//void setEEPROMString(int start, int len, String string);

int status = WL_IDLE_STATUS;
String statusStr(int status);
int connectWifi(String ssid, String pass);
uint8_t waitForConnectResult();

Expand Down