This software powers a home weather station based on the Electric Imp Platform.
The station comprises an imp001 and April breakout board, plus an Adafruit 0.56in seven-segment LED, an Adafruit 1.2in LED matrix display and an Adafruit bicolor LED bar. The display units connect to the imp001/April via I²C — it’s just a matter of wiring them all up to a single pair of imp I²C pins plus GND and 3V3. A larger solderless breadboard should accomodate them all.
Cloning this Repository
This repo pulls in some dependencies through git submodules. Use this command to clone the repo and get the libraries on which it depends:
git clone --recurse-submodules https://github.com/smittytone/HomeWeather.git
The station uses Dark Sky’s Dark Sky API for regular weather forecasts. This requires a developer account, which is free — register here. The Dark Sky API is a commercial service. Though the first 1000 API calls made each day under your API key are free of charge, subsequent calls are billed at a rate of $0.0001 per call. You and your application will not be notified by the Electric Imp Dark Sky library if this occurs, so you may wish to add suitable call-counting code to your application.
Dark Sky Units
The code is set to deliver Dark Sky forecast in UK units. You may wish to change this according to your location. Look for line 161 in the agent code.
You will also need my Location library — paste it over line 7 in both the agent and device code. The Location library requires Google-provided API keys, which you’ll need to enter into the agent code in the space provided on line 462, which will also need un-commenting.
The device code makes use of the accompanying libraries, HT16K33Bargraph, HT16K33Segment and HT16K33Matrix. The code for these libraries is available from the following GitHub repositories:
If you are using the macOS tool Squinter (download here) to manage your Electric Imp projects, the the device code is set up to import and pre-process these files. You may need to change the
#import statements to reflect the location of the libraries on your machine. Alternatively, you can simply paste in the contents of each file over the respective
The Weather Station has its own, web-based control UI, accessed at the agent URL.
- 2.7.7 26 January 2021
- Implement GitHub-sourced dependencies as submodules.
- Update Rocky to 3.0.1.
- 2.7.6 2 December 2020
- Minor fixes and tweaks.
- 2.7.5 21 May 2020
- Update JQuery to 3.5.x.
- Update Bootstrap to 4.5.x.
- 2.7.4 18 December 2019
- Fix incorrectly addressed UI button.
- Update Rocky to 3.0.0.
- 2.7.3 5 September 2019
- Update JQuery to 3.4.1
- Update Bootstrap to 4.3.1
- 2.7.2 18 April 2019
- Update JQuery to 3.4.0
- 2.7.1 28 March 2019
- 2.7.0 12 March 2019
- 2.6.1 1 November 2018
- Update to Bootstrap 4.1.3
- Update other dependencies
- 2.6.0 27 September 27 2018
- Update to Bootstrap 4.1.1
- Update Web UI based on Bootstrap
- Separate out Web UI into own file for clarity
- Add automatic location detection (with Location)
- Add ‘Advance Clock’ function to the night mode dimmer
- Improve disconnection handling with DisconnectionManager
- Update to JQuery 3.3.1
- Prevent Ajax XHR caching
- Stop DarkSky requests busting the limit
- Update to Bootstrap 4.1.1
The Weather Station design and software is copyright © 2021 Tony Smith and made available under the MIT Licence.