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

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

lsm

Разработчик Smart.js
Команда форума
По поводу аналоговых сенсоров:

На ESP8266 есть ADC, но на ESP-01 он не выведен.
Мы используем цифровые датчики, e.g. http://ie.farnell.com/avago-technologies/apds-9301-020/ambient-light-sensor-smd/dp/1829782 -- простой в калибровке, I2C. В нашем API уже есть I2C - вот драйвер для этого датчика: https://github.com/cesanta/smart.js/blob/master/src/js/ADPS9301.js

То есть если не предполагается массовое производство, то проще использовать цифровые датчики.

В более поздних моделях ESP8226, a-la ESP-12, ADC выведен. У нас пока для ADC нет API - но это дело недалекого будущего, это несложно.
 

Jazz777

New member
Мы используем цифровые датчики, e.g. http://ie.farnell.com/avago-technologies/apds-9301-020/ambient-light-sensor-smd/dp/1829782 -- простой в калибровке, I2C.
Ой, ой как дорого и заморочено для простенького датчика света. Я посмотрел на Али, ESP-01 сейчас 120 рублей, ESP12- 127 рублей (если ничего не путаю). Переплатить 7 рублей, чтобы иметь АЦП и не приляпывать дополнительных конструкций - это по-моему очень гуд. Тогда ближайшие день-два сбегаю, приобрету парочку и начну осваиваться дальше уже на них.
У нас пока для ADC нет API - но это дело недалекого будущего, это несложно.
Сориентируйте, пожалуйста по времени. Без этого я не смогу реализовать задуманное.

По веб серверу тоже ближайшие день - два сделаю по вашим инструкциям- и сразу же отпишусь (просто чет делами завалило).
 
Последнее редактирование:

Jazz777

New member
обещанный веб сервер на JavaScript.
Наконец-то руки дошли всё глянуть. Всё завелось, всё круто, светодиод слушается!

Теперь жду работу с АЦП, чтоб на сайт передавать уже не размер памяти, а осмысленные данные. Скоро уже? Если там долго может что другое покажете? Например:
Я хочу чтобы пользователь сам умел задавать пароль к своему роутеру. Как я это вижу: Если на определенном GPIO появляется 1 (переключили переключалку) - это означает режим настройки. Тогда ESP начинает выступать как точка доступа. Дальше пользователь подключается к ней по вайфай, например с телефона. Там диалог: Введите название вашей сети и пароль. Он вводит, оно сохраняется в файле. Переключалку вернули - ESP подключается к роутеру используя данные из файла, а не набирая команды из консоли.

P.S. Я к чему всё это вообще - я считаю, что у устройства мегапотенциал для интернета вещей. При чем не только для себя, но и на продажу. Задумка в том, что можно соединять любые простенькие аналоговые датчики с ESP и обрабатывать потом данные на сайте. Для этого интерфейс должен быть максимально дружелюбный для пользователя, который купил это в интернет-магазине и не особо силен в командной строке.
 
  • Like
Реакции: lsm

lsm

Разработчик Smart.js
Команда форума
Спасибо @Jazz777 !

Именно такая функциональность как вы описали у нас уже есть в нескольких коммерческих проектах. Сейчас мы переносим ее в открытый код - настройка через AP, и тд. Мы хотим дать возможность конфигурировать настройку которую видно в Web UI. Плюс поддержку SSL, MQTT, ADC, OTA (обновления с облака). В общем, по порядку: начнем с UI настройки. Планирую завтра выложить обновленную прошивку и сюда - работающий пример со скриншотами.
 

lsm

Разработчик Smart.js
Команда форума
Уважаемый @Jazz777 !

Здорово что вы следите! Как оказалось, работа по Web UI требует серьезного дизайна:

где держать конфигурацию
сепарировать ли системную конфигурацию от специфической для приложения
как автоматически рендерить конфигурацию в веб интерфейсе
механизм для восстановления заводских настроек
внутренний C/JavaScript API для конфигурации

Все это сейчас уже в стадии активной реализации, единственное что на это уйдет больше времени чем я предполагал. Поднять веб сервер с фомочкой для настроек конечно не проблема, но хочется чтобы было все по уму.

