Почему у меня контроллер засыпает? через 1-2 минуты

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем 007nikss007, 18 авг 2020.

  1. 007nikss007

    007nikss007 Нуб

    • 5.10. Запрещено публиковать исходный код без BB-кода — CODE.
    Код (Javascript):
    var SSID = '111';
    var PASSWORD = '111';
    var NAME = '111';
    var temp = require('@amperka/thermometer').connect(A2);
    var dweet = require('@amperka/dweetio').connect(NAME);
    function run() {
      setInterval(function() {
        dweet.send({
          temperature: Math.floor(temp.read('C'))
        });
      }, 1000);
    }
    var wifi = require('@amperka/wifi').setup(function(err) {
      wifi.connect(SSID, PASSWORD, function(err) {
        print('Click this link', dweet.follow());
        run();
      });
    });
     
    Последнее редактирование: 18 авг 2020
  2. NikitOS

    NikitOS Король шутов Администратор

    Вставьте код по правилам форума.
     
  3. sys

    sys Злобный Буратино Модератор

    Какой контроллер?
    Какая версия прошивки?
    Что выдает консоль?
     
    NikitOS нравится это.
  4. 007nikss007

    007nikss007 Нуб

    ISKRA JS, 2v01.49 просто просто отключается вай фай и перестаёт передавать, вот такая ошибка в конце.


    Код (Javascript):
    Uncaught Error: 0,CLOSED already registered
    at line 1 col 44
    if(h[a])throw Error(a+" already registered");h[a]=b
                                               ^
    in function "registerLine" called from line 1 col 137
    ...",CLOSED"),socks[e]=void 0}):(socks[e]=void 0,i.emit("err","...
                                  ^
    in function "
    c" called from line 1 col 25
    g=void 0;var b;c&&(b=c(a))?(g=e,c=b):clearTimeout(d);void 0=...
                            ^
    in function "
    g" called from line 2 col 4
    g(f)}b=b.substr(a+1);if(p&&d)return q("
    ");"\n"==b[0]&&(b=b.s...
       ^
    in function called from system
    Uncaught Error: >  already registered
    at line 1 col 44
    if(e[a])throw Error(a+"
    already registered");e[a]=b
                                               ^
    in function "
    register" called from line 1 col 81
    ...ister("
    > "),at.write(n),""}),e):i==="Recv "+n.length+" bytes...
                                  ^
    in function "c" called from line 1 col 25
    g=void 0;var b;c&&(b=c(a))?(g=e,c=b):clearTimeout(d);void 0=...
                            ^
    in function "g" called from line 2 col 4
    g(f)}b=b.substr(a+1);if(p&&d)return q("");"\n"==b[0]&&(b=b.s...
       ^
    in function called from system
    Uncaught Error: 0,CLOSED already registered
    at line 1 col 44
    if(h[a])throw Error(a+" already registered");h[a]=b
                                               ^
    in function "registerLine" called from line 1 col 137
    ...",CLOSED"),socks[e]=void 0}):(socks[e]=void 0,i.emit("err","...
                                  ^
    in function "
    c" called from line 1 col 25
    g=void 0;var b;c&&(b=c(a))?(g=e,c=b):clearTimeout(d);void 0=...
                            ^
    in function "
    g" called from line 2 col 4
    g(f)}b=b.substr(a+1);if(p&&d)return q("
    ");"\n"==b[0]&&(b=b.s...
       ^
    in function called from system
    >
     
  5. ZAZ-965

    ZAZ-965 Гуру

    @007nikss007, похоже у вас та же проблема, как здесь. Проверяйте комп на малварь.
     
    Последнее редактирование: 21 авг 2020
  6. 007nikss007

    007nikss007 Нуб

    Всё чисто, можно ответ узнать по проводу вай фай ESP-12F он может отключатся в спящий режим? Как это устранить?
     
  7. 007nikss007

    007nikss007 Нуб

    Вырубается каждые 10-15 минут, может есть команда чтобы это всё в цикле перезагружала раз в это время?
     
  8. ZAZ-965

    ZAZ-965 Гуру

    @007nikss007, у вас Native IDE или приложение к Хрому? Попробуйте открыть ссылки (http и https)
    http://js.amperka.ru/modules/@amperka/thermometer.min.js https://js.amperka.ru/modules/@amperka/thermometer.min.js
    http://js.amperka.ru/modules/@amperka/dweetio.min.js https://js.amperka.ru/modules/@amperka/dweetio.min.js
    http://js.amperka.ru/modules/@amperka/wifi.min.js https://js.amperka.ru/modules/@amperka/wifi.min.js
    и сравните их с github Ампреки
    У вас Espruino выполняет код, который больше похож на браузерный JavaScript
     
  9. sys

    sys Злобный Буратино Модератор

    попробуйте так и скажите как ведет себя светодиод LED1:
    Код (Javascript):
    var SSID = '111';
    var PASSWORD = '111';
    var NAME = '111';
    var temp = require('@amperka/thermometer').connect(A2);
    var dweet = require('@amperka/dweetio').connect(NAME);
    var m = false;
    function run() {
      setInterval(function() {
        dweet.send({
          temperature: Math.floor(temp.read('C'))
        });
        m = !m;
        LED1.write(m);
      }, 1000);
    }
    var wifi = require('@amperka/wifi').setup(function(err) {
      wifi.connect(SSID, PASSWORD, function(err) {
        print('Click this link', dweet.follow());
        run();
      });
    });
    к чему это я? к тому что с интервалами надо быть осторожным, чтоб не наплодить их целую пачку. Поэтому везде, где есть скользкие моменты стараюсь подчищать старые интервалы перед вызовом нового замещающего...
    Честно не уверен в поведении wifi.connect (я им не особо пользуюсь), но если с кодом выше ваш светодиод начинает мигать чаще 1сек, то скорее всего идет многоразовое выполнение run(), а следовательно и запуск новых интервалов. Даже если я не прав и разрывы-восстановления wifi-соединения не влияют на обратную функцию wifi.connect, то все равно, подчищать интервалы будет хорошим тоном на будущее, например так:
    Код (Javascript):
    var SSID = '111';
    var PASSWORD = '111';
    var NAME = '111';
    var temp = require('@amperka/thermometer').connect(A2);
    var dweet = require('@amperka/dweetio').connect(NAME);
    var id = 0;
    function run() {
      id = setInterval(function() {
      dweet.send({
      temperature: Math.floor(temp.read('C'))
      });
      }, 1000);
    }
    var wifi = require('@amperka/wifi').setup(function(err) {
      wifi.connect(SSID, PASSWORD, function(err) {
      print('Click this link', dweet.follow());
      clearInterval(id);
      run();
      });
    });
    ну и конечно же держите нас в курсе, желательно подробно ;)
     
    Последнее редактирование: 28 авг 2020