Issue with Led things on esp

Hi ,
I am using esp8266 to run my program led example. I extended it for my needs. When I am trying to add more than about 8 led things or when im clicking on thing board, device (esp) reboots.
Should I do it in a different way than shown in the program (led_example) when I want to add more devices (led)?

program

#include <Arduino.h>
#include “Thing.h”
#include “WebThingAdapter.h”

//TODO: Hard-code your WiFi credentials here (and keep it private)
const char* ssid = “";
const char
password = "
*”;

WebThingAdapter* adapter;

const char* ledTypes[] = {“OnOffSwitch”, “led”, nullptr};
ThingDevice led2a(“led2a”, “oświetlenie sień”, ledTypes);
ThingDevice led2b(“led2b”, “oświetlenie komunikacja parter”, ledTypes);
ThingDevice led2c(“led2c”, “oświetlenie łazienka ogólne parter”, ledTypes);
ThingDevice led2d(“led2d”, “oświetlenie łazienka nad lustrem parter”, ledTypes);
ThingDevice led2e(“led2e”, “oświetlenie łazienka pod prysznicem parter”, ledTypes);
ThingDevice led2f(“led2f”, “oświetlenie kuchnia pod szafkami”, ledTypes);
ThingDevice led2g(“led2g”, “oświetlenie kuchnia sufitowe”, ledTypes);
ThingDevice led2h(“led2h”, “oświetlenie jadalnia”, ledTypes);
ThingDevice led2i(“led2i”, “oświetlenie salon ogólne”, ledTypes);
ThingDevice led2j(“led2j”, “oświetlenie salon led sufitowy”, ledTypes);
ThingDevice led2k(“led2k”, “oświetlenie schodów niskie”, ledTypes);
ThingDevice led2l(“led2l”, “oświetlenie schodów wysokie”, ledTypes);

ThingDevice led3a(“led3a”, “oświetlenie komunikacja sufitowe piętro”, ledTypes);
ThingDevice led3b(“led3b”, “oświetlenie komunikacja pod wyłazem piętro”, ledTypes);
ThingDevice led3c(“led3c”, “oświetlenie pokój piętro”, ledTypes);
ThingDevice led3d(“led3d”, “oświetlenie pokój led piętro”, ledTypes);
ThingDevice led3e(“led3e”, “oświetlenie sypialnia ogólne piętro”, ledTypes);
ThingDevice led3f(“led3f”, “oświetlenie sypialnia led piętro”, ledTypes);
ThingDevice led3g(“led3g”, “oświetlenie sypialnia lampka nocna 2 Kasi piętro”, ledTypes);
ThingDevice led3h(“led3h”, “oświetlenie sypialnia lampka nocna 1 Kamil piętro”, ledTypes);
ThingDevice led3i(“led3i”, “oświetlenie pralnia piętro”, ledTypes);
ThingDevice led3j(“led3j”, “oświetlenie łazienka ogólne piętro”, ledTypes);
ThingDevice led3k(“led3k”, “oświetlenie łazienka led piętro”, ledTypes);
ThingDevice led3l(“led3l”, “oświetlenie łazienka sufitowe piętro”, ledTypes);
ThingDevice led3m(“led3m”, “oświetlenie łazienka nad lustrem piętro”, ledTypes);

ThingProperty led2aOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led2bOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led2cOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led2dOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led2eOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led2fOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led2gOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led2hOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led2iOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led2jOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led2kOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led2lOn(“on”, “”, BOOLEAN, “OnOffProperty”);

ThingProperty led3aOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led3bOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led3cOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led3dOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led3eOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led3fOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led3gOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led3hOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led3iOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led3jOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led3kOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led3lOn(“on”, “”, BOOLEAN, “OnOffProperty”);
ThingProperty led3mOn(“on”, “”, BOOLEAN, “OnOffProperty”);

bool lastOn1 = false;
bool lastOn2 = false;
bool lastOn3 = false;
bool lastOn4 = false;
bool lastOn5 = false;
bool lastOn6 = false;
bool lastOn7 = false;
bool lastOn8 = false;
bool lastOn9 = false;
bool lastOn10 = false;
bool lastOn11 = false;
bool lastOn12 = false;
bool lastOn13 = false;
bool lastOn14 = false;
bool lastOn15 = false;
bool lastOn16 = false;
bool lastOn17 = false;
bool lastOn18 = false;
bool lastOn19 = false;
bool lastOn20 = false;
bool lastOn21 = false;
bool lastOn22 = false;
bool lastOn23 = false;
bool lastOn24 = false;
bool lastOn25 = false;
bool lastOn26 = false;

