GithubHelp home page GithubHelp logo

gadget-freak / weatherdisplay Goto Github PK

View Code? Open in Web Editor NEW

This project forked from andrei7c4/weatherdisplay

0.0 2.0 0.0 1.32 MB

ESP8266 based weather display with e-ink screen

License: MIT License

Makefile 1.20% C++ 0.65% C 98.15%

weatherdisplay's Introduction

ESP8266 Weather display

This is a simple weather display built with ESP8266 WiFi chip and 7.4" E ink display from Pervasive Displays. Weather data is gathered from OpenWeatherMap service. Additionally, the device’s internal temperature sensor reading is sent to ThingSpeak service.

Most of the time the device stays in deep sleep mode consuming only 18 µA. While updating the weather power consumption varies from 80 to 150 mA. Update operation takes a few seconds, depending on WiFi router, DHCP server and internet connection speed. With update interval set to 15 minutes the device has been working on a single charge for more than a year. Battery capacity is 3000 mAh.

Building the software

On Linux

$ git clone https://github.com/andrei7c4/weatherdisplay
$ cd weatherdisplay/app
  • Set SDK paths and esptool parameters for your ESP8266 module in makefile
  • Finally build everything and flash the binary
$ make all
$ make flash

On Windows

  • Install Unofficial Development Kit for Espressif ESP8266
  • Download ZIP or clone this repository
  • In Eclipse select File->New->Makefile Project with Existing Code
  • Set Existing Code Location to <full path to>weatherdisplay\app and click Finish
  • In newly created project properties (C/C++ Build) change build command to mingw32-make.exe -f ${ProjDirPath}/Makefile
  • In C/C++ Build/Environment add PATH variable with paths to MinGW and MSYS, e.g. C:\MinGW\bin;C:\MinGW\msys\1.0\bin
  • In Make Target view right click on newly created project and select New
  • Set Target name to all and click OK. Repeat this for clean and flash targets.
  • Set SDK paths and esptool parameters for your ESP8266 module in makefile
  • You should now be able to build and clean the project and flash the binaries

Custom fonts and icons can be created with this tool.

Building the hardware

Any ESP8266 based module with at least 1 MB flash and SPI pins, such as ESP-12E, can be used. Development boards, such as NodeMCU-DEVKIT or similar, can be used too, but power consumption of these boards might not be as low.

The display with control board can be purchased from DigiKey. Display is connected to ESP8266 in the following way:

TCM-P74-230 ESP8266
/EN GPIO5
/BUSY GPIO4
MISO HMISO (GPIO12)
MOSI HMOSI (GPIO13)
/CS HCS (GPIO15)
SCK HSCLK (GPIO14)

Additionally, there are 3V LDO regulator, programming circuit and USB to UART bridge (CP2102 or similar can be used). Please see the schematics here.

Usage

Device settings can be changed through the serial interface (115200/8-N-1). The following syntax should be used:

parameter:value<CR>

At least the following parameters must be set by the user:

Additionally, ThingSpeak channel Write API Key can be set:

  • thingspeak

If this key is not set, internal temperature will only be shown on the display but not sent anywhere.

The following user interface options are available:

Please see the config.c file for additional supported parameters.


weatherdisplay's People

Contributors

andrei7c4 avatar

Watchers

 avatar  avatar

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.