Troyka WiFi. Как общаться?

Тема в разделе "Arduino & Shields", создана пользователем NikZig, 18 фев 2017.

Метки:
  1. NikZig

    NikZig Нерд

    Всем привет!
    Прошу помощи в общении с Тройка ВиФи.
    Под рукой Arduino Nano.
    Подключаю V-5v, G-Gnd, Rx-Tx, Tx-Rx.
    Также пробовал Rx-Rx, Tx-Tx. Пробовал с замкнутыми на Ардуине Gnd и Rst

    AI-THINKER вайфай видно, но на 198.168.4.1 зайти не получается, страницы нет.
    В случае попытки прошивки в собранном виде вылезает ошибка что COM занят.
    В случае попытки пообщаться с платой через монитор порта на каждое нажатие клавиши на ардуине мигает Rx (в CoolTerm) в Arduino IDE через монитор порта на любых бод просто не отвечает.

    Подскажите, где не прав?
     
  2. rkit

    rkit Гуру

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

    NikZig Нерд

    А по делу то что-нибудь подскажите пожалуйста.

    На 198.168.4.1 в теории должна быть страница настройки, об этом пишут на esp2866.ru например.
    Про занятый порт и так очевидно.
    Если бы представление было не поверхностное, я бы, наверное, не писал...
     
  4. rkit

    rkit Гуру

    Нет, не должна.
    По делу - читайте да разбирайтесь, инструкций в гугле полно. Вы хотите, чтобы кто-то для вас специально написал еще одну?
     
  5. ИгорьК

    ИгорьК Гуру

    Не подписываюсь под сказанным, поскольку с АТ прошивкой модуля никогда не работал, но попробую разъяснить коротко.
    (Просто потому что человек пришёл с сайта esp8266.ru, а это явление очень специфическое)
    1. 198.168.4.1- эта точка доступа модулем при включении поднимается, но смысл её только в том, чтобы показать что модуль работает. Присоединиться к ней бесполезно.
    2. Модуль управляется через uart ( как приемопередатчик) на скорости или 9600 или 115200. Значит нужно понять что есть uart, где он находится и как работает ещё до соединения с модулем.
    3. Uart на Нано один. По нему идёт связь с usb компьютера. То есть одновременно работать с модулем и с компьютером не получится.
    4. Можно эмулировать uart на других ногах. Но мах скорость при этом - 9600. Если модуль работает на другой скорости - связаться с ним не удастся.
    5. Модуль управляется АТ командами. Надо разбираться что это и как тоже ещё до присоединение его.
    6. Модуль можно шить для работы как самостоятельное устройство. Для этого ардуинку надо перевести в специальный режим. Ищите инструкции. Я не умею, потому что:
    7. Купивший модуль и ЖЕЛАЮЩИЙ научиться с ним работать разными способами должен купить usb-uart преобразователь на мс PL2303, что сильно упростит жизнь. К сожалению, Амперка вообще не так давно узнала о существования ESP-8266, так что этой железки у неё нет. Но есть у других продавцов.
    Модуль, по правде говоря, не для начинающих.
    Все собираюсь, собираюсь написать о нем...
     
    Последнее редактирование: 19 фев 2017
    arkadyf и NikZig нравится это.
  6. NikZig

    NikZig Нерд

    Спасибо! Вот этого мне не хватало для понимания.

    Про переходник USB-UART я в курсе, но решил, что так не спортивно. Интересней попробовать через ардуину,
    Если рекомендуете, всё же куплю переходник. Большинство статей в нете описывают как раз такой способ.
     
  7. rkit

    rkit Гуру

    В ардуино встроен точно такой же переходник. Никакой разницы нет.
     
    ИгорьК нравится это.
  8. ИгорьК

    ИгорьК Гуру

    Это действительно так. Однако если много работать с модулем, въезжать в суть - программировать его через ардуинку зело неудобно.
     
  9. ИгорьК

    ИгорьК Гуру

    Если Вы решили серьёзно связаться с железом, pl2303 поможет Вам во многих других случаях, а именно - залезать в uart других устройств. Не жалейте о его покупке.
     
  10. rkit

    rkit Гуру

    Да нет, я давно по воздуху работаю.
    Хотя переходник в хозяйстве вещь полезная, спору нет.
     
  11. NikZig

    NikZig Нерд

    Я это и имел в виду под "не спортивно". Переходник облегчает жизнь, но через ардуино можно делать то же самое, только нужно немного больше подумать.


    Спасибо вам за ответы! Видимо я неправильно пытаюсь с ним общаться, использую не те пины. Буду разбираться с UARTом.
    А насчет даташитов, ведь не всё так уж просто. Ведь Тройка имеет другую организацию пинов. А на неё даташита как раз таки нет(или я просмотрел?). Вот я и не мойму, то ли читать про esp-12, на которой она построена, то ли от esp-05 на который она больше похожа по пинам.
     
  12. rkit

    rkit Гуру

    Одинаковые пины везде. Схема тройки есть в вики.
     
  13. ИгорьК

    ИгорьК Гуру

    Любой модуль ESP-8266 общается с внешним миром по uart и для общения с ним нужно найти эти два пина, какой бы модификации он не был.
     
  14. NikZig

    NikZig Нерд

    Игорь, если не сложно намекните чуть дальше..

    Я пока пробую наладить общение через Нано.
    На Тройке WiFi встроен стабилизатор питания, так что задача сводится только к тому, чтобы сделать из Нано USB-UART мост.
    Нашел, что для этого нужно замкнуть пины GND-RST и вуаля.
    Далее второй GND Нано цепляем на GND Тройки, 5V на Нано на V Тройки.
    Rx-Tx, Tx-Rx
    В общем, все как в моем первом посте.

    Если отправляю AT через монитор порта на любом из бод, и строке NL&CR ничего не возвращается.
    В списке WiFi устройств тройку я вижу.

    Некоторое время назад прекрасно получилось сделать проект на HC-06. Там было очень удобно, что в GoogleApps куча терминальных программ для общения с модулем. А вот для WiFi терминалок я как-то пока не нашел. Не подскажете ли какую-нибудь софтину? Не для настройки (их куча), а именно терминал.
     
  15. NikZig

    NikZig Нерд

    Проблема решена!
    Я ни на что не претендую, даже там откуда взял говорят, что так, дескать, быть не может.
    На китайской Arduino Nano 3.0 CH340 по RX и TX впаяны резисторы 1КОм, они мешают обмену.
    Помогло просто перевесить Rx-Tx тройки на другие пины.

    Вот скетч.
    Код (C++):
    #include <CyberLib.h>

    void setup()
    {
      D0_In; //Ard RX
      D10_Out; //BT RX
      D1_Out; //Ard TX
      D9_In; //BT TX
    }

    void loop()
    { Start
       if(D0_Read==1)D10_High; else D10_Low;
       if(D9_Read==1)D1_High; else D1_Low;
    End;
    }  

    Инфа вот отсюда: http://cyber-place.ru/showthread.php?t=582
     
    arkadyf нравится это.
  16. rkit

    rkit Гуру

    Форум можно переименовывать в "ремонт китайского барахла"
     
  17. NikZig

    NikZig Нерд

    Немножко подниму тему.
    Теперь у меня вопрос по прошивке Тройки WiFi.

    Имеем:
    1) Тройка WiFi
    2) Arduino USB2Serial не Китай

    Подключаем:
    Gnd-Gnd
    V - +5
    RX-TX
    TX-RX
    P-EXT(RST)

    Загружаем в Arduino IDE необходимые библиотеки по ESP 8266 и прочее, находим там ESP-12.
    Скетч компилируется, но при заливке говорит:

    warning: espcomm_sync failed
    error: espcomm_open failed
    error: espcomm_upload_mem failed
    error: espcomm_upload_mem failed


    Вопрос: На сколько при такой схеме заливки необходимы DTR и RTS? На моем переходнике их нет.
    Судя по инфе Амперки все должно прошиваться используя её штатные 5 ног.

    Код (C++):

    #include <DHT.h>
    #include <ESP8266WiFi.h>

    // replace with your channel’s thingspeak API key,
    String apiKey = "тутмойапикей";
    const char* ssid = "тутмойссид";
    const char* password = "тутпароль";

    const char* server = "api.thingspeak.com";
    #define DHTPIN 8 // what pin we’re connected to

    DHT dht(DHTPIN, DHT22);
    WiFiClient client;

    void setup() {
    Serial.begin(115200);
    delay(10);
    dht.begin();

    WiFi.begin(ssid, password);

    Serial.println();
    Serial.println();
    Serial.print("Connecting to ");
    Serial.println(ssid);

    WiFi.begin(ssid, password);

    while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    }
    Serial.println("");
    Serial.println("WiFi connected");

    }

    void loop() {

    float h = dht.readHumidity();
    float t = dht.readTemperature();
    if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
    }

    if (client.connect(server,80)) { // "184.106.153.149" or api.thingspeak.com
    String postStr = apiKey;
    postStr +="&field1=";
    postStr += String(t);
    postStr +="&field2=";
    postStr += String(h);
    postStr += "\r\n\r\n";

    client.print("POST /update HTTP/1.1\n");
    client.print("Host: api.thingspeak.com\n");
    client.print("Connection: close\n");
    client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n");
    client.print("Content-Type: application/x-www-form-urlencoded\n");
    client.print("Content-Length: ");
    client.print(postStr.length());
    client.print("\n\n");
    client.print(postStr);

    Serial.print("Temperature: ");
    Serial.print(t);
    Serial.print(" degrees Celcius Humidity: ");
    Serial.print(h);
    Serial.println("% send to Thingspeak");
    }
    client.stop();

    Serial.println("Waiting…");
    // thingspeak needs minimum 15 sec delay between updates
    delay(20000);
    }
     
  18. ИгорьК

    ИгорьК Гуру

    Для прошивки ESP нога rst не нужна, я предполагаю.
     
  19. NikZig

    NikZig Нерд

    Без этой ноги ошибки такие:

    error: failed reading byte
    warning: espcomm_send_command: cant receive slip payload data
    warning: espcomm_sync failed
    выбранный последовательный порт warning: espcomm_send_command: cant receive slip payload data
    не существует или плата не подключена к нему
    error: espcomm_open failed
    error: espcomm_upload_mem failed
     
  20. ИгорьК

    ИгорьК Гуру

    Не программировал esp на ардуино ни разу. Значит ошибаюсь.