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

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

Jazz777

New member
Прошивку скачал, установил. Тут у вас отлично всё описано, есть видео - никаких ошибок не возникло - респект. А дальше я вообще не понял что делать. Можете сделать несколько (чем больше, тем лучше и чем от простого к сложному тем лучше) примеров работы с вашей прошивкой с объяснениями на пальцах? Как помигать светодиодом (я не нашел где посмотреть в каком файле и какие команды должны быть)? Как отправить данные на сервер в интернете. Конкретно мне интересно было бы не в абстрактное облако, а к себе на сайт это получать. Там, например, сварганить простенький php, который запускается с параметрами и складывает всё в файл. Ну и т.д. по всему вашему функционалу. И тогда, мне кажется, всё зацветет ещё пышнее ))
 

pvvx

Активный участник сообщества
Ау? Тут вообще живут??
Если не ошибаюсь, то то, что есть на smart.js для ESP8266, было пока как альфа проба, а что-то да как-то рабочее обещали выложить в сентябре. Сентябрь ещё идет... И:
1) Нормальные программисты не работают летом
2) Планы могут меняться
 

Jazz777

New member
Ну тогда пусть так и напишут! Идея-то у них прикольная. И сейчас всё это как раз на острие мира интернета вещей. Можно нормально так рынка себе отхватить. Мне же определиться - или я с ними, но тогда нужно видеть их вменяемую позицию по примерам использования того, что есть и по планам на будущее или уже не ждать и идти к ардуинщикам, там идея тоже довольно нормальная и примеров работы сразу банк дают..
 

Ромчик

New member
Установил, проверил команды , файл пишет открывает. Хотел помигать светиками через GPIO чет не выходит.
 

lsm

Разработчик Smart.js
Команда форума
Прошивку скачал, установил. Тут у вас отлично всё описано, есть видео - никаких ошибок не возникло - респект. А дальше я вообще не понял что делать. Можете сделать несколько (чем больше, тем лучше и чем от простого к сложному тем лучше) примеров работы с вашей прошивкой с объяснениями на пальцах? Как помигать светодиодом (я не нашел где посмотреть в каком файле и какие команды должны быть)? Как отправить данные на сервер в интернете. Конкретно мне интересно было бы не в абстрактное облако, а к себе на сайт это получать. Там, например, сварганить простенький php, который запускается с параметрами и складывает всё в файл. Ну и т.д. по всему вашему функционалу. И тогда, мне кажется, всё зацветет ещё пышнее ))
Уважаемый Jazz777!

Мы никуда не делись, просто временно на форуме не появлялись ;-)

Значит так. Мы активно работаем над прошивкой. Недавно прикрутили Мангуст (https://github.com/cesanta/mongoose) к низкоуровневому API LWIP, так что нам уже не нужны сокеты. И появилась поддержка множества протоколов - MQTT, CoAP, etc. Будем постепенно из экспортировать в JavaScript. Для начала мы переработали HTTP интерфейс, сделали его подмножеством Node.js API.

Вот документация: https://www.cesanta.com/developer/smartjs#_http

Как послать данные своему скрипту - вот я сделал скриншот :Screen Shot 2015-11-08 at 16.12.25.png

Дайте знать если есть вопросы!
 

Jazz777

New member
Мы никуда не делись, просто временно на форуме не появлялись ;-)
Ну эт, конечно, гуд. Только по-моему смысл форума в оперативной (ну хотя бы до рабочих суток) поддержке по возникающим вопросам иначе всё это теряет актуальность.
Так вот, я так понимаю, проект ведется и вы хотели бы, чтобы вашим продуктом пользовались и давали обратную связь. Тогда давайте начнем:
1. Скине, пожалуйста адрес свежей прошивки для Flash’n’chips.
2. Я опираюсь на статью http://esp8266.ru/smart-js-esp8266/
Получилось закачать прошивку. Что с ней дальше делать не понятно. Перешел по всем ссылкам, помигать светодиодом ниасилил.
Поэтому предлагаю, например, сюда скинуть код мигания светодиода (с комментариями, если там есть неочевидные места.). Я так понимаю, вам это две минуты работы. Я его закачиваю, радуюсь и описываю следующую задачу по нарастающей сложности. Таким образом у нас получится вполне адекватная обучалка по вашему продукту для довольно широкой аудитории. Может вам и кажется, что всё тут легко и очевидно, я вас уверяю, что для многих именно эти первые шаги и вызывают ступор, хотя в целом руки откуда надо растут.
 
Последнее редактирование:
  • Like
Реакции: edgi

dimonomid

