cosmo wifi азы, подключение, впоросы
  • Ну и по порядку... Иван, пробую самый простой пример подключение к wi-fi сети.
    И отправка GET запроса (просто открыть /fule1.php)


    #include <WiFi.h>

    char ssid[] = "hifly"; // the name of your network
    int status = WL_IDLE_STATUS; // the Wifi radio's status

    void setup() {
    // initialize serial:
    Serial.begin(9600);

    // attempt to connect to an open network:
    Serial.println("Attempting to connect to open network...");
    status = WiFi.begin(ssid);

    // if you're not connected, stop here:
    if ( status != WL_CONNECTED) {
    Serial.println("Couldn't get a wifi connection");
    while(true);
    }
    // if you are connected :
    else {
    Serial.print("Connected to the network");
    }
    }

    void loop() {
    // do nothing
    }


    Тишина... Скажите а где можно мониторить Serial.println("Couldn't get a wifi connection"); ???
    Ни отображается увы, не найду...
    В самом мониторе порта - тихо как в танке...
    Как бы удобнее логировать что происходит с друиной с вайфаем???
    Максимум это вижу когда успешно подключился (на роутере только)
    А к примеру тот же ГЕТ запрос - не понято, что там и как происходит...
  • Вы используете библиотеку WiFi.h
    Вы уверенны, что данная библиотека совместима с Cosmo WiFi Shield ?
  • Да.. Верно это же wiz220, спасибо за четкий ответ )
    За ночь, набралось еще несколько вопросов, Иван, буду по порядку:

    1. avrdude: stk500_getsync(): not in sync: resp=0x00 - получаю такую ошибку в Космо БС.
    Плата выставлена в соответствии (А Duemil 328), с скоростью порта (com) играл - тоже не помогает.
    Скажите как верно заливать скечи в Блэк Космо Стар????

    2. плата A Uno, при подключении мониторю состоянии КОМ порта, т.е. все вижу, все что в скетче выводится на консоль (прим Serial.println("AT+NCTCP=10.5.2.100,80"); итд ). Как только стыкую УНО с Космо вай-фай шилдом - монитор порта молчит! Понятно, что контакты 0 и 1 теперь не пусты, но как тогда мониторить состояние, когда шилд в ардуине, ведь не понятно что происходит ???!

    3. (надеюсь с мониторингом третий вопрос разрешиться...) Простой HTTP GET (из верного, нашего примера)


    void setup(void)
    {
    Serial.begin(115200);
    delay(100);
    Serial.println("ATE0");
    delay(100);
    init_network();
    delay(100);
    delay(100);
    }

    void loop(void)
    {

    Serial.println("AT+NCTCP=10.5.2.100,80");
    delay(5000);
    Serial.print(27); // символ [ESC]
    delay(100);
    Serial.print(83); // символ S
    delay(100);
    Serial.print(48); // цифра 0
    delay(100);
    Serial.println("GET /tbl/go3_1.php HTTP/1.1");
    delay(100);
    Serial.println("User-Agent: curl/7.19.5 (i486-pc-linux-gnu) libcurl/7.19.5 OpenSSL/0.9.8g zlib/1.2.3.3libidn/1.15");
    delay(100);
    Serial.println("Host: 10.5.2.100");
    delay(100);
    Serial.println("Accept: ");
    Serial.print(42); // символ *
    Serial.print(47); // символ /
    Serial.println(42); // символ *
    delay(100);

    delay(100);
    Serial.println("Content-Length: 15");
    delay(100);
    Serial.println("Content-Type: application/x-www-form-urlencoded");
    delay(100);
    Serial.print("\n\n");

    Serial.print("\n");
    delay(100);
    Serial.print(27); // символ [ESC]
    delay(100);
    Serial.print(69); // символ E

    delay(3000);
    Serial.println("AT+NCLOSEALL");

    delay(100000); // пауза ONE минут
    }

    void init_network (){
    Serial.println("ATC0");
    delay(1000);
    Serial.println("AT+WD");
    delay(1000);
    Serial.println("AT+NDHCP=0");
    delay(1000);
    Serial.println("AT+NSET=10.5.2.111,255.255.255.0,10.5.2.1");
    delay(3000);
    Serial.println("AT+WWPA=passw0rd");
    delay(3000);
    Serial.println("AT+WA=hifly");
    delay(15000);
    }


    Но увы тишина снова... Требуется просто послать ГЕТ запрос. Но без отладка/мониторинга КОМ порта - даже спросить не чего, но не работает увы....

    4. По Космо вай-фай шилду - (снова же пока в тумане) При заливке верхнего скетча - шилд даже НЕ соединятся с сетью, хотя если настроить через WizSmartScript - то он отлично отрабатывает, т.е. подключается к сети! Но если все то-же самое но программно через скеч - НЕТ :(
    Скажите Иван, есть разница как настраивать шилд (в плане TCP настроек, ip итд) ПРОГРАММНО (через друину код, что пока не выходит) или через СмартСкрипт ???

    Уфф! На этом все, спасибо!!!
  • satory said:


    1. avrdude: stk500_getsync(): not in sync: resp=0x00 - получаю такую ошибку в Космо БС.
    Плата выставлена в соответствии (А Duemil 328), с скоростью порта (com) играл - тоже не помогает.
    Скажите как верно заливать скечи в Блэк Космо Стар????



    При загрузке скетча шилд wifi-снимаете?


    satory said:

    2. плата A Uno, при подключении мониторю состоянии КОМ порта, т.е. все вижу, все что в скетче выводится на консоль (прим Serial.println("AT+NCTCP=10.5.2.100,80"); итд ). Как только стыкую УНО с Космо вай-фай шилдом - монитор порта молчит! Понятно, что контакты 0 и 1 теперь не пусты, но как тогда мониторить состояние, когда шилд в ардуине, ведь не понятно что происходит ???!



    Для полноценного мониторинга нужно 2 платы Ардуино.
    1) На wifi-шилде джампера должны быть выставлены в положение MEGA
    2) Вставляете шилд в Ардуино1 (предварительно загрузив в него нужный скетч).
    3) Возьмете Ардуино2, загрузите в него пустой скетч. Соедините Ардуино2 проводами c wifi-шилдом.
    Arduino2 pin0 => wifi-шилд pin1
    Arduino2 pin1 => wifi-шилд pin0
    4) Подключите Ардуино1 и Ардуино2 к компьютеру. Постарайтесь почти одновременно запустить 2 монитора порта или любого другого терминала.
    Терминал, который будет подключен к Ардуино1 будет показывать какие команды пишутся в wifi-шилд, т.е. что идет от микроконтроллера.
    Терминал, который будет подключен к Ардуино2 будет показывать ответы wifi-шилда на команды.

    Остальные ответы в процессе, пока разберитесь с этим.
  • 1 - Да обязательно! Иначе ни как, это Вы уже растолковали!
    Иван спасибо! Далее буду трудится! Благодарю Вас!!!
  • Иван - доброе утро (это у меня), Вам доброго времени!
    Благодарю Вас, сначала - просто обязан сказать спасибо!!! С мониторингом с двумя УНО (как раз у меня две дял тестов) - все здорово, все много понятнее стало! До утра вот отлаживал свой скеч!
    В итоге - с подключением и настройкой wi-fi - полный порядок !!!

    Добрался до отправки GET или POST (НЕ суть важно) запросов. и тут пока сложности.
    А конкретно имеем:

    ATC0
    [OK]

    AT+WD
    [OK]

    AT+NDHCP=0
    [OK]

    AT+NSET=10.5.2.111,255.255.255.0,10.5.2.1
    [OK]

    AT+NCTCP=10.5.2.100,80
    AT+WAUTH=0
    [OK]

    AT+WA=shtangoo
    IP SubNet Gateway
    10.5.2.111: 255.255.255.0: 10.5.2.1
    [OK]

    AT+HTTPCOPEN=10.5.2.100,80
    [ERROR: INVALID INPUT]

    AT+HTTPCSEND=,GET,7,/index.php
    [ERROR: INVALID INPUT]

    GET /tbl/go3_1.php HTTP/1.1
    [ERROR: INVALID INPUT]

    Из логов (мониторинг) - как и говорил (пока тестирую без авторизации сеть) подключаюсь - порядок!
    Но вот дохожу до отправки и все :(
    Ни из примеров не получается Ваших, не по офф докам. Там вообще примера пока на HTTPCOPEN - к примерку не найду ни как...

    Вот мой скеч

    void setup(void)
    {
    Serial.begin(115200);
    delay(100);
    // Serial.println("ATE0");
    delay(100);
    init_network();
    delay(100);
    delay(100);
    }

    void loop(void)
    {

    Serial.println("GET /tbl/go3_1.php HTTP/1.1");
    delay(100);
    // Serial.println("User-Agent: curl/7.19.5 (i486-pc-linux-gnu) libcurl/7.19.5 OpenSSL/0.9.8g zlib/1.2.3.3libidn/1.15");
    // Serial.println("Host: 10.5.2.100");
    delay(3000);
    // Serial.println("AT+NCLOSEALL");
    delay(30000); // пауза 5 минут
    }

    void init_network (){

    Serial.println("ATC0");
    delay(5000);
    Serial.println("AT+WD");
    delay(5000);
    Serial.println("AT+NDHCP=0");
    delay(5000);
    Serial.println("AT+NSET=10.5.2.111,255.255.255.0,10.5.2.1");
    delay(5000);
    Serial.println("AT+NCTCP=10.5.2.100,80");
    delay(5000);
    // Serial.println("AT+WWPA=passw0rd");
    Serial.println("AT+WAUTH=0");
    delay(5000);
    Serial.println("AT+WA=shtangoo");
    delay(7000);
    Serial.println("AT+HTTPCOPEN=10.5.2.100,80");
    delay(5000);
    Serial.println("AT+HTTPCSEND=,GET,7,/index.php");


    И получаю ошибку на все попытки, а точнее:
    Serial.println("GET /tbl/go3_1.php HTTP/1.1");
    Serial.println("AT+HTTPCOPEN=10.5.2.100,80");
    Serial.println("AT+HTTPCSEND=,GET,7,/index.php");

    Уже их и в цикл жизненный и куда только не мастерил (не понятно), но на них ошибка - [ERROR: INVALID INPUT]
    И в логах апача - пусто...
    Иван, прошу Вашего совета, помощи!
  • Вы через терминал проверили команду HTTPCOPEN ?
    Она в вашей версии прошивки проходит?
  • Интересное замечание, из мануалов, ясно что данная команда есть в прошивке "Энтерпрайз" 1.2.0.х.
    Самому интересно стало, спрошу 220ого сегодня. Благодарю!
  • Привет - после праздников Вам! ) Живы здоровы?!)
    Иван - продолжная - да эти комманды в моей прошивке - не работают.
    Сразу вопрос - а прошивка ентерпрайз (1.2) - ее можно как то получить опробовать?
    Стандартное AT-HTTPOPEN даже не отвечает :(
  • Иван можно ли без стандартных этих "ентерпрайзных" команд выполнить просто get ??! ПУТ или то просто самое... Уффф и туту они ентерпрайзы свои )))
  • satory said:

    Сразу вопрос - а прошивка ентерпрайз (1.2) - ее можно как то получить опробовать?


    Попробуйте свежую прошивку, только не перепутайте UART и SPI прошивки. Нужно UART.
    Сейчас они вроде отказались от разделения на энтерпрайз.


    satory said:

    Иван можно ли без стандартных этих "ентерпрайзных" команд выполнить просто get ??!


    Конечно можно. Читайте апноту http://www.wiznet.co.kr/UpLoad_Files/ReferenceFiles/WizFi210_PG_V120E.pdf
    Там есть передачи данных
    image
    Ну или смотрите простейший пример http://jt5.ru/examples/cosmo-wifi-httpdata/

Привет, незнакомец!

Похоже, вы новенький! Чтобы пообщаться с нами, кликните на одну из кнопок ниже :)

Войти с помощью OpenID

В этом теме: