Adding to repo
This commit is contained in:
70
ESPGadget.ino
Normal file
70
ESPGadget.ino
Normal file
@@ -0,0 +1,70 @@
|
||||
/*
|
||||
* ESP-SecureGadget by Florian Overkamp
|
||||
* An ESP8266 based IoT/remote controlled gadget
|
||||
* Design is modular so it can be used for things like Sonoff's but also for custom projects like Dex' Moon lamp
|
||||
*
|
||||
* Note that file ordering is important.
|
||||
*/
|
||||
|
||||
// Done:
|
||||
// Enable MQTT over SSL as per https://github.com/debsahu/ESP_MQTT_Secure/tree/master/ESP8266_MQTT_SSL/Arduino/ESP8266_PubSubClient_SSL
|
||||
// Cooperative multitasking: Use timers always. Avoid delays where they can be avoided.
|
||||
// Restructure mqtt topics a bit (report back with unique names for multiple fx lights, for instance)
|
||||
// Implement versioning so that new firmware can be done OTA
|
||||
|
||||
// Todo:
|
||||
// Split the wifi and mqtt code in order to support http interface
|
||||
// Stay on the lookout for watchdog crashes, see also https://www.sigmdel.ca/michel/program/esp8266/arduino/watchdogs_en.html#ESP8266_WDT_RECOV
|
||||
// Keeps crashing after a few days. Dunno why. https://www.pieterverhees.nl/sparklesagarbage/esp8266/130-difference-between-esp-reset-and-esp-restart
|
||||
// More on this subject https://github.com/esp8266/Arduino/issues/1017
|
||||
// Implement more visual effects
|
||||
// Implement speed controls for the visual effects
|
||||
// Implement OTA https://www.bakke.online/index.php/2017/06/02/self-updating-ota-firmware-for-esp8266/
|
||||
// Refactoring sources: https://www.arduinolibraries.info/architectures/esp8266
|
||||
// Refactor String usage to minimize heap pollution. https://cpp4arduino.com/2018/11/21/eight-tips-to-use-the-string-class-efficiently.html
|
||||
|
||||
#define DEVICEPREFIX "Gadget" // Should be no longer than 8(?) chars or the MQTT clientId will become too long
|
||||
const int FW_VERSION = 12;
|
||||
|
||||
// Version history:
|
||||
// v12: Refactored inbound commands to hook in to the modules (module_message function), completed assimilation of (never-published) Moon_Connected sketch
|
||||
// v11: Simplified scheduler, back to cooperative looping
|
||||
// v10: First 'production' run. MQTT over TLS, but no OTA support.
|
||||
|
||||
/*
|
||||
* Compile time settings
|
||||
*/
|
||||
|
||||
/************************* WiFi Access Point *********************************/
|
||||
#define WLAN_SSID "MY_SSID"
|
||||
#define WLAN_PASS "MY_WIFIPASSWD"
|
||||
|
||||
|
||||
/*********************** Select active modules *******************************/
|
||||
#define ENABLE_MQTT
|
||||
//#define ENABLE_SONOFF
|
||||
#define ENABLE_MOON
|
||||
|
||||
|
||||
#ifdef ENABLE_MQTT
|
||||
/*************************** MQTT settings ***********************************/
|
||||
#define MQTT_SERVER "MY_MQTT_SERVER"
|
||||
#define MQTT_SERVERPORT 8883 // 8883 for MQTTS
|
||||
#define MQTT_USERNAME "MY_MQTT_USER"
|
||||
#define MQTT_PASSWORD "MY_MQTT_PASSWD"
|
||||
#define MQTT_PREFIX "iot/" // MQTT publish/subscribe will be prefixed by this (mind the trailing slash)
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_SONOFF
|
||||
/*************************** MQTT settings ***********************************/
|
||||
#define SONOFF_BUTTON 0
|
||||
#define SONOFF_RELAY 12
|
||||
#define SONOFF_LED 13
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_MOON
|
||||
/*********************** NeoPixel Moon settings ******************************/
|
||||
#define MOON_PIXEL 4 // Which GPIO pin is the NeoPixel connected to
|
||||
#define MOON_PIXEL_LEDS 7 // Amount of leds in the string
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user