Giter Site home page Giter Site logo

switchdoclabs / ourweatherweatherplus Goto Github PK

View Code? Open in Web Editor NEW
20.0 12.0 32.0 220 KB

OurWeather Software for WeatherPlus Board - creates (or you rename) a directory called "SDL_ESP8266_WeatherPlus"

Home Page: http://www.switchdoc.com

C 15.70% C++ 84.30%

ourweatherweatherplus's Introduction

OurWeather Software for the SwitchDoc Labs Board WeatherPlus

Arduino IDE software designed for the ESP8266 on the WeatherPlus Board and the OurWeather Weather Kit

www.switchdoc.com
August 2019

Current Version 036 - August 8, 2019

  • Added SHT30 support to OurWeather

Current Version 035 - December 10, 2018

  • Added Blynk App support, Changed Air Quality Sensor to A0 of the ADC converter to match manual.

Current Version 034 - September 28, 2018

  • Merged frightanic changes for WPS support. Updated Version Number

Current Version 033 - August 13, 2018

  • Update aREST.h to latest version. Potential lock fix.

Current Version 032 - June 18, 2018

  • Address fix for ADS1115 and Air Quality Sensor

Current Version 031 - March 30, 2018

  • Added support for the OurWeather ThunderBoard Lightning Detection Extender Pack

Current Version 030 - March 24, 2018

  • Adding WiFi Reconnect code - only after success on an AP

Current Version 029 - March 15, 2018

  • Changed Alexa to PubNub to be compatible with March 1, 2018 PubNub change

Current Version 028 - February 12, 2018

  • Fixed AM2315 corruption bug - improved reliablity

Current Version 027 - January 5, 2018

  • Fixed WeatherUnderGround EEPROM Corruption bug introduced in V026

Current Version 026 - January 3, 2018

  • Added MQTT to PubNub for OurWeather to Alexa interface

Current Version 023 - August 1, 2017

  • Fixed Wind direction bug - changed to Internal ADC1015

Current Version 022 - July 20, 2017

-Improved accuracy for Wind Speed and Wind Gust

Current Version 021 - February 8, 2017

  • Added support for WXLink and SolarWXLink - SwitchDoc Labs Wireless Links
  • Added dewpoint to WeatherUnderground

Current Version 019 - October 20, 2016

  • Added support for Solar Power System and SunAirPlus
  • Improved Reliability of AM2315 readings on Solar Power

Current Version 018 - September 12, 2016

  • Added support for WeatherUnderground Display
  • Minor Reliablity Improvements

Current Version 017 - June 17, 2016

  • No functional change for OurWeather Users - Version 017 is NOT released for auto update.
  • Fixed Demo mode bug when not using the OLED display. Demo mode is what the system goes into after the 10 minute time our of not setting up OurWeather with a local network.

Current Version 016 - May 20, 2016

  • No functional change. Delete Time directory for compilation on Arduino IDE 1.6.8
  • No functional change. Renamed ESG_AM2315 files to avoid library class conflicts and match Github archive
  • Fixed infinite reboot sequence with WiFi FLASH corruption (timing of reset button)

Current Version 015 - April 17, 2016

  • Added full support for Air Quality Sensor Extender Kit
  • Finished Reliablity Additions for AM2315 Driver
  • Support both WeatherPlus Boards with the BMP180 and BMP280

Version 014 - April 3, 2016

  • Initial Release for OurWeather

ourweatherweatherplus's People

Contributors

marcelstoer avatar nelisw avatar projectcuracao avatar switchdoclabs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ourweatherweatherplus's Issues

OLEDDisplay.h Display_weather_large missing dewpoint

AM2315 Dewpoint display block is missing from DISPLAY_WEATHER_LARGE in OLEDdisplay.h file.

This block existed in build 021 but is not present in the 023 build I just downloaded.
Was this by design?

Adding this block in, throws the rest of the numbering in that section off, and so that will need to be corrected.

Also, why was the variable name "dewpoint" used when it is AM2315_Temperature and AM2315_Humidity?
I'm going to be submitting a few more suggestions like these for your consideration soon.

[Feature Request] Custom MQTT Server

