• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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
Сверху Снизу