• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

А можно несколько примеров?

lsm

Разработчик Smart.js
Команда форума
После релиза https, возможно будет использовать подключение через wss в WebSocket?
Да, конечно.
TLS реализуется на уровне Мангуста, сетевого движка Smart.js. Это значит любое TCP соединение - HTTP, MQTT, WebSocket, etc, может быть завернуто в TLS.
 

Igor Djugostran

New member
При компиляции выдаёт несколько ошибок
Код:
../../common/platforms/esp8266/config.c:136:19: error: 'const struct sys_config_wifi_ap' has no member named 'enable'
   if (cfg->wifi.ap.enable && cfg->wifi.sta.enable) {
                   ^
../../common/platforms/esp8266/config.c:138:26: error: 'const struct sys_config_wifi_ap' has no member named 'enable'
   } else if (cfg->wifi.ap.enable) {
                          ^
../../common/platforms/esp8266/config.c:151:19: error: 'const struct sys_config_wifi_ap' has no member named 'enable'
   if (cfg->wifi.ap.enable && !do_ap(cfg)) {
                   ^
make: *** [/cesanta/smart.js/platforms/esp8266/build/config.o] Error 1
make: Leaving directory `/cesanta/smart.js/platforms/esp8266'
make: *** [all] Error 2
 

Igor Djugostran

New member
Обновил, скомпилировалось, но после прошивки, esp не запустилась. Посмотрел в make файле там указан FLASH_SIZE ?= 1M FS_SIZE ?= 64K
Нашёл у себя старую версию файла, поменял на старые значения. После компиляции написало
Code size: 425K of 424K, -2K (0%) is available
Но esp заработало. Не знаю на сколько стабильный билд получился.
 

lsm

Разработчик Smart.js
Команда форума
Но esp заработало. Не знаю на сколько стабильный билд получился.
Нестабильный билд получился :)
Файловая система затерла кусок прошивки.
В последних версиях размер прошивки распух и вылез за пределы 512k, то есть поддержка ESP-01 сломалась. То есть на данный момент прошивка работает только для железок с флешом > 512k.
 

Victor

Administrator
Команда форума

lsm

Разработчик Smart.js
Команда форума
Вот такое форматирование файловой системы обязательно поможет :)
Да, неплохое решение :)

@Jazz777 , по триггеру режима установки: мы помучались с RTC, и пока решили сделать триггер на GPIO - уже реализовали. Сейчас подчищаем несколько вещей, типа поддержки SSL, глюки с DAV - после чего выложу обновление.
 

Jazz777

New member
мы помучались с RTC
Это да, задачка явно не тривиальная, ведь esp "не знает" сколько она была выключена, я так понимаю часов реального времени у нее нет и время начинается с нуля при включении. На вскидку можно записывать метки в первые секунды после старта, а во время следующего старта анализировать всех ли меток хватает. Если не всех, значит вырубили через такое-то время. Хотя, конечно, на первом этапе GPIO вполне подойдет.
Сейчас подчищаем несколько вещей, типа поддержки SSL, глюки с DAV - после чего выложу обновление.
Ура. Не хотел вас дергать спрашиванием, ну как там, не забыли ли про меня )) Очень жду. Я пока собрал некое подобие делителя напряжения для ADC и сообщение на сайте на почту об отсутствии сигнала с устройства. И запустил тестирование реалтайм. ADC, конечно, иначе как "шуткой инженеров" не назовешь. Всё работает на 3,3, а ADC меряет до 1. А любые делители во-первых дополнительно будут сажать батарейку, во-вторых значительно снижают точность измерения. Ну, что-то меряет. Сейчас продумываю методы калибровки. Результаты расскажу..
 

Jazz777

New member
Первые результаты выявляют зависание с перезагрузкой через 5-15 часов после запуска.Завис02.jpg Завис02_01.jpg
На всякий случай скидываю код:
JavaScript:
function report() {
  var i;
  var m_adc;
  var s_adc = 0;
  var f_adc;
  print('sending request...');
  GPIO.write(5, 1);
  for (i = 1; i <= 10; i++) {
  m_adc = ADC.read(0);
  s_adc = s_adc + m_adc;
//  print(i);
//  print(m_adc);
//  print(s_adc);
  }
  GPIO.write(5, 0);
  f_adc = Math.round(s_adc / 10);
  print(f_adc);
  Http.request({
    hostname: 'www.womencreative.ru',
    path: '/esp.php?n=' + GC.stat().sysfree  + '&adc=' + f_adc + '&mac=' + Sys.ro_vars.mac_address // Free RAM & ADC
  }, function(response) { print(response); }).end(/* no POST data */)
  .setTimeout(3000, function() {
    this.abort();   // Timeout request after 3 seconds
  });
  setTimeout(report, 60000);  // Report every 60 seconds
};

report();

Пока могу только собирать статистику. Отпишитесь, что думаете. Ну или могу просто дождаться новой прошивки, вдруг само вылечится.
 
Последнее редактирование модератором:
  • Like
Реакции: lsm

lsm

Разработчик Smart.js
Команда форума
@Jazz777 , спасибо,
Хмм, несколько часов работает.. а в логе что показывается по свободной памяти - особенно перед крешем - уменьшается память или нет? Какие там значения?
 

Jazz777

New member
Нет, даже наоборот немного вверх идет:
23.12.2015 10:52:35 Mem: 22672 mac: 5ecf7f0ac820 ADC: 1024
23.12.2015 10:53:35 Mem: 22672 mac: 5ecf7f0ac820 ADC: 1024
23.12.2015 10:54:35 Mem: 22664 mac: 5ecf7f0ac820 ADC: 1024
23.12.2015 10:55:35 Mem: 22672 mac: 5ecf7f0ac820 ADC: 1024
23.12.2015 10:56:35 Mem: 22672 mac: 5ecf7f0ac820 ADC: 1021
23.12.2015 10:57:35 Mem: 22664 mac: 5ecf7f0ac820 ADC: 1024
23.12.2015 10:58:35 Mem: 22672 mac: 5ecf7f0ac820 ADC: 1024
23.12.2015 10:59:35 Mem: 22672 mac: 5ecf7f0ac820 ADC: 1021
23.12.2015 11:00:35 Mem: 22664 mac: 5ecf7f0ac820 ADC: 1024
23.12.2015 11:01:36 Mem: 22672 mac: 5ecf7f0ac820 ADC: 1022
23.12.2015 11:02:36 Mem: 22672 mac: 5ecf7f0ac820 ADC: 1024
23.12.2015 11:03:36 Mem: 22664 mac: 5ecf7f0ac820 ADC: 1024
23.12.2015 11:04:36 Mem: 22672 mac: 5ecf7f0ac820 ADC: 1024
23.12.2015 11:05:36 Mem: 22672 mac: 5ecf7f0ac820 ADC: 1022
23.12.2015 11:06:36 Mem: 23120 mac: 5ecf7f0ac820 ADC: 1023

Сейчас вообще меньше двух часов проработал:
23.12.2015 14:08:31 Mem: 22544 mac: 5ecf7f0ac820 ADC: 1023
23.12.2015 14:09:31 Mem: 22544 mac: 5ecf7f0ac820 ADC: 1024
23.12.2015 14:10:31 Mem: 22576 mac: 5ecf7f0ac820 ADC: 1023
23.12.2015 14:11:31 Mem: 22544 mac: 5ecf7f0ac820 ADC: 1022
23.12.2015 14:12:31 Mem: 22552 mac: 5ecf7f0ac820 ADC: 1023
23.12.2015 14:13:31 Mem: 22568 mac: 5ecf7f0ac820 ADC: 1023
23.12.2015 14:14:31 Mem: 22544 mac: 5ecf7f0ac820 ADC: 1024
23.12.2015 14:15:31 Mem: 22544 mac: 5ecf7f0ac820 ADC: 1023
23.12.2015 14:16:32 Mem: 22576 mac: 5ecf7f0ac820 ADC: 1024
23.12.2015 14:17:32 Mem: 22544 mac: 5ecf7f0ac820 ADC: 1023
23.12.2015 14:18:32 Mem: 22552 mac: 5ecf7f0ac820 ADC: 1024
23.12.2015 14:19:32 Mem: 23016 mac: 5ecf7f0ac820 ADC: 1024

И, кстати, после такого ребута, он хоть приглашение выдает, но файлы не эвалит, приходится питание щелкать..
 
  • Like
Реакции: lsm

lsm

Разработчик Smart.js
Команда форума
Пробуйте новую прошивку (ссылки для mac и win):

https://backend.cesanta.com/devel/win_fw_20160104_224731.zip
https://backend.cesanta.com/devel/mac_fw_20160104_224731.zip

Что сделано:
1. Много фиксов в JS движке
2. Опция в конфиге - триггер AP по GPIO во время reboot
3. Опция в конфиге - не включать AP если STA сконфигурирован

Над чем работаем - продолжаем работу над движком, конфигуратором, OTA, DAV.
 

Jazz777

New member
Блин, сел проверять и чет не могу перепрошить - видимо забыл за праздники )) Помогите. ESP12:
gnd - земля
Vcc - 3,3v
Gpio15 через 10кОм к земле
Tx к компу
En к 3,3
И для прошивки подтянуть GPIO0 к нулю перед стартом.
Пишет Failed to talk to bootloader.
Хотя если просто запустить - всё стартует и работает
 

rojer

Разработчик Smart.js
Команда форума
Блин, сел проверять и чет не могу перепрошить - видимо забыл за праздники )) Помогите. ESP12:
gnd - земля
Vcc - 3,3v
Gpio15 через 10кОм к земле
Tx к компу
En к 3,3
И для прошивки подтянуть GPIO0 к нулю перед стартом.
Пишет Failed to talk to bootloader.
Хотя если просто запустить - всё стартует и работает

TX к компу, а RX? RX тоже надо, в обе стороны обмен идёт.
 

Jazz777

New member
Ау, меня услышали? Несколько раз запустил, крешится в рандомное время обычно меньше двух часов. У вас есть такой эффект? Ещё что-то тестировать или ждать обновления?
 

alashkin

Разработчик Smart.js
Команда форума
Ау, меня услышали? Несколько раз запустил, крешится в рандомное время обычно меньше двух часов. У вас есть такой эффект? Ещё что-то тестировать или ждать обновления?
Услышали. Воспроизвёл.
Думаем. =)
Спасибо!
 
Сверху Снизу