I know that issue #9 asks for this, but it was closed, I'm guessing due to know description.

I host my own local MQTT server and would like to be able to send my weather information to it. This would allow me to easily get my weather station info into both WeeWX for historical gathering as well as Home Assistant to help with my sprinkler automation.

ESP8266 and ESP32 security issues - need reflashing

There's three different vulnerabilities/attacks for which Espressif has released patches for, these should be updated for the Ourweather platform.

See https://hackaday.com/2019/09/05/esp8266-and-esp32-wifi-hacked/

  1. https://matheus-garbelini.github.io/home/post/zero-pmk-installation/
  2. https://matheus-garbelini.github.io/home/post/esp32-esp8266-eap-crash/
  3. https://matheus-garbelini.github.io/home/post/esp8266-beacon-frame-crash/

Links to Espressif patches are in the links above.

Naming in ino wrong

Why the filenames of the includes are not case senitive? Every time I update the repo I need to rename the files like written into the ino otherwise it will not compile on linux systems.

[Feature Request] Support for enterprise WiFi

Hello, I am a PhD candidate at the University of Toronto. I bought a WeatherPlus station as a tinker project. Our plan is to run the station alongside our "professional grade" weather station (See: weather.utsc.utoronto.ca).

Unfortunately, our campus WiFi is very restricted, and requires authentication either by private certificate, or by a authentication with a username and password (in the connection settings, not a captive portal). I have glanced through the WiFiManager source, and it seems to only support simple SSID and password combinations.

I am opening this issue to track the possibility of more advanced WiFi configuration. In the meantime, I will also contact our networking folks to see if we can find a solution on our side.

Program stalls at handle REST routine

8 minutes after booting and connecting to Wifi the software stalls. Actually it gets stuck in the main loop. I use Arduino 1.8.1 and installed v023.

WiFiClient client = server.available();
if (client) {
while (!client.available()) { // potential infinite loop
delay(1);
}
if (client.available()) {
rest.handle(client);
}
}

By adding a counter and a break point at the while (!client.available()) loop it runs like a charm.

while (!client.available()) {
   Serial.print(".");    
   delay(1);   
   timeout++;
    if(timeout>1000) {Serial.print("INFINITE LOOP BREAK!");  break;}
}

Unresolved includes

There are a number of includes that fail to resolve when building on linux.

I have installed ESP8266 boards from http://arduino.esp8266.com/stable/package_esp8266com_index.json but could only find "Adafruit Feather HUZZAH ESP8266" and not "Adafruit HUZZAH ESP8266" as stated in BUILD.MD. Is this the correct board?

Directions from Adafruit say to use this board: https://learn.adafruit.com/adafruit-huzzah-esp8266-breakout/using-arduino-ide

'#include "Wire.h"' used in multiple libraries point to local file that does not exist. Is this supposed to be '#include <Wire.h>' which would use the file from the ESP8266 library?

'#include "Crc16.h"' in SDL_ESP8266_WeatherPlus.ino. Local file is lowercase 'crc16.h' and therefore fails to include on Case Sensitive Linux OS. Renaming file solves the problem. Same goes for '#include "elapsedMillis.h"' in same INO file.

Conversely there is '#include <String.h>' which should be lowercase '#include <string.h>'

Then it gets a bit more complex. There is '#include <Time.h>' in SDL_Weather_80422.cpp. Is this supposed to use the local file 'TimeLib.h' or '#include <time.h>' or 'Time' library by Michael Margolis?

Finally there is '#include "user_interface.h"' in local WifiManager.h. "user_interface.h" is not in your repo.

I see that others have brought up similar issues but they were not fixed in repo:
#2
#4
#14

Thanks for any info you provide. Should be receiving my kit in 2 days and would like to get the code compiling before then.

Errors during upload

Hi,

I'm trying to update the OurWeatherWeatherPlus version on my OurWeather. I'm using Arduino IDE (1.8.5) using "Adafruit HUZZAH ESP8266" as board but I continue to get these errors (I tried with different OS and also with different version of Arduino IDE and also of code, but nothing changes)

