Initial import
This commit is contained in:
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
.pioenvs
|
||||||
|
.piolibdeps
|
||||||
|
data/homie/config.json
|
||||||
|
nbproject
|
4
README.md
Normal file
4
README.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# README #
|
||||||
|
edit data/homie/config.json
|
||||||
|
platformio run -t upload
|
||||||
|
platformio run -t uploadfs
|
BIN
data/homie/ui_bundle.gz
Normal file
BIN
data/homie/ui_bundle.gz
Normal file
Binary file not shown.
38
lib/readme.txt
Normal file
38
lib/readme.txt
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
|
||||||
|
This directory is intended for the project specific (private) libraries.
|
||||||
|
PlatformIO will compile them to static libraries and link to executable file.
|
||||||
|
|
||||||
|
The source code of each library should be placed in separate directory, like
|
||||||
|
"lib/private_lib/[here are source files]".
|
||||||
|
|
||||||
|
For example, see how can be organised `Foo` and `Bar` libraries:
|
||||||
|
|
||||||
|
|--lib
|
||||||
|
| |--Bar
|
||||||
|
| | |--docs
|
||||||
|
| | |--examples
|
||||||
|
| | |--src
|
||||||
|
| | |- Bar.c
|
||||||
|
| | |- Bar.h
|
||||||
|
| |--Foo
|
||||||
|
| | |- Foo.c
|
||||||
|
| | |- Foo.h
|
||||||
|
| |- readme.txt --> THIS FILE
|
||||||
|
|- platformio.ini
|
||||||
|
|--src
|
||||||
|
|- main.c
|
||||||
|
|
||||||
|
Then in `src/main.c` you should use:
|
||||||
|
|
||||||
|
#include <Foo.h>
|
||||||
|
#include <Bar.h>
|
||||||
|
|
||||||
|
// rest H/C/CPP code
|
||||||
|
|
||||||
|
PlatformIO will find your libraries automatically, configure preprocessor's
|
||||||
|
include paths and build them.
|
||||||
|
|
||||||
|
See additional options for PlatformIO Library Dependency Finder `lib_*`:
|
||||||
|
|
||||||
|
http://docs.platformio.org/en/latest/projectconf.html#lib-install
|
||||||
|
|
27
platformio.ini
Normal file
27
platformio.ini
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#
|
||||||
|
# Project Configuration File
|
||||||
|
#
|
||||||
|
# A detailed documentation with the EXAMPLES is located here:
|
||||||
|
# http://docs.platformio.org/en/latest/projectconf.html
|
||||||
|
#
|
||||||
|
|
||||||
|
# A sign `#` at the beginning of the line indicates a comment
|
||||||
|
# Comment lines are ignored.
|
||||||
|
|
||||||
|
# Simple and base environment
|
||||||
|
# [env:mybaseenv]
|
||||||
|
# platform = %INSTALLED_PLATFORM_NAME_HERE%
|
||||||
|
# framework =
|
||||||
|
# board =
|
||||||
|
#
|
||||||
|
# Automatic targets - enable auto-uploading
|
||||||
|
# targets = upload
|
||||||
|
|
||||||
|
[env:nodemcu]
|
||||||
|
platform = espressif8266
|
||||||
|
framework = arduino
|
||||||
|
board = nodemcu
|
||||||
|
upload_speed=921600
|
||||||
|
|
||||||
|
build_flags = -D PIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY
|
||||||
|
lib_deps = https://github.com/homieiot/homie-esp8266.git#develop
|
42
src/main.cpp
Normal file
42
src/main.cpp
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
#include <Homie.h>
|
||||||
|
|
||||||
|
const int PIN_RELAY = D1;
|
||||||
|
int timer = 0;
|
||||||
|
HomieNode powerNode("power", "switch");
|
||||||
|
|
||||||
|
bool powerOnHandler(const HomieRange& range, const String& value) {
|
||||||
|
if (value != "true" && value != "false") return false;
|
||||||
|
bool on = (value == "true");
|
||||||
|
digitalWrite(PIN_RELAY, on ? LOW : HIGH);
|
||||||
|
powerNode.setProperty("on").send(value);
|
||||||
|
Homie.getLogger() << "Power is " << (on ? "on" : "off") << endl;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setupHandler() {
|
||||||
|
pinMode(PIN_RELAY, OUTPUT);
|
||||||
|
digitalWrite(PIN_RELAY, HIGH);
|
||||||
|
|
||||||
|
powerNode.setProperty("on").send("false");
|
||||||
|
}
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
Serial.begin(115200);
|
||||||
|
|
||||||
|
Serial << endl << endl;
|
||||||
|
Serial << "Firmware 0.0.1" << endl;
|
||||||
|
Serial << endl << endl;
|
||||||
|
|
||||||
|
Homie_setFirmware("deskcontrol", "1.0.0");
|
||||||
|
Homie_setBrand("FuryFire");
|
||||||
|
|
||||||
|
powerNode.advertise("on").settable(powerOnHandler);
|
||||||
|
|
||||||
|
Homie.setSetupFunction(setupHandler);
|
||||||
|
Homie.setup();
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
Homie.loop();
|
||||||
|
}
|
Reference in New Issue
Block a user