diff --git a/MyConfig.h b/MyConfig.h index 9582a1d..845d594 100644 --- a/MyConfig.h +++ b/MyConfig.h @@ -223,25 +223,22 @@ /********************************** * Information LEDs blinking ***********************************/ -// This feature enables LEDs blinking on message receive, transmit -// or if some error occurred. This was commonly used only in gateways, -// but now can be used in any sensor node. Also the LEDs can now be -// disabled in the gateway. +// If one of the following is defined here, or in the sketch, the pin will be used for the +// corresponding led function. +// They have to be enabled here (or in your sketch). Replace x with the pin number you have the LED on. +// +// NOTE!! that on some platforms (for example sensebender GW) the hardware variant can enable LEDs by default, +// These defaults can be overridden by defining one of these. +//#define MY_DEFAULT_ERR_LED_PIN x +//#define MY_DEFAULT_TX_LED_PIN x +//#define MY_DEFAULT_RX_LED_PIN x -//#define MY_LEDS_BLINKING_FEATURE - -// The following setting allows you to inverse the blinking feature MY_LEDS_BLINKING_FEATURE +// The following setting allows you to inverse the LED blinking // When MY_WITH_LEDS_BLINKING_INVERSE is enabled LEDSs are normally turned on and switches // off when blinking //#define MY_WITH_LEDS_BLINKING_INVERSE -// The following defines can be used to set the port pin, that the LED is connected to -// If one of the following is defined here, or in the sketch, MY_LEDS_BLINKING_FEATURE will be -// enabled by default. (Replace x with the pin number you have the LED on) -//#define MY_DEFAULT_ERR_LED_PIN x -//#define MY_DEFAULT_TX_LED_PIN x -//#define MY_DEFAULT_RX_LED_PIN x /********************************************** * Gateway inclusion button/mode configuration @@ -431,7 +428,7 @@ /** * @def MY_RX_MESSAGE_BUFFER_FEATURE -* @brief This enabled the receiving buffer feature. +* @brief This enabled the receiving buffer feature. * * This feature is currently not supported for RFM69 and RS485, for RF24 MY_RF24_IRQ_PIN has to be defined. */ @@ -439,7 +436,7 @@ /** * @def MY_RX_MESSAGE_BUFFER_SIZE - * @brief Declare the amount of incoming messages that can be buffered. + * @brief Declare the amount of incoming messages that can be buffered. */ #ifdef MY_RX_MESSAGE_BUFFER_FEATURE #ifndef MY_RX_MESSAGE_BUFFER_SIZE diff --git a/MySensors.h b/MySensors.h index 70bc936..c0fd42a 100644 --- a/MySensors.h +++ b/MySensors.h @@ -84,17 +84,10 @@ #define MY_DEFAULT_RX_LED_PIN MY_HW_TX_LED_PIN #endif -// Not necessary to include blinking feature if no LED's are defined! -#if defined(MY_LEDS_BLINKING_FEATURE) && !defined(MY_DEFAULT_RX_LED_PIN) && !defined(MY_DEFAULT_TX_LED_PIN) && !defined(MY_ERR_LED_PIN) - #undef MY_LEDS_BLINKING_FEATURE +#if defined(MY_LEDS_BLINKING_FEATURE) +#warning MY_LEDS_BLINKING_FEATURE is not working, define MY_DEFAULT_ERR_LED_PIN, MY_DEFAULT_TX_LED_PIN or MY_DEFAULT_RX_LED_PIN in your sketch #endif -// Enable LED BLINKING FEATURE, if there are any LEDs defined. -#if defined(MY_DEFAULT_RX_LED_PIN) || defined(MY_DEFAULT_ERR_LED) || defined(MY_DEFAULT_TX_LED_PIN) - #define MY_LEDS_BLINKING_FEATURE -#endif - - /** * @def MY_DEFAULT_LED_BLINK_PERIOD * @brief Default LEDs blinking period in milliseconds. @@ -102,41 +95,8 @@ #ifndef MY_DEFAULT_LED_BLINK_PERIOD #define MY_DEFAULT_LED_BLINK_PERIOD 300 #endif -/** - * @def MY_DEFAULT_RX_LED_PIN - * @brief The RX LED default pin. - */ -#ifndef MY_DEFAULT_RX_LED_PIN - #if defined(ARDUINO_ARCH_ESP8266) - #define MY_DEFAULT_RX_LED_PIN 8 - #else - #define MY_DEFAULT_RX_LED_PIN 6 - #endif -#endif -/** - * @def MY_DEFAULT_TX_LED_PIN - * @brief The TX LED default pin. - */ -#ifndef MY_DEFAULT_TX_LED_PIN - #if defined(ARDUINO_ARCH_ESP8266) - #define MY_DEFAULT_TX_LED_PIN 9 - #else - #define MY_DEFAULT_TX_LED_PIN 5 - #endif -#endif -/** - * @def MY_DEFAULT_ERR_LED_PIN - * @brief The Error LED default pin. - */ -#ifndef MY_DEFAULT_ERR_LED_PIN - #if defined(ARDUINO_ARCH_ESP8266) - #define MY_DEFAULT_ERR_LED_PIN 7 - #else - #define MY_DEFAULT_ERR_LED_PIN 4 - #endif -#endif -#if defined(MY_LEDS_BLINKING_FEATURE) +#if defined(MY_DEFAULT_RX_LED_PIN) || defined(MY_DEFAULT_TX_LED_PIN) || defined(MY_DEFAULT_ERR_LED_PIN) #include "core/MyLeds.cpp" #else #include "core/MyLeds.h" @@ -270,7 +230,7 @@ #endif #if defined(MY_PARENT_NODE_IS_STATIC) && (MY_PARENT_NODE_ID == AUTO) - #error Parent is static but no parent ID defined. + #error Parent is static but no parent ID defined. #endif // Make sure to disable child features when parent feature is disabled diff --git a/core/MyIndication.cpp b/core/MyIndication.cpp index 8e5e65b..6eb5b45 100644 --- a/core/MyIndication.cpp +++ b/core/MyIndication.cpp @@ -18,20 +18,26 @@ */ #include "MyIndication.h" -#ifdef MY_LEDS_BLINKING_FEATURE +#if defined(MY_DEFAULT_TX_LED_PIN)|| defined(MY_DEFAULT_RX_LED_PIN) || defined(MY_DEFAULT_ERR_LED_PIN) #include "MyLeds.h" #endif void setIndication( const indication_t ind ) { -#ifdef MY_LEDS_BLINKING_FEATURE +#if defined(MY_DEFAULT_TX_LED_PIN) if ((INDICATION_TX == ind) || (INDICATION_GW_TX == ind)) { ledsBlinkTx(1); - } else if ((INDICATION_RX == ind) || (INDICATION_GW_RX == ind)) + } else +#endif +#if defined(MY_DEFAULT_RX_LED_PIN) + if ((INDICATION_RX == ind) || (INDICATION_GW_RX == ind)) { ledsBlinkRx(1); - } else if (ind > INDICATION_ERR_START) + } else +#endif +#if defined(MY_DEFAULT_ERR_LED_PIN) + if (ind > INDICATION_ERR_START) { // Number of blinks indicates which error occurred. ledsBlinkErr(ind-INDICATION_ERR_START); diff --git a/core/MyLeds.cpp b/core/MyLeds.cpp index 2974c18..33f1eed 100644 --- a/core/MyLeds.cpp +++ b/core/MyLeds.cpp @@ -37,10 +37,15 @@ inline void ledsInit() countErr = 0; // Setup led pins +#if defined(MY_DEFAULT_RX_LED_PIN) pinMode(MY_DEFAULT_RX_LED_PIN, OUTPUT); +#endif +#if defined(MY_DEFAULT_TX_LED_PIN) pinMode(MY_DEFAULT_TX_LED_PIN, OUTPUT); +#endif +#if defined(MY_DEFAULT_ERR_LED_PIN) pinMode(MY_DEFAULT_ERR_LED_PIN, OUTPUT); - +#endif ledsProcess(); } @@ -55,17 +60,23 @@ void ledsProcess() { // For an On/Off ratio of 4, the pattern repeated will be [on, on, on, off] // until the counter becomes 0. +#if defined(MY_DEFAULT_RX_LED_PIN) state = (countRx & (LED_ON_OFF_RATIO-1)) ? LED_ON : LED_OFF; hwDigitalWrite(MY_DEFAULT_RX_LED_PIN, state); if (countRx) --countRx; +#endif +#if defined(MY_DEFAULT_TX_LED_PIN) state = (countTx & (LED_ON_OFF_RATIO-1)) ? LED_ON : LED_OFF; hwDigitalWrite(MY_DEFAULT_TX_LED_PIN, state); if (countTx) --countTx; +#endif +#if defined(MY_DEFAULT_ERR_LED_PIN) state = (countErr & (LED_ON_OFF_RATIO-1)) ? LED_ON : LED_OFF; hwDigitalWrite(MY_DEFAULT_ERR_LED_PIN, state); if (countErr) --countErr; +#endif } void ledsBlinkRx(uint8_t cnt) { @@ -79,4 +90,3 @@ void ledsBlinkTx(uint8_t cnt) { void ledsBlinkErr(uint8_t cnt) { if(!countErr) { countErr = cnt*LED_ON_OFF_RATIO; } } - diff --git a/core/MyLeds.h b/core/MyLeds.h index 18e138d..e6f982d 100644 --- a/core/MyLeds.h +++ b/core/MyLeds.h @@ -29,7 +29,7 @@ #define LED_OFF 0x1 #endif -#ifdef MY_LEDS_BLINKING_FEATURE +#if defined(MY_DEFAULT_TX_LED_PIN) || defined(MY_DEFAULT_RX_LED_PIN) || defined(MY_DEFAULT_ERR_LED_PIN) #define ledBlinkTx(x,...) ledsBlinkTx(x) #define ledBlinkRx(x,...) ledsBlinkRx(x) #define ledBlinkErr(x,...) ledsBlinkErr(x) diff --git a/core/MySensorsCore.cpp b/core/MySensorsCore.cpp index 8e5a5fa..e66f2d4 100644 --- a/core/MySensorsCore.cpp +++ b/core/MySensorsCore.cpp @@ -35,7 +35,7 @@ void (*_timeCallback)(unsigned long); // Callback for requested time messages void _process() { hwWatchdogReset(); - #if defined (MY_LEDS_BLINKING_FEATURE) + #if defined (MY_DEFAULT_TX_LED_PIN) || defined(MY_DEFAULT_RX_LED_PIN) || defined(MY_DEFAULT_ERR_LED_PIN) ledsProcess(); #endif @@ -58,7 +58,7 @@ void _infiniteLoop() { #if defined(ARDUINO_ARCH_ESP8266) yield(); #endif - #if defined (MY_LEDS_BLINKING_FEATURE) + #if defined (MY_DEFAULT_TX_LED_PIN) || defined(MY_DEFAULT_RX_LED_PIN) || defined(MY_DEFAULT_ERR_LED_PIN) ledsProcess(); #endif } @@ -81,7 +81,7 @@ void _begin() { before(); } - #if defined(MY_LEDS_BLINKING_FEATURE) + #if defined(MY_DEFAULT_TX_LED_PIN) || defined(MY_DEFAULT_RX_LED_PIN) || defined(MY_DEFAULT_ERR_LED_PIN) ledsInit(); #endif diff --git a/examples/GatewayESP8266/GatewayESP8266.ino b/examples/GatewayESP8266/GatewayESP8266.ino index 6582a70..f4f6fd8 100644 --- a/examples/GatewayESP8266/GatewayESP8266.ino +++ b/examples/GatewayESP8266/GatewayESP8266.ino @@ -20,34 +20,34 @@ * * REVISION HISTORY * Version 1.0 - Henrik EKblad - * Contribution by a-lurker and Anticimex, + * Contribution by a-lurker and Anticimex, * Contribution by Norbert Truchsess * Contribution by Ivo Pullens (ESP8266 support) - * + * * DESCRIPTION - * The EthernetGateway sends data received from sensors to the WiFi link. + * The EthernetGateway sends data received from sensors to the WiFi link. * The gateway also accepts input on ethernet interface, which is then sent out to the radio network. * * VERA CONFIGURATION: - * Enter "ip-number:port" in the ip-field of the Arduino GW device. This will temporarily override any serial configuration for the Vera plugin. + * Enter "ip-number:port" in the ip-field of the Arduino GW device. This will temporarily override any serial configuration for the Vera plugin. * E.g. If you want to use the defualt values in this sketch enter: 192.168.178.66:5003 * * LED purposes: - * - To use the feature, uncomment WITH_LEDS_BLINKING in MyConfig.h + * - To use the feature, uncomment any of the MY_DEFAULT_xx_LED_PINs in your sketch, only the LEDs that is defined is used. * - RX (green) - blink fast on radio message recieved. In inclusion mode will blink fast only on presentation recieved * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly - * - ERR (red) - fast blink on error during transmission error or recieve crc error - * + * - ERR (red) - fast blink on error during transmission error or recieve crc error + * * See http://www.mysensors.org/build/esp8266_gateway for wiring instructions. * nRF24L01+ ESP8266 * VCC VCC - * CE GPIO4 + * CE GPIO4 * CSN/CS GPIO15 * SCK GPIO14 * MISO GPIO12 * MOSI GPIO13 * GND GND - * + * * Not all ESP8266 modules have all pins available on their external interface. * This code has been tested on an ESP-12 module. * The ESP8266 requires a certain pin configuration to download code, and another one to run code: @@ -56,10 +56,10 @@ * - Connect CH_PD via 10K resistor to VCC * - Connect GPIO2 via 10K resistor to VCC * - Connect GPIO0 via 10K resistor to VCC, and via switch to GND ('bootload switch') - * + * * Inclusion mode button: * - Connect GPIO5 via switch to GND ('inclusion switch') - * + * * Hardware SHA204 signing is currently not supported! * * Make sure to fill in your ssid and WiFi password below for ssid & pass. @@ -67,7 +67,7 @@ // Enable debug prints to serial monitor -#define MY_DEBUG +#define MY_DEBUG // Use a bit lower baudrate for serial prints on ESP8266 than default in MyConfig.h #define MY_BAUD_RATE 9600 @@ -95,14 +95,14 @@ #define MY_IP_GATEWAY_ADDRESS 192,168,178,1 #define MY_IP_SUBNET_ADDRESS 255,255,255,0 -// The port to keep open on node server mode -#define MY_PORT 5003 +// The port to keep open on node server mode +#define MY_PORT 5003 // How many clients should be able to connect to this gateway (default 1) #define MY_GATEWAY_MAX_CLIENTS 2 -// Controller ip address. Enables client mode (default is "server" mode). -// Also enable this if MY_USE_UDP is used and you want sensor data sent somewhere. +// Controller ip address. Enables client mode (default is "server" mode). +// Also enable this if MY_USE_UDP is used and you want sensor data sent somewhere. //#define MY_CONTROLLER_IP_ADDRESS 192, 168, 178, 68 // Enable inclusion mode @@ -111,16 +111,15 @@ // Enable Inclusion mode button on gateway // #define MY_INCLUSION_BUTTON_FEATURE // Set inclusion mode duration (in seconds) -#define MY_INCLUSION_MODE_DURATION 60 +#define MY_INCLUSION_MODE_DURATION 60 // Digital pin used for inclusion mode button -#define MY_INCLUSION_MODE_BUTTON_PIN 3 +#define MY_INCLUSION_MODE_BUTTON_PIN 3 + - -// Flash leds on rx/tx/err -// #define MY_LEDS_BLINKING_FEATURE // Set blinking period // #define MY_DEFAULT_LED_BLINK_PERIOD 300 +// Flash leds on rx/tx/err // Led pins used if blinking feature is enabled above #define MY_DEFAULT_ERR_LED_PIN 16 // Error led pin #define MY_DEFAULT_RX_LED_PIN 16 // Receive led pin @@ -134,17 +133,14 @@ #include -void setup() { +void setup() { } void presentation() { - // Present locally attached sensors here + // Present locally attached sensors here } void loop() { // Send locally attached sensors data here } - - - diff --git a/examples/GatewayESP8266MQTTClient/GatewayESP8266MQTTClient.ino b/examples/GatewayESP8266MQTTClient/GatewayESP8266MQTTClient.ino index 7a73594..0b4933b 100644 --- a/examples/GatewayESP8266MQTTClient/GatewayESP8266MQTTClient.ino +++ b/examples/GatewayESP8266MQTTClient/GatewayESP8266MQTTClient.ino @@ -20,26 +20,26 @@ * * REVISION HISTORY * Version 1.0 - Henrik Ekblad - * + * * DESCRIPTION * The ESP8266 MQTT gateway sends radio network (or locally attached sensors) data to your MQTT broker. * The node also listens to MY_MQTT_TOPIC_PREFIX and sends out those messages to the radio network * * LED purposes: - * - To use the feature, uncomment WITH_LEDS_BLINKING in MyConfig.h + * - To use the feature, uncomment any of the MY_DEFAULT_xx_LED_PINs in your sketch * - RX (green) - blink fast on radio message recieved. In inclusion mode will blink fast only on presentation recieved * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly - * - ERR (red) - fast blink on error during transmission error or recieve crc error - * + * - ERR (red) - fast blink on error during transmission error or recieve crc error + * * See http://www.mysensors.org/build/esp8266_gateway for wiring instructions. * nRF24L01+ ESP8266 * VCC VCC - * CE GPIO4 + * CE GPIO4 * CSN/CS GPIO15 * SCK GPIO14 * MISO GPIO12 * MOSI GPIO13 - * + * * Not all ESP8266 modules have all pins available on their external interface. * This code has been tested on an ESP-12 module. * The ESP8266 requires a certain pin configuration to download code, and another one to run code: @@ -48,10 +48,10 @@ * - Connect CH_PD via 10K resistor to VCC * - Connect GPIO2 via 10K resistor to VCC * - Connect GPIO0 via 10K resistor to VCC, and via switch to GND ('bootload switch') - * + * * Inclusion mode button: * - Connect GPIO5 via switch to GND ('inclusion switch') - * + * * Hardware SHA204 signing is currently not supported! * * Make sure to fill in your ssid and WiFi password below for ssid & pass. @@ -59,7 +59,7 @@ // Enable debug prints to serial monitor -#define MY_DEBUG +#define MY_DEBUG // Use a bit lower baudrate for serial prints on ESP8266 than default in MyConfig.h #define MY_BAUD_RATE 9600 @@ -87,7 +87,7 @@ #define MY_ESP8266_PASSWORD "MyVerySecretPassword" // Set the hostname for the WiFi Client. This is the hostname -// it will pass to the DHCP server if not static. +// it will pass to the DHCP server if not static. // #define MY_ESP8266_HOSTNAME "mqtt-sensor-gateway" // Enable MY_IP_ADDRESS here if you want a static ip address (no DHCP) @@ -98,27 +98,26 @@ #define MY_IP_SUBNET_ADDRESS 255,255,255,0 -// MQTT broker ip address. +// MQTT broker ip address. #define MY_CONTROLLER_IP_ADDRESS 192, 168, 178, 68 -// The MQTT broker port to to open -#define MY_PORT 1883 +// The MQTT broker port to to open +#define MY_PORT 1883 /* -// Flash leds on rx/tx/err -#define MY_LEDS_BLINKING_FEATURE -// Set blinking period -#define MY_DEFAULT_LED_BLINK_PERIOD 300 - // Enable inclusion mode #define MY_INCLUSION_MODE_FEATURE // Enable Inclusion mode button on gateway #define MY_INCLUSION_BUTTON_FEATURE // Set inclusion mode duration (in seconds) -#define MY_INCLUSION_MODE_DURATION 60 +#define MY_INCLUSION_MODE_DURATION 60 // Digital pin used for inclusion mode button -#define MY_INCLUSION_MODE_BUTTON_PIN 3 +#define MY_INCLUSION_MODE_BUTTON_PIN 3 +// Set blinking period +#define MY_DEFAULT_LED_BLINK_PERIOD 300 + +// Flash leds on rx/tx/err #define MY_DEFAULT_ERR_LED_PIN 16 // Error led pin #define MY_DEFAULT_RX_LED_PIN 16 // Receive led pin #define MY_DEFAULT_TX_LED_PIN 16 // the PCB, on board LED @@ -127,17 +126,14 @@ #include #include -void setup() { +void setup() { } void presentation() { - // Present locally attached sensors here + // Present locally attached sensors here } void loop() { // Send locally attech sensors data here } - - - diff --git a/examples/GatewayESP8266OTA/GatewayESP8266OTA.ino b/examples/GatewayESP8266OTA/GatewayESP8266OTA.ino index 4e7870c..353a5f2 100644 --- a/examples/GatewayESP8266OTA/GatewayESP8266OTA.ino +++ b/examples/GatewayESP8266OTA/GatewayESP8266OTA.ino @@ -21,34 +21,34 @@ * REVISION HISTORY * Version 1.0 - Henrik EKblad * Contribution by tekka, - * Contribution by a-lurker and Anticimex, + * Contribution by a-lurker and Anticimex, * Contribution by Norbert Truchsess * Contribution by Ivo Pullens (ESP8266 support) - * + * * DESCRIPTION - * The EthernetGateway sends data received from sensors to the WiFi link. + * The EthernetGateway sends data received from sensors to the WiFi link. * The gateway also accepts input on ethernet interface, which is then sent out to the radio network. * * VERA CONFIGURATION: - * Enter "ip-number:port" in the ip-field of the Arduino GW device. This will temporarily override any serial configuration for the Vera plugin. + * Enter "ip-number:port" in the ip-field of the Arduino GW device. This will temporarily override any serial configuration for the Vera plugin. * E.g. If you want to use the defualt values in this sketch enter: 192.168.178.66:5003 * * LED purposes: * - To use the feature, uncomment WITH_LEDS_BLINKING in MyConfig.h * - RX (green) - blink fast on radio message recieved. In inclusion mode will blink fast only on presentation recieved * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly - * - ERR (red) - fast blink on error during transmission error or recieve crc error - * + * - ERR (red) - fast blink on error during transmission error or recieve crc error + * * See http://www.mysensors.org/build/esp8266_gateway for wiring instructions. * nRF24L01+ ESP8266 * VCC VCC - * CE GPIO4 + * CE GPIO4 * CSN/CS GPIO15 * SCK GPIO14 * MISO GPIO12 * MOSI GPIO13 * GND GND - * + * * Not all ESP8266 modules have all pins available on their external interface. * This code has been tested on an ESP-12 module. * The ESP8266 requires a certain pin configuration to download code, and another one to run code: @@ -57,10 +57,10 @@ * - Connect CH_PD via 10K resistor to VCC * - Connect GPIO2 via 10K resistor to VCC * - Connect GPIO0 via 10K resistor to VCC, and via switch to GND ('bootload switch') - * + * * Inclusion mode button: * - Connect GPIO5 via switch to GND ('inclusion switch') - * + * * Hardware SHA204 signing is currently not supported! * * Make sure to fill in your ssid and WiFi password below for ssid & pass. @@ -69,7 +69,7 @@ #include // Enable debug prints to serial monitor -#define MY_DEBUG +#define MY_DEBUG // Use a bit lower baudrate for serial prints on ESP8266 than default in MyConfig.h #define MY_BAUD_RATE 9600 @@ -97,14 +97,14 @@ #define MY_IP_GATEWAY_ADDRESS 192,168,178,1 #define MY_IP_SUBNET_ADDRESS 255,255,255,0 -// The port to keep open on node server mode -#define MY_PORT 5003 +// The port to keep open on node server mode +#define MY_PORT 5003 // How many clients should be able to connect to this gateway (default 1) #define MY_GATEWAY_MAX_CLIENTS 2 -// Controller ip address. Enables client mode (default is "server" mode). -// Also enable this if MY_USE_UDP is used and you want sensor data sent somewhere. +// Controller ip address. Enables client mode (default is "server" mode). +// Also enable this if MY_USE_UDP is used and you want sensor data sent somewhere. //#define MY_CONTROLLER_IP_ADDRESS 192, 168, 178, 68 // Enable inclusion mode @@ -113,16 +113,15 @@ // Enable Inclusion mode button on gateway // #define MY_INCLUSION_BUTTON_FEATURE // Set inclusion mode duration (in seconds) -#define MY_INCLUSION_MODE_DURATION 60 +#define MY_INCLUSION_MODE_DURATION 60 // Digital pin used for inclusion mode button -#define MY_INCLUSION_MODE_BUTTON_PIN 3 +#define MY_INCLUSION_MODE_BUTTON_PIN 3 + - -// Flash leds on rx/tx/err -// #define MY_LEDS_BLINKING_FEATURE // Set blinking period // #define MY_DEFAULT_LED_BLINK_PERIOD 300 +// Flash leds on rx/tx/err // Led pins used if blinking feature is enabled above #define MY_DEFAULT_ERR_LED_PIN 16 // Error led pin #define MY_DEFAULT_RX_LED_PIN 16 // Receive led pin @@ -136,8 +135,8 @@ #include -void setup() { - +void setup() { + ArduinoOTA.onStart([]() { Serial.println("ArduinoOTA start"); }); @@ -163,7 +162,7 @@ void setup() { } void presentation() { - // Present locally attached sensors here + // Present locally attached sensors here } @@ -171,7 +170,3 @@ void loop() { // Send locally attech sensors data here ArduinoOTA.handle(); } - - - - diff --git a/examples/GatewaySerial/GatewaySerial.ino b/examples/GatewaySerial/GatewaySerial.ino index 3c0b6be..747ba9f 100644 --- a/examples/GatewaySerial/GatewaySerial.ino +++ b/examples/GatewaySerial/GatewaySerial.ino @@ -19,25 +19,25 @@ ******************************* * * DESCRIPTION - * The ArduinoGateway prints data received from sensors on the serial link. + * The ArduinoGateway prints data received from sensors on the serial link. * The gateway accepts input on seral which will be sent out on radio network. * * The GW code is designed for Arduino Nano 328p / 16MHz * * Wire connections (OPTIONAL): - * - Inclusion button should be connected between digital pin 3 and GND + * - Inclusion button should be connected between digital pin 3 and GND * - RX/TX/ERR leds need to be connected between +5V (anode) and digital pin 6/5/4 with resistor 270-330R in a series * * LEDs (OPTIONAL): - * - To use the feature, uncomment MY_LEDS_BLINKING_FEATURE in MyConfig.h + * - To use the feature, uncomment any of the MY_DEFAULT_xx_LED_PINs * - RX (green) - blink fast on radio message recieved. In inclusion mode will blink fast only on presentation recieved * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly - * - ERR (red) - fast blink on error during transmission error or recieve crc error - * + * - ERR (red) - fast blink on error during transmission error or recieve crc error + * */ // Enable debug prints to serial monitor -#define MY_DEBUG +#define MY_DEBUG // Enable and select radio type attached @@ -45,7 +45,7 @@ //#define MY_RADIO_RFM69 // Set LOW transmit power level as default, if you have an amplified NRF-module and -// power your radio separately with a good regulator you can turn up PA level. +// power your radio separately with a good regulator you can turn up PA level. #define MY_RF24_PA_LEVEL RF24_PA_LOW // Enable serial gateway @@ -56,14 +56,6 @@ #define MY_BAUD_RATE 38400 #endif -// Flash leds on rx/tx/err -#define MY_LEDS_BLINKING_FEATURE -// Set blinking period -#define MY_DEFAULT_LED_BLINK_PERIOD 300 - -// Inverses the behavior of leds -//#define MY_WITH_LEDS_BLINKING_INVERSE - // Enable inclusion mode #define MY_INCLUSION_MODE_FEATURE // Enable Inclusion mode button on gateway @@ -73,30 +65,32 @@ //#define MY_INCLUSION_BUTTON_EXTERNAL_PULLUP // Set inclusion mode duration (in seconds) -#define MY_INCLUSION_MODE_DURATION 60 +#define MY_INCLUSION_MODE_DURATION 60 // Digital pin used for inclusion mode button -//#define MY_INCLUSION_MODE_BUTTON_PIN 3 +//#define MY_INCLUSION_MODE_BUTTON_PIN 3 +// Set blinking period +#define MY_DEFAULT_LED_BLINK_PERIOD 300 + +// Inverses the behavior of leds +//#define MY_WITH_LEDS_BLINKING_INVERSE + +// Flash leds on rx/tx/err // Uncomment to override default HW configurations //#define MY_DEFAULT_ERR_LED_PIN 4 // Error led pin //#define MY_DEFAULT_RX_LED_PIN 6 // Receive led pin //#define MY_DEFAULT_TX_LED_PIN 5 // the PCB, on board LED -#include +#include -void setup() { +void setup() { // Setup locally attached sensors } void presentation() { - // Present locally attached sensors + // Present locally attached sensors } -void loop() { - // Send locally attached sensor data here +void loop() { + // Send locally attached sensor data here } - - - - - diff --git a/examples/GatewaySerialRS485/GatewaySerialRS485.ino b/examples/GatewaySerialRS485/GatewaySerialRS485.ino index aabd1bc..03c8996 100644 --- a/examples/GatewaySerialRS485/GatewaySerialRS485.ino +++ b/examples/GatewaySerialRS485/GatewaySerialRS485.ino @@ -19,23 +19,22 @@ ******************************* * * DESCRIPTION - * The RS485 Gateway prints data received from sensors on the serial link. + * The RS485 Gateway prints data received from sensors on the serial link. * The gateway accepts input on seral which will be sent out on * the RS485 link. * * Wire connections (OPTIONAL): - * - Inclusion button should be connected between digital pin 3 and GND + * - Inclusion button should be connected between digital pin 3 and GND * - RX/TX/ERR leds need to be connected between +5V (anode) and digital pin 6/5/4 with resistor 270-330R in a series * * LEDs (OPTIONAL): - * - To use the feature, uncomment MY_LEDS_BLINKING_FEATURE in MyConfig.h * - RX (green) - blink fast on radio message recieved. In inclusion mode will blink fast only on presentation recieved * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly - * - ERR (red) - fast blink on error during transmission error or recieve crc error - * - * The gateway uses AltSoftSerial to handle two serial links + * - ERR (red) - fast blink on error during transmission error or recieve crc error + * + * The gateway uses AltSoftSerial to handle two serial links * on one Arduino. Use the following pins for RS485 link - * + * * Board Transmit Receive PWM Unusable * ----- -------- ------- ------------ * Teensy 3.0 & 3.1 21 20 22 @@ -46,16 +45,16 @@ * Arduino Mega 46 48 44, 45 * Wiring-S 5 6 4 * Sanguino 13 14 12 - * + * */ // Enable debug prints to serial monitor -#define MY_DEBUG +#define MY_DEBUG // Enable RS485 transport layer #define MY_RS485 -// Define this to enables DE-pin management on defined pin +// Define this to enables DE-pin management on defined pin #define MY_RS485_DE_PIN 2 // Set RS485 baud rate to use @@ -64,39 +63,34 @@ // Enable serial gateway #define MY_GATEWAY_SERIAL -// Flash leds on rx/tx/err -#define MY_LEDS_BLINKING_FEATURE -// Set blinking period -#define MY_DEFAULT_LED_BLINK_PERIOD 300 // Enable inclusion mode #define MY_INCLUSION_MODE_FEATURE // Enable Inclusion mode button on gateway #define MY_INCLUSION_BUTTON_FEATURE // Set inclusion mode duration (in seconds) -#define MY_INCLUSION_MODE_DURATION 60 +#define MY_INCLUSION_MODE_DURATION 60 // Digital pin used for inclusion mode button -#define MY_INCLUSION_MODE_BUTTON_PIN 3 +#define MY_INCLUSION_MODE_BUTTON_PIN 3 +// Set blinking period +#define MY_DEFAULT_LED_BLINK_PERIOD 300 + +// Flash leds on rx/tx/err #define MY_DEFAULT_ERR_LED_PIN 4 // Error led pin #define MY_DEFAULT_RX_LED_PIN 5 // Receive led pin #define MY_DEFAULT_TX_LED_PIN 6 // the PCB, on board LED -#include +#include -void setup() { +void setup() { // Setup locally attached sensors } void presentation() { - // Present locally attached sensors + // Present locally attached sensors } -void loop() { - // Send locally attached sensor data here +void loop() { + // Send locally attached sensor data here } - - - - - diff --git a/examples/GatewayW5100/GatewayW5100.ino b/examples/GatewayW5100/GatewayW5100.ino index 2074842..0339c52 100644 --- a/examples/GatewayW5100/GatewayW5100.ino +++ b/examples/GatewayW5100/GatewayW5100.ino @@ -42,68 +42,67 @@ */ // Enable debug prints to serial monitor -#define MY_DEBUG +#define MY_DEBUG // Enable and select radio type attached #define MY_RADIO_NRF24 //#define MY_RADIO_RFM69 -// Enable gateway ethernet module type +// Enable gateway ethernet module type #define MY_GATEWAY_W5100 // W5100 Ethernet module SPI enable (optional if using a shield/module that manages SPI_EN signal) -//#define MY_W5100_SPI_EN 4 +//#define MY_W5100_SPI_EN 4 // Enable Soft SPI for NRF radio (note different radio wiring is required) -// The W5100 ethernet module seems to have a hard time co-operate with +// The W5100 ethernet module seems to have a hard time co-operate with // radio on the same spi bus. #if !defined(MY_W5100_SPI_EN) && !defined(ARDUINO_ARCH_SAMD) #define MY_SOFTSPI #define MY_SOFT_SPI_SCK_PIN 14 #define MY_SOFT_SPI_MISO_PIN 16 #define MY_SOFT_SPI_MOSI_PIN 15 -#endif +#endif // When W5100 is connected we have to move CE/CSN pins for NRF radio -#ifndef MY_RF24_CE_PIN +#ifndef MY_RF24_CE_PIN #define MY_RF24_CE_PIN 5 #endif -#ifndef MY_RF24_CS_PIN +#ifndef MY_RF24_CS_PIN #define MY_RF24_CS_PIN 6 #endif -// Enable to UDP +// Enable to UDP //#define MY_USE_UDP #define MY_IP_ADDRESS 192,168,178,66 // If this is disabled, DHCP is used to retrieve address // Renewal period if using DHCP //#define MY_IP_RENEWAL_INTERVAL 60000 // The port to keep open on node server mode / or port to contact in client mode -#define MY_PORT 5003 +#define MY_PORT 5003 + +// Controller ip address. Enables client mode (default is "server" mode). +// Also enable this if MY_USE_UDP is used and you want sensor data sent somewhere. +//#define MY_CONTROLLER_IP_ADDRESS 192, 168, 178, 254 -// Controller ip address. Enables client mode (default is "server" mode). -// Also enable this if MY_USE_UDP is used and you want sensor data sent somewhere. -//#define MY_CONTROLLER_IP_ADDRESS 192, 168, 178, 254 - // The MAC address can be anything you want but should be unique on your network. // Newer boards have a MAC address printed on the underside of the PCB, which you can (optionally) use. // Note that most of the Ardunio examples use "DEAD BEEF FEED" for the MAC address. #define MY_MAC_ADDRESS 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED -// Flash leds on rx/tx/err -#define MY_LEDS_BLINKING_FEATURE -// Set blinking period -#define MY_DEFAULT_LED_BLINK_PERIOD 300 - // Enable inclusion mode #define MY_INCLUSION_MODE_FEATURE // Enable Inclusion mode button on gateway //#define MY_INCLUSION_BUTTON_FEATURE // Set inclusion mode duration (in seconds) -#define MY_INCLUSION_MODE_DURATION 60 +#define MY_INCLUSION_MODE_DURATION 60 // Digital pin used for inclusion mode button -//#define MY_INCLUSION_MODE_BUTTON_PIN 3 +//#define MY_INCLUSION_MODE_BUTTON_PIN 3 +// Set blinking period +#define MY_DEFAULT_LED_BLINK_PERIOD 300 + +// Flash leds on rx/tx/err // Uncomment to override default HW configurations //#define MY_DEFAULT_ERR_LED_PIN 7 // Error led pin //#define MY_DEFAULT_RX_LED_PIN 8 // Receive led pin @@ -123,4 +122,3 @@ void setup() void loop() { } - diff --git a/examples/GatewayW5100MQTTClient/GatewayW5100MQTTClient.ino b/examples/GatewayW5100MQTTClient/GatewayW5100MQTTClient.ino index bbcaa96..59dad45 100644 --- a/examples/GatewayW5100MQTTClient/GatewayW5100MQTTClient.ino +++ b/examples/GatewayW5100MQTTClient/GatewayW5100MQTTClient.ino @@ -20,7 +20,7 @@ * * REVISION HISTORY * Version 1.0 - Henrik Ekblad - * + * * DESCRIPTION * The W5100 MQTT gateway sends radio network (or locally attached sensors) data to your MQTT broker. * The node also listens to MY_MQTT_TOPIC_PREFIX and sends out those messages to the radio network @@ -29,17 +29,17 @@ * - To use the feature, uncomment WITH_LEDS_BLINKING in MyConfig.h * - RX (green) - blink fast on radio message recieved. In inclusion mode will blink fast only on presentation recieved * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly - * - ERR (red) - fast blink on error during transmission error or recieve crc error - * + * - ERR (red) - fast blink on error during transmission error or recieve crc error + * * See http://www.mysensors.org/build/esp8266_gateway for wiring instructions. * nRF24L01+ ESP8266 * VCC VCC - * CE GPIO4 + * CE GPIO4 * CSN/CS GPIO15 * SCK GPIO14 * MISO GPIO12 * MOSI GPIO13 - * + * * Not all ESP8266 modules have all pins available on their external interface. * This code has been tested on an ESP-12 module. * The ESP8266 requires a certain pin configuration to download code, and another one to run code: @@ -48,10 +48,10 @@ * - Connect CH_PD via 10K resistor to VCC * - Connect GPIO2 via 10K resistor to VCC * - Connect GPIO0 via 10K resistor to VCC, and via switch to GND ('bootload switch') - * + * * Inclusion mode button: * - Connect GPIO5 via switch to GND ('inclusion switch') - * + * * Hardware SHA204 signing is currently not supported! * * Make sure to fill in your ssid and WiFi password below for ssid & pass. @@ -59,7 +59,7 @@ // Enable debug prints to serial monitor -#define MY_DEBUG +#define MY_DEBUG // Enables and select radio type (if attached) #define MY_RADIO_NRF24 @@ -75,23 +75,23 @@ #define MY_MQTT_CLIENT_ID "mysensors-1" // W5100 Ethernet module SPI enable (optional if using a shield/module that manages SPI_EN signal) -//#define MY_W5100_SPI_EN 4 +//#define MY_W5100_SPI_EN 4 // Enable Soft SPI for NRF radio (note different radio wiring is required) -// The W5100 ethernet module seems to have a hard time co-operate with +// The W5100 ethernet module seems to have a hard time co-operate with // radio on the same spi bus. #if !defined(MY_W5100_SPI_EN) && !defined(ARDUINO_ARCH_SAMD) #define MY_SOFTSPI #define MY_SOFT_SPI_SCK_PIN 14 #define MY_SOFT_SPI_MISO_PIN 16 #define MY_SOFT_SPI_MOSI_PIN 15 -#endif +#endif // When W5100 is connected we have to move CE/CSN pins for NRF radio -#ifndef MY_RF24_CE_PIN +#ifndef MY_RF24_CE_PIN #define MY_RF24_CE_PIN 5 #endif -#ifndef MY_RF24_CS_PIN +#ifndef MY_RF24_CS_PIN #define MY_RF24_CS_PIN 6 #endif @@ -106,28 +106,27 @@ #define MY_IP_GATEWAY_ADDRESS 192,168,178,1 #define MY_IP_SUBNET_ADDRESS 255,255,255,0 -// MQTT broker ip address or url. Define one or the other. +// MQTT broker ip address or url. Define one or the other. //#define MY_CONTROLLER_URL_ADDRESS "m20.cloudmqtt.com" #define MY_CONTROLLER_IP_ADDRESS 192, 168, 178, 68 -// The MQTT broker port to to open -#define MY_PORT 1883 +// The MQTT broker port to to open +#define MY_PORT 1883 /* -// Flash leds on rx/tx/err -#define MY_LEDS_BLINKING_FEATURE -// Set blinking period -#define MY_DEFAULT_LED_BLINK_PERIOD 300 - // Enable inclusion mode #define MY_INCLUSION_MODE_FEATURE // Enable Inclusion mode button on gateway //#define MY_INCLUSION_BUTTON_FEATURE // Set inclusion mode duration (in seconds) -#define MY_INCLUSION_MODE_DURATION 60 +#define MY_INCLUSION_MODE_DURATION 60 // Digital pin used for inclusion mode button -//#define MY_INCLUSION_MODE_BUTTON_PIN 3 +//#define MY_INCLUSION_MODE_BUTTON_PIN 3 +// Set blinking period +#define MY_DEFAULT_LED_BLINK_PERIOD 300 + +// Flash leds on rx/tx/err // Uncomment to override default HW configurations //#define MY_DEFAULT_ERR_LED_PIN 16 // Error led pin //#define MY_DEFAULT_RX_LED_PIN 16 // Receive led pin @@ -137,17 +136,14 @@ #include #include -void setup() { +void setup() { } void presentation() { - // Present locally attached sensors here + // Present locally attached sensors here } void loop() { // Send locally attached sensors data here } - - - diff --git a/examples/SensebenderGatewaySerial/SensebenderGatewaySerial.ino b/examples/SensebenderGatewaySerial/SensebenderGatewaySerial.ino index f8443da..e0d6510 100644 --- a/examples/SensebenderGatewaySerial/SensebenderGatewaySerial.ino +++ b/examples/SensebenderGatewaySerial/SensebenderGatewaySerial.ino @@ -19,33 +19,33 @@ ******************************* * * DESCRIPTION - * The ArduinoGateway prints data received from sensors on the serial link. + * The ArduinoGateway prints data received from sensors on the serial link. * The gateway accepts input on seral which will be sent out on radio network. * * This GW code is designed for Sensebender GateWay / Arduino Zero * * Wire connections (OPTIONAL): - * - Inclusion button should be connected between digital pin 3 and GND + * - Inclusion button should be connected between digital pin 3 and GND * - RX/TX/ERR leds need to be connected between +5V (anode) and digital pin 6/5/4 with resistor 270-330R in a series * * LEDs (OPTIONAL): - * - To use the feature, uncomment MY_LEDS_BLINKING_FEATURE in MyConfig.h + * - To use the feature, uncomment any of the MY_DEFAULT_xx_LED_PINs * - RX (green) - blink fast on radio message recieved. In inclusion mode will blink fast only on presentation recieved * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly - * - ERR (red) - fast blink on error during transmission error or recieve crc error - * + * - ERR (red) - fast blink on error during transmission error or recieve crc error + * */ #define SKETCH_VERSION "0.1" // Enable debug prints to serial monitor -#define MY_DEBUG +#define MY_DEBUG // Enable and select radio type attached #define MY_RADIO_NRF24 //#define MY_RADIO_RFM69 // Set LOW transmit power level as default, if you have an amplified NRF-module and -// power your radio separately with a good regulator you can turn up PA level. +// power your radio separately with a good regulator you can turn up PA level. #define MY_RF24_PA_LEVEL RF24_PA_HIGH // Enable serial gateway @@ -56,14 +56,6 @@ #define MY_BAUD_RATE 38400 #endif -// Flash leds on rx/tx/err -#define MY_LEDS_BLINKING_FEATURE -// Set blinking period -#define MY_DEFAULT_LED_BLINK_PERIOD 300 - -// Inverses the behavior of leds -//#define MY_WITH_LEDS_BLINKING_INVERSE - // Enable inclusion mode #define MY_INCLUSION_MODE_FEATURE // Enable Inclusion mode button on gateway @@ -73,10 +65,17 @@ //#define MY_INCLUSION_BUTTON_EXTERNAL_PULLUP // Set inclusion mode duration (in seconds) -#define MY_INCLUSION_MODE_DURATION 60 +#define MY_INCLUSION_MODE_DURATION 60 // Digital pin used for inclusion mode button -//#define MY_INCLUSION_MODE_BUTTON_PIN 3 +//#define MY_INCLUSION_MODE_BUTTON_PIN 3 +// Set blinking period +#define MY_DEFAULT_LED_BLINK_PERIOD 300 + +// Inverses the behavior of leds +//#define MY_WITH_LEDS_BLINKING_INVERSE + +// Flash leds on rx/tx/err // Uncomment to override default HW configurations //#define MY_DEFAULT_ERR_LED_PIN 4 // Error led pin //#define MY_DEFAULT_RX_LED_PIN 6 // Receive led pin @@ -93,16 +92,16 @@ Sd2Card card; static uint8_t num_of_leds = 5; static uint8_t leds[] = {LED_BLUE, LED_RED, LED_GREEN, LED_YELLOW, LED_ORANGE}; -void setup() { +void setup() { // Setup locally attached sensors } void presentation() { - // Present locally attached sensors + // Present locally attached sensors } -void loop() { - // Send locally attached sensor data here +void loop() { + // Send locally attached sensor data here } @@ -142,7 +141,7 @@ void preHwInit() { digitalWrite(LED_YELLOW, HIGH); tests++; } - + if (testEEProm()) { digitalWrite(LED_ORANGE, HIGH); tests++; @@ -155,7 +154,7 @@ void preHwInit() { digitalWrite(leds[i], LOW); } } - } + } else { while (1) { digitalWrite(LED_RED, HIGH); @@ -164,7 +163,7 @@ void preHwInit() { delay(200); } } - + } bool testSha204(){ @@ -243,7 +242,7 @@ bool testEEProm() { delay(500); eeprom_d2 = i2c_eeprom_read_byte(EEPROM_VERIFICATION_ADDRESS); if (eeprom_d1 == eeprom_d2) { - SerialUSB.println("PASSED"); + SerialUSB.println("PASSED"); i2c_eeprom_write_byte(EEPROM_VERIFICATION_ADDRESS, ~eeprom_d1); return true; } diff --git a/keywords.txt b/keywords.txt index 77a2540..b84d949 100644 --- a/keywords.txt +++ b/keywords.txt @@ -52,7 +52,6 @@ MY_PARENT_NODE_IS_STATIC LITERAL1 MY_OTA_FIRMWARE_FEATURE LITERAL1 MY_OTA_FLASH_SS LITERAL1 MY_OTA_FLASH_JDECID LITERAL1 -MY_LEDS_BLINKING_FEATURE LITERAL1 MY_WITH_LEDS_BLINKING_INVERSE LITERAL1 MY_DEFAULT_LED_BLINK_PERIOD LITERAL1 MY_WITH_LEDS_BLINKING_INVERSE LITERAL1 @@ -129,4 +128,4 @@ MY_NODE_UNLOCK_PIN LITERAL1 MY_NODE_LOCK_COUNTER_MAX LITERAL1 MY_SPIFLASH_SST25TYPE LITERAL1 MY_CRITICAL_SECTION LITERAL1 -MY_RX_MESSAGE_BUFFER_SIZE LITERAL1 \ No newline at end of file +MY_RX_MESSAGE_BUFFER_SIZE LITERAL1