In file included from /home/lucadelu/github/MWS/OurWeatherDev/SDL_ESP8266_WeatherPlus/SDL_ESP8266_WeatherPlus.ino:76:0:
/home/lucadelu/.arduino15/packages/esp8266/hardware/esp8266/2.4.0/libraries/Wire/Wire.h: In function 'bool readWXLink()':
/home/lucadelu/.arduino15/packages/esp8266/hardware/esp8266/2.4.0/libraries/Wire/Wire.h:70:13: note: candidate 1: uint8_t TwoWire::requestFrom(int, int, int)
     uint8_t requestFrom(int, int, int);
             ^
/home/lucadelu/.arduino15/packages/esp8266/hardware/esp8266/2.4.0/libraries/Wire/Wire.h:64:12: note: candidate 2: size_t TwoWire::requestFrom(uint8_t, size_t, bool)
     size_t requestFrom(uint8_t address, size_t size, bool sendStop);
            ^
/home/lucadelu/.arduino15/packages/esp8266/hardware/esp8266/2.4.0/libraries/Wire/Wire.h:70:13: note: candidate 1: uint8_t TwoWire::requestFrom(int, int, int)
     uint8_t requestFrom(int, int, int);
             ^
/home/lucadelu/.arduino15/packages/esp8266/hardware/esp8266/2.4.0/libraries/Wire/Wire.h:64:12: note: candidate 2: size_t TwoWire::requestFrom(uint8_t, size_t, bool)
     size_t requestFrom(uint8_t address, size_t size, bool sendStop);
            ^
/home/lucadelu/.arduino15/packages/esp8266/hardware/esp8266/2.4.0/libraries/Wire/Wire.h:70:13: note: candidate 1: uint8_t TwoWire::requestFrom(int, int, int)
     uint8_t requestFrom(int, int, int);
             ^
/home/lucadelu/.arduino15/packages/esp8266/hardware/esp8266/2.4.0/libraries/Wire/Wire.h:64:12: note: candidate 2: size_t TwoWire::requestFrom(uint8_t, size_t, bool)
     size_t requestFrom(uint8_t address, size_t size, bool sendStop);
            ^
/home/lucadelu/.arduino15/packages/esp8266/hardware/esp8266/2.4.0/libraries/Wire/Wire.h:70:13: note: candidate 1: uint8_t TwoWire::requestFrom(int, int, int)
     uint8_t requestFrom(int, int, int);
             ^
/home/lucadelu/.arduino15/packages/esp8266/hardware/esp8266/2.4.0/libraries/Wire/Wire.h:64:12: note: candidate 2: size_t TwoWire::requestFrom(uint8_t, size_t, bool)
     size_t requestFrom(uint8_t address, size_t size, bool sendStop);
            ^
Archiving built core (caching) in: /tmp/arduino_cache_67619/core/core_esp8266_esp8266_huzzah_CpuFrequency_80,FlashSize_4M1M,LwIPVariant_v2mss536,Debug_Disabled,DebugLevel_None____,UploadSpeed_115200_c11f787689a11fb3cc84caa40fd0a557.a
Sketch uses 392864 bytes (37%) of program storage space. Maximum is 1044464 bytes.
Global variables use 47532 bytes (58%) of dynamic memory, leaving 34388 bytes for local variables. Maximum is 81920 bytes.
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed

do you have any help for me?

String.h not found on compile in Arduino IDE

Hi,

I am using Arduino IDE, and it bugs on String.h,
I have checked that Arduino.h is found in the same .ino file (few lines above).
Using Arduino 1.8.2 with the genericESP8266 board and the default compiler (AVRISP mkII).

Thanks for any suggestions,
Yann

NAN handling creates invalid JSON

When the AM2315 returns bad values, these are currently set to NAN. The JSON returned from the REST API contains these values as nan, which is invalid because strings must be enclosed in quotes. Reading the JSON in R or Home Assistant fails with errors.

On my local compile, I've opted to replace the NANs with -999 and the JSON is parsed coreectly.

Another option would be to return null in place of the nan as null is valid JSON. I'm not sure whether this change should happen when the values are read or when the values are inserted into the JSON return.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.