void setup(void){

Serial.begin(115200);
Serial.println("");
Serial.print("Connecting to \"");
Serial.print(ssid);
Serial.println("\"");
#if defined(ESP8266) || defined(ESP32)
WiFi.mode(WIFI_STA);
#endif
WiFi.begin(ssid, password);
Serial.println("");

// Wait for connection
bool blink = true;
while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
 //   digitalWrite(ledPin1, blink ? LOW : HIGH); // active low led
    blink = !blink;
}

Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
adapter = new WebThingAdapter("w25", WiFi.localIP());

led2a.addProperty(&led2aOn);
led2b.addProperty(&led2bOn);
led2c.addProperty(&led2cOn);
led2d.addProperty(&led2dOn);
led2e.addProperty(&led2eOn);
led2f.addProperty(&led2fOn);
led2g.addProperty(&led2gOn);
led2h.addProperty(&led2hOn);
led2i.addProperty(&led2iOn);
led2j.addProperty(&led2jOn);
led2k.addProperty(&led2kOn);
led2l.addProperty(&led2lOn);

led3a.addProperty(&led3aOn);
led3b.addProperty(&led3bOn);
led3c.addProperty(&led3cOn);
led3d.addProperty(&led3dOn);
led3e.addProperty(&led3eOn);
led3f.addProperty(&led3fOn);
led3g.addProperty(&led3gOn);
led3h.addProperty(&led3hOn);
led3i.addProperty(&led3iOn);
led3j.addProperty(&led3jOn);
led3k.addProperty(&led3kOn);
led3l.addProperty(&led3lOn);
led3m.addProperty(&led3mOn);

adapter->addDevice(&led2a);
adapter->addDevice(&led2b);
adapter->addDevice(&led2c);
adapter->addDevice(&led2d);
adapter->addDevice(&led2e);
adapter->addDevice(&led2f);
adapter->addDevice(&led2g);
adapter->addDevice(&led2h);
adapter->addDevice(&led2i);
adapter->addDevice(&led2j);
adapter->addDevice(&led2k);
adapter->addDevice(&led2l);

adapter->addDevice(&led3a);
adapter->addDevice(&led3b);
adapter->addDevice(&led3c);
adapter->addDevice(&led3d);
adapter->addDevice(&led3e);
adapter->addDevice(&led3f);
adapter->addDevice(&led3g);
adapter->addDevice(&led3h);
adapter->addDevice(&led3i);
adapter->addDevice(&led3j);
adapter->addDevice(&led3k);
adapter->addDevice(&led3l);
adapter->addDevice(&led3m);

adapter->begin();
Serial.println("HTTP server started");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.print("/things/");

}

void loop(void){
adapter->update();
bool on1 = led2aOn.getValue().boolean;
bool on2 = led2bOn.getValue().boolean;
bool on3 = led2cOn.getValue().boolean;
bool on4 = led2dOn.getValue().boolean;
bool on5 = led2eOn.getValue().boolean;
bool on6 = led2fOn.getValue().boolean;
bool on7 = led2gOn.getValue().boolean;
bool on8 = led2hOn.getValue().boolean;
bool on9 = led2iOn.getValue().boolean;
bool on10 = led2jOn.getValue().boolean;
bool on11 = led2kOn.getValue().boolean;
bool on12 = led2lOn.getValue().boolean;

bool on13 = led3aOn.getValue().boolean;
bool on14 = led3bOn.getValue().boolean;
bool on15 = led3cOn.getValue().boolean;
bool on16 = led3dOn.getValue().boolean;
bool on17 = led3eOn.getValue().boolean;
bool on18 = led3fOn.getValue().boolean;
bool on19 = led3gOn.getValue().boolean;
bool on20 = led3hOn.getValue().boolean;
bool on21 = led3iOn.getValue().boolean;
bool on22 = led3jOn.getValue().boolean;
bool on23 = led3kOn.getValue().boolean;
bool on24 = led3lOn.getValue().boolean;
bool on25 = led3mOn.getValue().boolean;

if (on1 != lastOn1 || on2 != lastOn2) {
    Serial.print(led2a.id);
    Serial.print(": ");
    Serial.println(on1);
    Serial.print(led2b.id);
    Serial.print(": ");
    Serial.println(on2);
}
  lastOn1 = on1;
  lastOn2 = on2;
  lastOn3 = on3;
  lastOn4 = on4;
  lastOn5 = on5;
  lastOn6 = on6;
  lastOn7 = on7;
  lastOn8 = on8;
  lastOn9 = on9;
  lastOn10 = on10;
  lastOn11 = on11;
  lastOn12 = on12;
  lastOn13 = on13;
  lastOn14 = on14;
  lastOn15 = on15;
  lastOn16 = on16;
  lastOn17 = on17;
  lastOn18 = on18;
  lastOn19 = on19;
  lastOn20 = on20;
  lastOn21 = on21;
  lastOn22 = on22;
  lastOn23 = on23;
  lastOn24 = on24;
  lastOn25 = on25;

}

screens


You’ll probably want to increase the size of your JSON buffers, which you can do with 0.11.X versions of the library. See here for instructions.

1 Like