Iskra JS и WI-FI модуль от амперки

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем ArtemTin, 26 апр 2017.

  1. ArtemTin

    ArtemTin Нуб

    У меня знатно подгорело, поэтому пишу сюда.
    1.Как работать с wi-fi модулем от амперки с iskr'ой?
    2.Где инструкции по работе с wifi модулем вообще, в интернете только для нераспаяных esp?
    3.Как прошивать модуль?
    Отвечая на возможные вопросы:
    1.Я прочитал прилично статей по esp8266, но так ничего и не понял
    2.Я не нашел информацию про то, как работать именно с тройка-модулем от амперки, только скудную библиотеку
    3.Я прочитал библиотеку, в примере нашел библиотеку http, но не нашел руководства в амперке.

    Если честно, то я ВООБЩЕ не понимаю как с ней работать(ни с ардуинкой, ни с искрой)
    Заранее БОЛЬШОЕ СПАСИБО
     
    Последнее редактирование: 26 апр 2017
  2. ArtemTin

    ArtemTin Нуб

    Грубо говоря, я хочу делать так:
    1.коннектить wifi к искре
    2.подключаться к сети
    3.запрашивать сайт, отдающий json
    4.обрабатывать данные, сохраненные в искре и полученные от сайта
     
  3. ИгорьК

    ИгорьК Гуру

    На что Вы расчитываете? На то, что сейчас выстроится очередь желающих Вас учить персонально, да еще локтями начнет толкаться от счасться?

    Для работы с Ардуиной есть огромная Вики. Читайте. Разберетесь с Ардуиной - начнете понимать ESP-8266. Тогда зададите вопросы типа "я делаю так и так, но задесь не получается".
    Без труда... Без труда - в "Закажу проект".
     
  4. ArtemTin

    ArtemTin Нуб

    Скорее вы не поняли. С ардуинкой и искрой я знаю как работать, вопрос в том где можно найти нормальное описание работы их с wifi от амперки. вот.
    Очень обидно, что этого нет в вики от самой амперки, а подобных модулей и работы с ними я не видел
     
  5. ИгорьК

    ИгорьК Гуру

    ESP как ESP: работает или самостоятельно или через АТ-команды через UART от Ардуино. Этот модуль ничем не отличается от других - какая разница как ноги выведены.
     
    sys и ArtemTin нравится это.
  6. ArtemTin

    ArtemTin Нуб

    Спасибо. Вот это я и хотел понять. Видимо модуль для прошареных, поэтому и не расписано до мельчайших деталей
     
  7. ИгорьК

    ИгорьК Гуру

    Он не для начинающих, кроме как если есть проект, который можно повторить один к одному.
     
  8. zakutnya

    zakutnya Нерд

    Если вопросы ещё актуальны, я бы попробовал помочь, потому что пару месяцев назад сам столкнулся с трудностями с ESP и очень хорошо помню, как пригорело у меня)
    Даже учитывая, что мой уровень КРАЙНЕ далёк от продвинутого, у меня получилось реализовать ваш список
    и даже чуть больше)

    Единственное уточнение: я использовал не Тройку модуль от Амперки, а http://amperka.ru/product/esp8266-wifi-module, т.е. «необработанный» ESP8622, насколько я понимаю.
    Сам нашёл кучу инфы, половину прочитал, половину из прочитанного не понял, но в итоге всё завелось и работает)
     
    arkadyf нравится это.
  9. ИгорьК

    ИгорьК Гуру

    С дымком?
     
  10. zakutnya

    zakutnya Нерд

    Хех)
    Нет, не слишком сильно. Мне кажется, мне повезло не наделать ошибок по невнимательности (несколько раз перечитал момент с подключением TX-RX и RX-TX, например, думал, что уже поехал)).
    Потратил примерно полсуток, чтобы разобраться во всём и подключить модуль, соответственно, концентрация внимания под конец была уже ниже некуда, но очень хотелось побороть задачу) И это стоило того — в 7 утра лёг спать счастливым)
     
  11. ArtemTin

    ArtemTin Нуб

    С этого места поподробнее. Также желательны ВСЕ ссылки, которые вам помогли.))) Ещё интереснее, если делали на искре. Там вообще непонятно мне. Заранее большое спасибо.
     
  12. zakutnya

    zakutnya Нерд

    Делал как раз на IskraJS)
    Повторюсь, я использовал именно чистый модуль ESP-01 (http://amperka.ru/product/esp8266-wifi-module), правда, заказывал его на Али, но, думаю, тот, что в ассортименте Амперки -- точно такой же.

    По запросу ESP8266 Espruino гугл выдаёт тьму ресурсов, а вот история браузера за февраль, когда я как раз и копался, вообще ничего не показывает. Но это не беда, потому что на сайте Амперки есть подробная статья о подключении (http://wiki.amperka.ru/продукты:troyka-wi-fi) + ещё один важный кусок кода с определением версии приложу чуть ниже. Этого должно быть достаточно + по возможности постараюсь максимально подробно расписать инструкцию.

    Первым делом хочу сказать, что я так и не прошил модуль, хотя практически во всех статьях о нём есть такой раздел. Это был самый пугающий этап, и я не смог с ним справиться) А когда модуль подключился к сети и потом, когда я уже поднял сервер, оказалось, что не так уж это и необходимо было) Теперь у меня есть некоторое (довольно неполное) представление, как его перепрошить, но пока что я придерживаюсь подхода "работает -- не трогай")

    Подключаем:
    • ногу TX модуля к пину A3 платы (USART2 RX)
    • ногу RX модуля к пину A2 платы (USART2 TX)
    • нога P модуля (у вас именно тройка модуль, как я понял) идёт на пин P3 платы.
    Напряжение (V) и земля (G) идут на любые удобные соответствующие пины на плате. Я всё ещё не до конца уверен, что у вас именно тройка модуль, и если он -- можно подключить и на 5тивольтовый пин, т.к. Амперка говорит, что регулятор напряжения решит все проблемы. Если же у вас всё-таки модуль как у меня, то пин на 5В его испортит (сам пока не рисковал пробовать))
    В этом месте строить и жить очень помогала вот эта картинка из раздела документации по IskraJS
    [​IMG]
    На ней как раз указано, что A2 и A3 -- Serial2, что будет полезно нам далее в коде.

    Теперь и сам код. Первый шаг: определяем версию прошивки:
    Код (Javascript):
    var serial = Serial2;
    var pins = { rx: A3, tx : A2 };
    function test(baud) {
      serial.removeAllListeners();
      var l="";
      serial.on('data', function(d) {l+=d;});
      serial.setup(baud, pins);
      serial.write("AT+GMR\r\n");
      setTimeout(function(){console.log(JSON.stringify(l));},800);
    }
    digitalWrite(B9,1); // enable on Pico Shim V2
    setTimeout(function() { test(9600); }, 2000);
    setTimeout(function() { test(115200); }, 3000);
    setTimeout(function() { test(57600); }, 4000);
    setTimeout(function() { console.log("Done!"); }, 5000);
    На espruino.com (https://www.espruino.com/ESP8266) есть довольно понятный, на мой взгляд, комментарий по результатам выполнения:
    Процедура эта нужна была лишь для того, чтобы удостовериться, что у ваш модуль сделали не древние римляне, и что параметр Baud Rate у него 115200 (надеюсь, это именно так, потому что иначе у нас в условиях начинаются расхождения))
    [​IMG]
    (если картинка побилась http://prnt.sc/f6s4w0)
    В таблице вы должны увидеть свою версию.

    Шаг второй: переключаемся на Espruino Web IDE.
    Попробуем подключиться к точке доступа и послать GET запрос на какой-нибудь адрес. Для этого:
    Код (Javascript):
    var serial = Serial2;    // RX и TX пины
    pinMode(P3, 'input_pullup');
    serial.setup(115200);    // тот самый Baud Rate

    // логин и пароль WiFi-сети
    var SSID = 'Wifi hotspot';    // пусть пробел в примере вас не смущает, в названии моей домашней точки доступа он не вызвал никаких проблем
    var PSWD = 'MyStr0ngP4$$';

    var http = require('http') // используем встроенную библиотеку http прямо так
    var wifi = require('http://www.espruino.com/modules/ESP8266WiFi_0v25.js')    // берём библиотеку из репозитория espruino (я не помню почему я использую именно её, возможно, с той, которая @amperka/wifi, у меня возникли проблемы, или я просто что-то неправильно делал. В любом случае, я на всякий пожарный сохранил себе эту библиотеку в папку modules и использую её)

    let net = wifi.connect(serial, function(err){
        net.connect(SSID, PSWD, function(err){
            http.get('http://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b1b15e88fa797225412429c1c50c122a1', function(res){ // получаем погоду в Лондоне
                var str = '';
                res.on('data', function (chunk) {
                  str += chunk;
                });
                res.on('end', function () {
                  print(str);
                });
            })
        })
    })
    Через пару секунд после запуска в консоли вы должны увидеть нечто вроде
    Код (Javascript):
    {"coord":{"lon":-0.13,"lat":51.51},"weather":[{"id":300,"main":"Drizzle","description":"light intensity drizzle","icon":"09d"}],"base":"stations","main":{"temp":280.32,"pressure":1012,"humidity":81,"temp_min":279.15,"temp_max":281.15},"visibility":10000,"wind":{"speed":4.1,"deg":80},"clouds":{"all":90},"dt":1485789600,"sys":{"type":1,"id":5091,"message":0.0103,"country":"GB","sunrise":1485762037,"sunset":1485794875},"id":2643743,"name":"London","cod":200}
    Вот, собственно, вкратце и всё)
    Самое важное -- подключение. Я уверен, что Амперка реализует далеко не самые старые WiFi модули, поэтому шаг с определением режима работы скорее для порядка.
    Что касается непосредственно сервера, то это выходит за рамки по-крайней мере этого поста) Желаю удачи и надеюсь, что у вас всё получится)
     
    caracal, sys и arkadyf нравится это.