Git Product home page Git Product logo

brewpiless's Introduction

BrewPiLess

Note: ALL BPL settings will be gone after upgrading to v3.0

Note: re-SETUP is necessary after upgrading to v2.4

Features

  • I2C LCD support.
  • Rotary encoder support (* not supported by default).
  • Remote LCD display on browser.
  • Remote temperature control.
  • Temperature schedule.
  • Device(temperature sensor and actuator) setup.
  • Temperature logging to specified remote destination.
  • Web-based OTA firmware update.
  • Web-based network setting.
  • SoftAP mode.
  • Local temperature log and temperature chart.
  • iSpindel support.
  • Gravity logging. The gravity data can be manually input or from iSpindel.
  • Gravity-based temperature schedule.
  • Save and resuse of beer profiles.
  • Static IP setting.
  • Export saved data to csv format by offline log viewer.
  • Brew and calibrate iSpindel. new!

Introduction

This project uses a single ESP8266 to replace RPI and Arduino. Main Screen BrewPi is the greatest, if not the ultimate, fermentation temperature controller. The original design uses a RPI to log temperatures and maintain a temperature schedule. The RPI also hosts a web server for the browser-based front-end. Using a RPI or a PC allows the maximum power of BrewPi to be used but requires additional hardware (namely a RPI or PC).

ESP8266 is cheap and powerful WiFi-enabling IOT solution. Although it isn't as powerful as a RPI, it's a good solution to maximize the functionality and minimize the cost. Using a single ESP8266 as the temperature controller (replacing Arduino) and as the web server and schedule maintainer (replacing RPI) also reduces the work in building a brewpi system.

!!Special Note

You will need to run the hardware setup procedure after upgrading to v2.4 from prior versions other than Glycol option enabled. Take a note of your configuration or save the options before you update the firmware so that you can recover the settings quickly.

Known issues

  • ESP8266 won't restart after saving system configuration. Sometimes ESP8266 can't restart after a software watchdog timer reset, which is the only way to reset the system by software. It happened on my NodeMcu and D1 mini boards that didn't connect to anything but USB. I have no solution for it.
  • ESP8266 won't start after selecting WiFi network. The web server used is ESPAsyncWebServer which uses ESPAsyncTCP. I found that if ESP8266 ever enters SoftAP mode before connecting to the network, the Web server will fail on tcp_bind() and the web service will be unavailable. Not tracing the source code of the LWIP, I just worked around by reseting the system. However, ESP8266 sometimes doesn't reset.
  • The page can't be loaded correctly. It rarely happens after HTTP caching is used, but it does happen especially when Javascript Console is opened. During developing and testing, I found corrupted html/javascript pages. Without the abliity and time to debug or develop the web server and or TCP/IP stack, I decide to live with it.
  • Incorrect temperature chart. The log format before v2.0 is vulnerable. There seems to be some unconsidered conditions that break the log.

Version History

  • v3.6

    • update framework to 2.2.0
    • 4m2m flash layout for All but SONOFF, due to size growth of framework.
    • update OLED library to 4.0 (Not verified by me, but SOMEONE@HBT did report working)
    • update to ArduinoJson V6
    • add revised LCD page. at /lcd
    • SOFF OTA configuraton not longer available for space limit
    • Using interrupt for more responsive button operation.
    • MQTT publish/subscribe, NEW UI only.
  • v3.5.1

    • fixed iSpindel temperature unit issue
    • update new OLED library(not verified)
    • The version number is still "3.5"
  • v3.5

    • MQTT Remote Control
    • Pressure transducer support
    • Add iSpindel WiFi signal if available, "Now" button in profile editing
    • "Fixed" incorrect time issue after restart.
    • Add DNS setting for static IP
  • v3.4

    • Add back STATAION mode only.
    • fixing Cap control tab display bug.
    • fixing blocking "Communication to BPL" dialog under AP mode
  • v3.3

    • LCD information push from server instead of request/response.
    • Replace ServerSideEvent by WebSocket.
    • add Brazil Portugues support.
  • v3.2

    • Revise remote logging settings. Simpler interface and special process for ubidots.com.
    • Update to Arduino/ESP8266 framework 1.8.0
  • v3.1

    • Fix beer profile which uses gravity as conditions
    • Ditch WiFiManager.
    • AP mode is always avaible.
    • Plato supported
    • Spanish supported
    • Tom's frontend embedded.
  • v3.0

    • Avoid frequent access access of file system
    • Revise settings. Merge all settings into one file.
    • Applying temperature corection of iSpindel calibration informatoin.
    • Selective iSpindel calibration points.
    • Brew&Cal option moved to start of logs.
    • Merge classic HTML/JS files into grunt
    • Using push for beer profile information to reduce additional connection establishment.
    • bug fixes.
  • v2.7

    • Cap(spunding) control
    • revise parasite temperature control
  • v2.6

    • fix the bug that don't save Gravity Device settings
    • write formula back to ESP8266 in brew and calibrate mode
    • update temperature correction formula in brew and calibrate mode
  • v2.5.1

    • LCD backlight timer setting
    • support 2 buttons
    • merge Tom's front-end
  • v2.5 (2018/01/18)

    • optional: Latest ESP8266/Arduino framework w/ ESPAsyncTcp & ESPAsyncWebServer
    • revise network configuration and system config; change setting at "Config" page
    • fixed(static) IP bug fixed
    • fix redundant data requests
    • revise log resumption
  • v2.4.2x (2018/01/15)

    • Fix TILT zero display
  • v2.4.2 (2017/12/27)

    • bug fixed for resume display
  • v2.4.1 (2017/11/28)

    • URL to Format File System
    • missing "Calculated by BPL" in v2.4
  • v2.4 (2017/11/09)

    • Brew and calibrate iSpindel.
    • Use iSpindel temperature reading as Beer Sensor.
    • Display tilt value of iSpindel.
    • Enhance SSE re-establishment
    • Default configurable minimum cooling/heating time & back-up sensor. (That is, Glycol supported.)
    • HTTP Port settings.
  • v2.3.3 (2017/10/08)

    • All HTML files can be replaced by files on SPIFFS. Gzip support.
    • updated HTML/JS
    • Add "Title" to be displayed at banner in config page.
    • Workaround for accepting HTTP Post body length not equal to Content-Length.( for iSpindel v5.2+)
  • v2.3.2

    • Beer Profile scheculde bug fix
    • Show hostname at banner
  • v2.3.1

    • WiFi signal
    • /getstatus web service
  • v2.3

    • Fix error in time of reset. (New log format! Use new log viewer)
    • State coloring in chart
    • Remove "view" action in log list.
  • v2.2

    • 4 decimals of gravity
    • Switch to PlatformIO instead of Arduino IDE.
  • v2.1

    • more gravity-based condition
  • v2.0

    • gravity-based beer profil schedule
  • v1.2.7

    • iSpindel support

Software configuration

If you want to build the BrewPiLess firmware by yourself, we strongly recommend using platformIO and VisualStudio Code with the PlatformIO IDE extension.

You can find further details in the wiki: Software Installation.

wiki

brewpiless's People

Contributors

dumpamob avatar ferchinas avatar geschwaerzler avatar jamesgol avatar jangevaare avatar racemouse-of-denmark avatar vitotai 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.