New member
1. Скине, пожалуйста адрес свежей прошивки для Flash’n’chips.
Релизы тут: https://github.com/cesanta/smart.js/releases
Но лучше взять последние исходники из https://github.com/cesanta/smart.js .

Поэтому предлагаю, например, сюда скинуть код мигания светодиода (с комментариями, если там есть неочевидные места.).
Сохраните этот код в какой-нибудь файл (например, "blink.js")

Код:
function blink(pin) {
  pin = pin || 0;
  var level = !GPIO.read(pin);

  //-- Если используете не последние исходники из репозитория, а собранный релиз,
  //   то еще нужно явно привести level к типу number:
  level = level * 1;

  GPIO.write(pin, level);
  console.log("pin:", pin, ", level:", level);

  setTimeout(
    function() { blink(pin); },
    500
  );
}

В flash-n-chips, зайдите в file -> upload, выберите ваш файл. Он будет залит на устройство.
Теперь в консоли вы можете набрать (заменив 0 на нужный номер пина) :
Код:
File.eval("blink.js");
blink(0);
И если к указанному пину подключен светодиод, он будет мигать каждые 500 мс.
 
Последнее редактирование:

Jazz777

New member
Спасибо. Глядишь куда-нибудь приплывем )).Теперь по порядку.
По ссылке взял последний flashnchips-win.zip
Открыл, нажал прошить. Выдало:
Прошивка.jpg
Нажал Write new
Всё перепрошилось, но приветствия с долларом нет и файлы не аплодятся вообще. Нажал reboot, disconnect, connect, не помогает
После прошивки.jpg
Проделал это и с подтянутым к нулю GPIO0 и с не подтянутым. Эффект одинаковый. Что делать?

P.S. У меня ESP8266 01, если это важно. На ALPHA1 так не ругалось и всё закачивало. Теперь, даже если обратно прошиваю первой версией, на файловую систему не ругается, прошивается, но так же приветствия нет и файлы не аплодятся.
 

alashkin

Разработчик Smart.js
Команда форума
Спасибо. Глядишь куда-нибудь приплывем )).Теперь по порядку.
По ссылке взял последний flashnchips-win.zip
....
P.S. У меня ESP8266 01, если это важно. На ALPHA1 так не ругалось и всё закачивало. Теперь, даже если обратно прошиваю первой версией, на файловую систему не ругается, прошивается, но так же приветствия нет и файлы не аплодятся.
Приветствую.
Да, ESP-01 это важно, мы с ней не всегда дружим.
Попробуйте вот так:
1. Прошиваем (с GPIO0 подключенным к земле)
2. Отключаем GPUI0
3. _Отключаем_ питание ESP
4. Подключаем питание ESP

У меня в такой последовательности заработало.

Ну или если модуль уже прошит, то модно просто отключить GPIO0, передёрнуть питание и подключиться Flash'n'Chips.
Если в консоле ничего нет, то киньте туда любой набор символов, просто что бы приглашение отрисовалось.
 

Jazz777

New member
Ну или если модуль уже прошит, то модно просто отключить GPIO0, передёрнуть питание и подключиться Flash'n'Chips.
Ну частично это помогло. Приглашение появилось, файл, который выше, вгрузился, комадны ввел, пошел мигать. Сделал 3 цикла и завис, хотя по программе, я так понимаю, должен мигать бесконечно.Завис.jpg
Может в коде что-то не то или ещё что-то нужно сделать?
 

lsm

Разработчик Smart.js
Команда форума
Ну частично это помогло. Приглашение появилось, файл, который выше, вгрузился, комадны ввел, пошел мигать. Сделал 3 цикла и завис, хотя по программе, я так понимаю, должен мигать бесконечно.Посмотреть вложение 1038
Может в коде что-то не то или ещё что-то нужно сделать?
@Jazz777, вы все правильно сделали, LED должен мигать бесконечно.

Для удобства я выложил текущую сборку прошивки, можно ее забрать тут:
https://github.com/cesanta/smart.js#documentation-and-downloads

Внутри архива есть .txt файл с датой сборки. Этот архив мы будем периодически обновлять.
Попробуйте последнюю сборку, пожалуйста. Я только что ее проверил на ESP-12e, работает as expected.
 

Jazz777