Из хороших новостей: мы сделали поддержку ADC. Вот дока: https://www.cesanta.com/developer/smartjs#_adc
Обновленная прошивка как всегда - на https://github.com/cesanta/smart.js#documentation-and-downloads

пример:

JavaScript:
function adcExample() {
  print("ADC:", ADC.read(0));
  setTimeout(adcExample, 1000);
}
Пробуйте, отписывайтесь!
 

Jazz777

New member
Уважаемый @Jazz777 !

Здорово что вы следите!
Я не брошу всё это тестировать, пока не отладим - я считаю, что это очень интересно и за этим будущее. Главное, вы не бросайте.

Купил ESP12E, чтобы запустить АЦП. Подал стабильные 3,3 (как и раньше), GPIO15 через 10kom подтянул к земле, en подтянул к 3,3. GPIO0 подтянул к земле. Запустил последнюю прошивку - всё прошилось без ошибок, без проблем и с первого раза. Отсоединил GPIO0 от земли. Отключил, подключил питание и UART на всякий случай. Дальше закинул пример, который на сайт выводит объем памяти и запустил его. Зависает после отсылки. Иногда первой, иногда второй, иногда пятой. Что не так?
Зависает ESP.jpg
 

lsm

Разработчик Smart.js
Команда форума
Мне уже в другой ветке это сказали - это regression, то есть в новой сборке память течет.
У нас пока к сожалению не настроен Continuous Integration для железок: для софта есть, а на реальном железе (ESP8266, CC3200, etc) пока не прогоняем, так что иногда случаются regressions. Но мы уже в процессе, работаем и над этим.
И, btw, работа над UI конфигом тоже в процессе - уже C часть сделана, следующий этап - C/JS склейка.

По поводу утечки: сейчас разберемся и исправим.
 

Jazz777

New member
Увидел вчерашнюю прошивку, закачал. Попытался загрузить файл, выдаёт ошибку:Не аплодит.jpg
И ещё. Как можно узнавать о выходе новой прошивки, где вы это сообщаете?
 

lsm

Разработчик Smart.js
Команда форума
Да, утечку еще ловим.
BTW, У вас с ADC (тот который АЦП) получилось поработать?
 

Jazz777

New member
У вас с ADC (тот который АЦП) получилось поработать?
Чтобы нормально проверить, я хотел показания снимать и на сайт отправлять в цикле (в любом случае использование именно такое будет), пробовал 2 раза. Первый раз утечка, а второй (сегодня) вообще файл залить не могу..
Если у вас с исправлением ошибок всё долго, могу потестить и без этого, но проще, конечно, дождаться..
 

alashkin

Разработчик Smart.js
Команда форума
Увидел вчерашнюю прошивку, закачал. Попытался загрузить файл, выдаёт ошибку:Посмотреть вложение 1094
И ещё. Как можно узнавать о выходе новой прошивки, где вы это сообщаете?
Приветствую.
Мы обновили прошивку (версия для Windows - https://backend.cesanta.com/devel/win_fw_20151203_131003.zip)
Утечка как будто починена, файлы аплоадяться тоже нормально. Я только что попробовал - ок. Правда у меня линукс, но это не должно особой роли играть.

Спасибо!
 

Jazz777

New member
Доброго вечера.
Залилось и саплодилось всё ок.
Дальше в вашем примере по записи данных на сайт заменил соответствующую строку на
path: '/esp.php?n=' + GC.stat().sysfree + ADC.read(0)// Free RAM & ADC
Больше ничего не менял. Запустил. Результаты:
1. Поигравшись с ADC и вольтметром я выяснил, что всё, что выше 1в воспринимается как 1024, хотя я думал диапазон должен быть 0-3,3в. Проверьте, пожалуйста, может всё-таки что-то докрутить нужно.
2. Память всё-таки хоть и медленно, но куда-то утекает.
Когда запускал час назад было 30000, сейчас 28408.
Я оставлю на ночь, хотя предполагаю, что зависнет дойдя до нуля где-то под утро.
Динамику кушания памяти можно посмотреть здесь: http://www.womencreative.ru/esp_log.txt
Последние три цифры, соответственно ADC, тут путаницы, вроде, не возникает, попозже отделю пробелом.
Как-то так.
 

alashkin

Разработчик Smart.js
Команда форума
Доброго вечера.
2. Память всё-таки хоть и медленно, но куда-то утекает.
Когда запускал час назад было 30000, сейчас 28408.
Как-то так.
Зааплоадилось - это уже хорошо, положительная динамика =)
Память. Я правильно понимаю, что течь стало меньше?
Оно до нуля то может и не дойти - в моих тестах она бысто добегала до 28к и там оставалось.
Ну да поглядим утром видимо.

