UNO + WiFi R3 ATmega328P + ESP8266 (32 МБ памяти) - как с ним бороться?

Тема в разделе "ESP8266, ESP32", создана пользователем galemus, 15 май 2018.

  1. galemus

    galemus Нерд

  2. galemus

    galemus Нерд

    Задача стоит
    в подключении к точке доступа по WIFI и передаче в Mysql базу(находиться на компе в локальной сети подключена тойже точке) данных с датчиков.

    Какой скейтч надо залить в ESP8266, что бы хотя бы соединиться к роутеру???
     
    Последнее редактирование: 15 май 2018
  3. Colto

    Colto Нерд

    galemus,
    вопрос на вопрос: Что Вы имеете в виду, когда говорите о перепрошивке модуля ESP8266 на этой плате? Вы хотите изменить прошивку производителя на какую-то другую или Вы хотите записать свой скетч в модуль?
     
  4. Airbus

    Airbus Радиохулиган Модератор

    Полагаю модуль esp управляется АТ командами через Serial?
     
  5. galemus

    galemus Нерд

    вы правы записать скетч и как правельно настроить Arduino ide???
     
  6. Colto

    Colto Нерд

    Тот скетч от производителя платы RobotDyb, который приводил ИгорьК в теме Проблемы с ESP8266 в UNO, вообще какая-то ахинея. Китайцы пока сами не поняли этот скетч для какого модуля: для UNO или для ESP? :)
    Два модуля обмениваются строками данных через один и тот же Serial. Предположим UNO пишет в Serial какую-то строку командой
    Serial.println("тестовая строка");
    а ESP8266 ожидает появление в Serial новых данных логическим методом Serial.available() и когда данные появились, просто читает их с помощью Serial.read().
    Нужно только правильно выставить переключатели на модуле.
     
    Последнее редактирование: 15 май 2018
    ИгорьК нравится это.
  7. ИгорьК

    ИгорьК Гуру

    [​IMG]
     
    SergeiL нравится это.
  8. Colto

    Colto Нерд

    Тут подробная и главное рабочая инструкция как настроить среду Arduino IDE для работы с ESP8266/ Читать и выполнять всё до пункта 7.
    http://ksm.khnu.km.ua/blog/index/7

    Пример скетча, который там приводят, на мой взгляд достаточно сложный для того, чтобы опробовать работу с платой и понять работает ли он вообще или нет. В качестве примеров скетчей я бы посоветовал начать отсюда, прямо с первого шага и далее по степени усложнения:
    http://esp8266-arduinoide.ru/step1-wifi/
    Для того, чтобы загрузить и потом выполнить скетч на модуле ESP8266, внедренном на одну плату с UNO, нужно выставлять переключатели на плате в определенном положении. Вот эти переключатели:
    [​IMG]

    Всего их восемь, но используются только первые семь. Изначально ставим все в OFF.
    Среду уже настроили согласно первой ссылке, скетч загрузили по второй ссылке и проверили, что он компилируется.
    Подключаем плату USB-кабелем к компьютеру. Если драйвер для CH340 уже установлен, в диспетчере устройств сразу увидим подключение USB-SERIAL CH340 к свободному COM-порту.
    В настройках среды Arduino IDE Инструменты -> Порт выбираем тот COM-порт, к которому подключилась плата.
    Теперь разберемся с переключателями. Поскольку на плате модулей у нас два (UNO и ESP), а плата подключена к одному COM-порту компьютера, нам нужно как-то разграничить какой именно модуль мы хотим в данный момент видеть в терминале COM-порта компьютера, предположим для отладки программы. Чтобы подключить к COM-порту (другими словами к USB компьютера) модуль ESP8266 (и соответственно видеть обмен данными с ним в терминале на вкладке Инструменты -> Монитор порта) нам нужно поставить в положение ON тумблеры 5 и 6. Они помечены на плате слева от переключателей в Вашем случае надписью "USB -> ESP". У моей платы более старый релиз, поэтому эти два вывода были помечены надписью USB+ESP, что вводило в заблуждение. В таком положении переключателей Вы будете видеть в окне Монитора порта данные, которые выдает модуль ESP. Это не означает, что второй модуль платы (т.е. модуль UNO), в этот момент перестанет исполнять загруженный в него скетч. Он будет продолжать работать, просто все, что он выдает в Serial, Вы видеть не сможете по той причине, что он отключен от USB. Чтобы подключить его к USB и получить возможность мониторить, нужно тумблеры 5 и 6 вернуть в положение OFF, а тумберы 3 и 4 выставить в ON. Рядом с тумблерами 3 и 4 надпись "USB -> MCU". Теперь ESP отключен от USB, а модуль UNO подключен. В таком же положении тумблеров (3 и 4 - ON, все остальные OFF) мы можем залить в UNO любой скетч, написанный для модуля UNO. При этом в среде IDE нужно будет выбрать в разделе Инструменты -> Плата: модуль Arduino UNO.

    А вот чтобы загружать скетчи в ESP8266 не достаточно выставить в ON тумблеры 5 и 6. Также в ON нужно поставить тумблер 7. Он подписан "GND-GPIO0". Если Вы раньше имели дело с обособленным модулем ESP8266, то должны помнить, чтобы залить скетч нужно было притянуть вывод GPIO0 к земле. Этот переключатель делает то же самое. Итак, установили 5, 6 и 7 в ON, все остальные в OFF. Нажали на плате кнопку MCU RESET (у меня без нажатия ресета модуль не хотел программироваться). Выбрали в IDE согласно инструкции приведенной мной в первой ссылке в пункте Инструменты -> Плата: модуль Generic ESP8266 Module. После этого загружаем скетч в модуль ESP, переводим тумблер 7 в положение OFF, еще раз нажимаем красную кнопку MCU RESET и смотрим результаты работы в Мониторе порта.

    Расскажу еще для чего нужны тумблеры 1 и 2 (помечены на картинке почему-то MUC -> ESP... китайцы :confused:... вообще наверное должно быть MCU->ESP, на моей плате какая-то вообще кривая надпись, но если долго присматриваться, вероятно это MCU+WIFI). Если тублеры 1 и 2 стоят в OFF, то два модуля работают совершенно независимо друг от друга, то есть их Serial не связаны. Если поставить тумблеры 1 и 2 в ON, то у можно передавать данные между ними. То есть, этим переключателем соединяются TX UNO <-> RX ESP и RX UNO <-> TX ESP, ну и по общему питанию все что нужно. Другими словами, если Вы установили 1 и 2 в ON, то всё, что выведете в одном модуле с помощью Serial.println() сможете прочитать в другом модуле с помощью Serial.read().

    Действуйте! ;)
     
    arkadyf нравится это.
  9. Colto

    Colto Нерд

    Уважаемый ИгорьК! Вы видимо витали в облаках от осознания собственного величия и уровня профессионализма, поэтому не заметили, что процитировали один вопрос, и мой ответ на совершенно иной вопрос другого участника форума. Возвращайтесь скорее к нам на грешную землю и прекратите читать форум по диагонали. ;)
     
    ИгорьК нравится это.
  10. Colto

    Colto Нерд

    Нет, мне не завидно. Я уже объяснял - мне просто не нравится стиль общения, исповедуемый Вами на форуме. Хотя он и не противоречит установленным правилам. Сам я исхожу из следующих принципов:
    1. Человек не может всё знать. Поэтому что-то не знать не зазорно.
    2. Если я что-то толком не понимаю, не стану давать советы вообще, или стану давать советы с примечанием "Сам точно не знаю, но возможно так".
    3. По стилю и уровню задаваемого вопроса всегда можно почувствовать уровень подготовки задающего вопрос. Считаю, что отвечать на вопрос "как вычислить в треугольнике с прямым углом сторону, лежащую против прямого угла?" в стиле "Квадрат гипотенузы есть сумма квадратов катетов треугольника. Из этого исходи", неэтично.
     
  11. Colto

    Colto Нерд

    Если бы Вы общались с китайцами в своей жизни столько, сколько общался с ними я, то усвоили бы одну простую истину: Они не способны написать текст из пары десятков слов, чтобы не сделать в нем 2-3 ошибки или описки. Причем речь не о переписке или сообщениях на форуме. Речь о договорах, документах. Вот на плате даже трафарет для серийного производства не смогли вычитать, чтобы не вписать MUC вместо MCU. У меня есть даже своя теория на этот счет, почему так. Дело в том, что китайцы в отличие от большинства остальных народностей пишут иероглифами, а не буквами. Они видят слово сразу по образу этого слова. А все остальные складывают слова из букв. Если в иероглифе какая-то палочка чуть не под тем углом, это не делает этот иероглиф менее узнаваемым. А вот слово из букв при перемене всего одной буквы может поменять смысл на противоположный. Я думаю, именно по этой причине они так часто допускают описки даже в тех случаях, когда на наш взгляд описки не допустимы.
     
  12. Airbus

    Airbus Радиохулиган Модератор

    Ну вот красиво и понятно все описал!Правда у топикстартера еще больше вопросов возникнет но об этом позже.А вот хамить не надо это Вам чести не делает
     
    Последнее редактирование: 15 май 2018
  13. ИгорьК

    ИгорьК Гуру

    Он же не топикстартеру отвечает.
     
  14. Colto

    Colto Нерд

    А кому? :eek:
     
  15. galemus

    galemus Нерд

    #include <ESP8266WiFi.h>
    #include <WiFiClient.h>

    void setup()
    {
    WiFi.disconnect(true);
    delay(1000);
    WiFi.mode(WIFI_STA);
    WiFi.begin("SID", "888888");
    WiFiClient client;
    Serial.begin(115200);
    Serial.println();
    Serial.println("Starting setup");
    Serial.print("Scan start ... ");
    Serial.print("Connecting"); // "Подключение"
    }
    void loop() {

    // while (WiFi.status() != WL_CONNECTED)
    // {
    // delay(5000);
    // Serial.print(".");
    // }
    delay(5000);
    Serial.println();
    Serial.print("Connected, IP address: ");
    Serial.println(WiFi.localIP());
    WiFi.printDiag(Serial);
    }


    Не пойму: в терменале вижу что есть апишник 192.168.10.106, а админке роутора в списке dhcl клиентов нет его.
     
  16. Colto

    Colto Нерд

    Ваш код загрузил в свою плату в модуль ESP, код рабочий. После запуска у меня в роутере отображается ESP в виде клиента с присвоенным IP-адресом.
     
  17. alex78

    alex78 Нуб

    Добрый день уважаемый Colto.
    Вопросы наверное к вам, так как вижу у вас есть понимание по вышеуказанной плате а у меня к сожалению не совсем. Постараюсь кратко и по порядку.

    1. Есть ли на ESP8266 стандартная прошивка с AT командами что бы подключив переключатель 1 и 2 в положение "ON", мы получили обычную ардуинку с wifi шилдом?
    Пытался вводить AT команды с ARDUINO IDE подключенный к ESP c включателями 5,6, и 5,6,7 в положении "ON" для того что бы удостовериться что прошивка есть и общение ардуино и esp в режиме модема возможно. Плата молчит. Если выставить скорость передачи Монитора последовательного соединения 74880 бод и нажать кнопку Reset, то плата выдает на монитор какую то отладочную информацию.


    2. Какая именно ESP8266 установлена на этой плате?(в природе их много, от 1й самой простой версии до 12й и nodmcu и Wemos)

    3. Для чего нужна кнопка ESP reboot? Нажимая вышеуказанную кнопку, ничего не происходит.

    Заранее благодарен.

     
  18. alex78

    alex78 Нуб

    Еще один вопрос.
    Если стандартной прошивки нет, то каким образом ее зашить на данную плату используя МАК?

    Еще раз спасибо.
     
  19. Gru

    Gru Нуб

    Добрый день!
    Есть сабж. Куплен на Ali. Подключен к COM6 с рабочим драйвером CH340. Переключатели на сабже: 3,4 вкл, остальные - выкл. В IDE выставлена плата Uno. При прошивке любого скетча выдает как у многих:
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x25

    Помогает частое нажатие на ресет (красная кнопка) - после нескольких нажатий скетч загружается. Есть ли способ загружать скетчи без "топтания" ресета? Может, какие-то настройки в IDE покрутить?

    Ниже привожу полный лог успешной загрузки:

    avrdude: Version 6.3-20190619
    Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
    Copyright (c) 2007-2014 Joerg Wunsch

    System wide configuration file is "C:\Users\iar73\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"

    Using Port : COM6
    Using Programmer : arduino
    Overriding Baud Rate : 115200
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xf5
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xf5
    AVR Part : ATmega328P
    Chip Erase delay : 9000 us
    PAGEL : PD7
    BS2 : PC2
    RESET disposition : dedicated
    RETRY pulse : SCK
    serial program mode : yes
    parallel program mode : yes
    Timeout : 200
    StabDelay : 100
    CmdexeDelay : 25
    SyncLoops : 32
    ByteDelay : 0
    PollIndex : 3
    PollValue : 0x53
    Memory Detail :

    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
    eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
    flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
    lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
    signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

    Programmer Type : Arduino
    Description : Arduino
    Hardware Version: 3
    Firmware Version: 4.4
    Vtarget : 0.3 V
    Varef : 0.3 V
    Oscillator : 28.800 kHz
    SCK period : 3.3 us

    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.00s

    avrdude: Device signature = 0x1e950f (probably m328p)
    avrdude: reading input file "C:\Users\iar73\AppData\Local\Temp\arduino-sketch-49D9A963B07C591EAF37320B9BA687EE/BlinkNew.ino.hex"
    avrdude: writing flash (954 bytes):

    Writing | ################################################## | 100% 0.16s

    avrdude: 954 bytes of flash written
    avrdude: verifying flash memory against C:\Users\iar73\AppData\Local\Temp\arduino-sketch-49D9A963B07C591EAF37320B9BA687EE/BlinkNew.ino.hex:
    avrdude: load data flash data from input file C:\Users\iar73\AppData\Local\Temp\arduino-sketch-49D9A963B07C591EAF37320B9BA687EE/BlinkNew.ino.hex:
    avrdude: input file C:\Users\iar73\AppData\Local\Temp\arduino-sketch-49D9A963B07C591EAF37320B9BA687EE/BlinkNew.ino.hex contains 954 bytes
    avrdude: reading on-chip flash data:

    Reading | ################################################## | 100% 0.12s

    avrdude: verifying ...
    avrdude: 954 bytes of flash verified

    avrdude done. Thank you.


    --------------------------
    upload complete.
     
  20. Рокки1945

    Рокки1945 Гуру

    А зачем Вы УНО прошиваете через усб-преобразователь?
    Там же всё намного проще - этот преобразователь уже предусмотрен на плате ардуино-уно.:D