New member
Попробуйте последнюю сборку, пожалуйста.
ОНО! Работает. Мигает бесконечно. Спасибо.
Теперь, собственно, к нашим моментам.
Нужно программно подключиться к моему роутеру (пока предполагается, что известно его имя и пароль) и передавать раз в минуту на сайт данные через гет запрос. Данные тоже пока любые, устроит и просто "1".
Например http://www.womencreative.ru/esp.php?n=64662 (не реклама, просто у меня туда доступ к фтп есть). Там лежит файл:
<?php
// Запись в файл параметра n, если он есть
if(isset($_GET['n']))
{
$fd = fopen("esp_log.txt","a");
fwrite($fd, date("d.m.Y H:i:s")."\t".$_GET['n']."\r\n");
fclose($fd);
echo($_GET['n']);
exit();
}
echo("Параметр n не задан.");
?>
Тут вроде всё понятно: параметр, если он есть записывается в файл и выводится на экран. Файл легко просмотреть: http://www.womencreative.ru/esp_log.txt Легко отследить работает передача или нет.
Думаю, такой пример не только мне, но и многим будет интересен. Подскажите, плиз.
 
Последнее редактирование:

lsm

Разработчик Smart.js
Команда форума
ОНО! Работает. Мигает бесконечно. Спасибо.
Тут вроде всё понятно: параметр, если он есть записывается в файл и выводится на экран. Файл легко просмотреть: http://www.womencreative.ru/esp_log.txt Легко отследить работает передача или нет.
Думаю, такой пример не только мне, но и многим будет интересен. Подскажите, плиз.
@Jazz777, спасибо!
Отсылаю пример с HTTP клиентом - отчитывается каждые 3 секунды о размере свободной памяти. Сохранить в файл http_client_1.js

Код:
function report() {
  print('sending request...');
  Http.request({
    hostname: 'www.womencreative.ru',
    path: '/esp.php?n=' + GC.stat().sysfree  // Free RAM
  }, function(response) { print(response); }).end(/* no POST data */);

  setTimeout(report, 3000);  // Report every 3 seconds
};

report();
Вот скриншот сессии:

Screen Shot 2015-11-11 at 3.30.30 PM.png
 

lsm

Разработчик Smart.js
Команда форума
@Jazz777 , давайте я вас опережу :)
Сейчас пришлю пример веб сервера, мигающего LED по запросу.
 

Jazz777

New member
Это вам спасибо. Делаете отличный инструмент для кучи всего умного!
Всё заработало с первого раза, отлично отсылает. Есть пара моментов для уточнения, но, я думаю, это позже. Сейчас пройдемся по базовым вещам.
Многие дешевые датчики - аналоговые, например фоторезистор.
Фоторезистор.jpg
Они умеют дешево и сердито изменять напряжение на входе микроконтроллера. Но чтобы померить его, в контроллере нужно АЦП. В ESP-01, я так понимаю, его нет (или есть?). Покупать более дорогие вещи ради этого, конечно, не хотелось бы. В общем покажите как снимать данные с подобных вещей, подключенных, видимо к GPIO2 (ну или куда скажете).
 
Последнее редактирование:

lsm

Разработчик Smart.js
Команда форума
И правда, опередили. Это тоже очень интересно. Жду..
@Jazz777 , обещанный веб сервер на JavaScript.

1. Скачайте обновленную прошивку с https://github.com/cesanta/smart.js#documentation-and-downloads
2. Закачайте два файла на модуль: index.html и http_server_1.js:

HTML:
<html>
  <h1>Hello from ESP8266</h1>
  <form method="POST" action="/gpio">
    GPIO: <input type="text" name="pin" size="2" />
    Value:
    <select name="value">
      <option>0</option>
      <option>1</option>
    </select>
    <input type="submit" value="Set" />
  </form>
</html>
JavaScript:
var parse = function(query) {
  var obj = {};
  var pairs = query.split('&');
  for (var i = 0; i < pairs.length; i++) {
    var x = pairs[i].split('=', 2);
    obj[x[0]] = x[1];
  }
  return obj;
}

var server = Http.createServer(function(req, res) {
  print(req);
  if (req.url == '/gpio') {
    var query = parse(req.body);
    var pin = parseInt(query.pin), value = parseInt(query.value);
    GPIO.setmode(pin, 0, 0);
    GPIO.write(pin, value);
    res.writeHead(302, {'Location': '/'});
    res.end();
  } else {
    res.serve();
  }
}).listen(80);
3. В консоли, соединтесь с WiFi, и запустите сервер:

Код:
Wifi.setup('SSID', 'PASSWORD')
File.eval('http_server_1.js')
4. Запустите браузер - он должен показать простую форму, в которой можно записать 0 или 1 в GPIO.
Скриншоты - ниже. У меня диод висит на GPIO 5.

Screen Shot 2015-11-12 at 1.54.55 PM.png

Screen Shot 2015-11-12 at 1.55.06 PM.png
 

lsm

Разработчик Smart.js
Команда форума
Для полноты картины - картинка с LED:

20151112_135652.jpg 20151112_135652.jpg
 
Сверху Снизу