Спасибо за интересные эксперименты!
 

Jazz777

New member
Ну да поглядим утром видимо.
Зависло. Я так понял не из-за памяти. Лог в файле (я его не буду перезаписывать, для дальнейших своих экспериментов создам соседний, чтобы вы, если нужно могли в него смотреть..). Скрин вот:
Завис01.jpg
Я тогда пока займусь мелкой шлифовкой: графики на сайте порисую и т.д. Жду фикса. Если нужно ещё что-то протестить - пишите..
 

Jazz777

New member
Ещё момент. Я так понимаю, у каждого контроллера есть свой заводской id. Как его узнать? Чтобы на сайте писать именно в тот файл, с чьего устройства данные пришли..
 

lsm

Разработчик Smart.js
Команда форума
Ответ на ваш вопрос - ниже.

Попробуйте:
https://backend.cesanta.com/devel/mac_fw_20151205_180515.zip (MAC)
https://backend.cesanta.com/devel/win_fw_20151205_180515.zip (Win)

Залейте прошивку.
Сделайте файл "conf.json", такого вида:

Код:
{
  "wifi": {
    "sta": {
      "enable": true,
      "ssid": "SSID",
      "pass": "PASSWORD"
    }
  },
  "debug": {
    "level": 2,
    "mode": 1
  }
}
Вместо SSID, PASSWORD подставьте имя сети и пароль.
Залейте на модуль, перегрузитесь:

Код:
Starting Smart.js - see documentation at https://cesanta.com/developer/smartjs
========== Configuration:
{"debug":{"mode":2,"level":2},"http":{"port":"80","enable":true},"wifi":{"ap":{"dhcp_netmask":"255.255.255.0","dhcp_end":"192.168.4.200","dhcp_start":"192.168.4.1","channel":6,"hidden":0,"pass":"Elduderino","ssid":"SMARTJS_??????","enable":true},"sta":{"pass":"","ssid":"","enable":false}}}
========== Read-Only vars:
{"fw_version":"ESP8266/ro_vars/20151205-180357/b9998f07","mac_address":"5ECF7F05FE8A"}
==========
Executing app_init.js

smartjs 28128/1032$
Чтобы ваш код выполнялся автоматом после старта, положите его в "app_init.js", и залейте на модуль.

BTW, в этой прошивке уже поднимается веб сервер с настройками, но пока не работает сохранение настроек.

Ответ на вопрос: как видите, мы экспортируем переменную "Sys.ro_vars.mac_address". У ESP MAC адреса уникальные и могут служить ID устройства.
 

Victor

Administrator
Команда форума
lsm, первоначальная статья немного устарела уже, может имеет смысл сделать новую тему на форуме типа "smart.js - быстрый старт" и там вам собрать все ссылки на прошивки, документацию и т.д. и кратко описать процесс в одном-двух абзацах, чтобы людям не листать много страниц разных тем для выуживания информации, а в этой теме пускай примеры так и остаются.
P.S. спасибо за прошивку!
 

Jazz777

New member
мы экспортируем переменную "Sys.ro_vars.mac_address". У ESP MAC адреса уникальные и могут служить ID устройства.
Все работает. Спасибо.
BTW, в этой прошивке уже поднимается веб сервер с настройками, но пока не работает сохранение настроек.
Жду с нетерпением готовый модуль с примером и пояснениями.

Еще остались 2 момента:
1. То, что ADC больше одного вольта не распознает. Вряд ли так на заводе спроектировали. Проверьте, пожалуйста, на оригинальной прошивке или ещё как, ведь функция для дешевых сенсоров архиважная.
2. Зависание о котором я утром писал в новой прошивке пофиксили или нет? Заново на тест ставить или вы отдельно отпишитесь?
 
  • Like
Реакции: lsm
Сверху Снизу