home-climate-control / hcc-esp32 Goto Github PK
View Code? Open in Web Editor NEWHome Climate Control ESP32 based edge device firmware
License: GNU General Public License v3.0
Home Climate Control ESP32 based edge device firmware
License: GNU General Public License v3.0
As an application developer and an infrastructure engineer, I want my application to be able to provide NTP sourced timestamps so that MQTT consumers can observe correct event time.
Acceptance criteria: Actual time retrieved from NTP and available for information producers within application.
As an application developer, I want to be able to order A4988 chip to fall asleep, so that I can conserve energy.
Acceptance criteria: SLP signal passed to A4988 and works as documented.
As a Home Climate Control user, I want all edge devices to have consistent behavior so that I don't have to remember which is which and stay amazed at subtle differences between them.
Acceptance criteria: onboard LED blink pattern is the same as hcc-esp8266 provides:
(depends on #4)
As an application developer, I want to publish 1-Wire sensor samples to MQTT so that they can be consumed at the other end.
Acceptance criteria: 1-Wire sensor samples are successfully consumed at the given MQTT topic.
As an application developer, I want idf.py menuconfig
to include configuration elements specific to A4988 stepper driver.
Acceptance criteria: idf.py menuconfig
allows to set the following parameters:
Note: not enabling extra features frees up to 3 (microstepping) + 1 (power saving) GPIO pins.
As an application developer, I want idf.py menuconfig
to include my application's configuration elements so that my application is properly configured.
Acceptance criteria: idf.py menuconfig
allows to set the following parameters:
As an application developer, I want my project to not depend on WiFi and Ethernet connectivity example code so that it can be packaged and distributed independently.
Acceptance criteria: there are no references to components $ENV{IDF_PATH}/examples
in the code.
As an application developer, I want to implement access to 1-Wire devices so that I can read sensor samples off them.
Acceptance criteria: the code is able to
Starting point: https://github.com/DavidAntliff/esp32-ds18b20-example
As an application developer, I want to be able to code in C++ so that I can, well, utilize OOP concepts.
Acceptance criteria: ongoing task until all loose ends that it makes sense to convert are converted.
menuconfig
time (see 9b44c6fa0f4062299e4f516843c5a07a29fd260c).Acceptance criteria: the hardcoded limit is removed, and arbitrary number of devices is handled with dynamically allocated memory.
As an Application Developer, I want to implement the LWT (Last Will and Testament) message so that the clients can recover gracefully from hcc-esp32
's ungraceful shutdown.
Acceptance Criteria: LWT is received by clients when hcc-esp32
disconnects from the MQTT broker ungracefully.
Reference: https://www.hivemq.com/blog/mqtt-essentials-part-9-last-will-and-testament/
As an application user, I want to be able to enable and disable 1-Wire support so that I can either use 1-Wire devices, or save the GPIO pin for other purposes.
Acceptance criteria:
menuconfig
can be completely enabled or disabledAs an application developer, I want to be able to order A4988 chip to move the stepper in microsteps, so that I can implement silent operation and fine control.
Acceptance criteria: All microstepping modes work as documented.
Depends on #9.
As an application developer, I want to be able to issue direction and step commands via A4988 driver, so that I can control steppers.
Acceptance criteria: direction and step commands issued to A4988 driver API make the stepper move.
As an application developer, I want to be able to use a limit switch and failsafe position with stepper based mechanisms to assure their power loss tolerance.
Acceptance criteria:
As an application developer, I want to use the README.md
file from ESP-IDF as a template so that the application specific README.md
follows a well established known good structure.
Acceptance criteria: README.md
describes the actual application.
As an application developer, I want to be able to issue PWM positioning commands so that RC servos connected to GPIO pins can be controlled.
Acceptance criteria: RC servos connected to GPIO pins execute PWM positioning commands.
Reference: DavidAntliff/esp32-ds18b20-example#17
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.