Ошибка компиляции для платы amperka wifi slot
Я пытаюсь подключить ESP8266-01, который у меня был некоторое время, к моей Arduino UNO r3. Использование ESP8266 является новым для меня. Я использовал этот сайт в качестве ссылки.
Мое соединение следующим образом:
Я пытаюсь сделать быстрый тест для подключения к ESP8266
Я получаю эту ошибку:
2 ответа
- Похоже, ошибка, которую вы получаете при попытке собрать для ESP8266 (и похоже, что у вас не установлено ядро ESP8266 в Arduino IDE).
- Ваш код и описание предполагают, что вы на самом деле пытаетесь создать UNO, чтобы UNO могла общаться с ESP. В этом случае вы хотите установить UNO в качестве платы, а не ESP8266.
Другая проблема, но не та, с которой вы столкнулись (ДА), заключается в том, что ваша проводка говорит:
Это действительно пугает меня!:)
Это может быть хорошо, вы упомянули сайт, который я не могу проверить прямо сейчас, но, похоже, вы пытаетесь снизить напряжение с 5 В до 3,3 В с помощью одного резистора. Это кажется очень ненадежным для устройства, которое будет получать сильно изменяющуюся нагрузку (это означает, что ESP может видеть что-то от 5 В до 3,3 В).
О, очень похоже, это:
Кажется, это тоже плохая идея, я предполагаю, что линии данных UNO 5v? ESP ожидает 3.3v, высокие шансы на жарку:)
Вы используете Serial2.begin для Serial.begin, но Arduino Uno R3 имеет только один UART (цифровые выводы 0 и 1)! Напротив, ссылка, на которую вы ссылаетесь, работает с Arduino Mega, которая имеет 4 UART. Таким образом, в этом случае вам нужно определить 2 контакта как SoftwareSerial и включить библиотеку следующим образом:
Это делает цифровой вывод 2 вашего Arduino как другой вывод Rx, а цифровой вывод 3 - как еще один вывод Tx.
И (как уже упоминалось от Cranphin) вы должны проверить свою проводку. Arduino Uno работает с напряжением 5 В, но ESP8266 работает с напряжением 3,3 В (3,0 В - 3,6 В, как вы можете увидеть здесь в документации в техническом описании)!
Итак, что вам нужно сделать:
Вы можете использовать внешний источник питания 3,3 В для вашего ESP8266 или вы можете взять вывод 5 В от Arduino Uno и преобразовать его в 3,3 В (делитель напряжения, LD1117V33, . ). Некоторые люди подключают ESP8266 напрямую к 3,3 В выводу Arduino, но в моем случае это не сработало. Но вы можете попробовать.
И вы должны учитывать, что Arduino отправляет через контакты UART на 5V. Поэтому убедитесь, что вы добавили делитель напряжения (например, 4,7 кОм и 10 кОм) в линию приема ESP8266. ESP8266 отправляет на свою линию Tx напряжение 3,3 В, которое Arduino распознает как логическое ВЫСОКОЕ. Таким образом, нет необходимости в защите.
Вот мое решение проводки:
А ТАКЖЕ:
Вам нужно выбрать правильные настройки в Arduino IDE. Ваша ошибка выглядит так, как будто вы выбрали
Но вам нужно выбрать свой Arduino Uno. Так что иди в Tools -> Board -> Arduino/Genuino Uno и убедитесь, что используете правильный порт.
Эскиз можно загрузить непосредственно в ESP8266, но для этого вам нужно больше проводов, и это не так просто..
Синтаксические ошибки
Первый и наиболее распространенный вариант ошибок компилятора Arduino – несоблюдение синтаксиса. Как правило, такие ошибки достаточно легко находятся и исправляются, ведь Arduino IDE сама даст вам подсказку, стараясь найти и отметить номер строки, в которой обнаружена проблема. Но иногда приходится разгадывать целый квест, анализируя строчки, в которых закралась коварная неточность (например, пропущена фигурная скобка). Тут требуется внимательность и хладнокровие – нужно просто отбросить те участки программы, где ошибок быть не может и начать просматривать код, строчка за строчкой. Главное не паниковать и помнить, что ошибки совершают все, а поиск и решение проблем – это основное, что приходится делать программистам.
Перечислим наиболее часто встречающиеся варианты ошибок компиляции Arduino/Genuino:
Ошибки компиляции плат Arduino Uno
В Arduino IDE можно писать скетчи под разные варианты микроконтроллеров. Очень часто это приводит к тому, что написав код для Arduino Nano, вы пытаетесь его скомпилировать, не указав в меню выбора платы нужное значение. По умолчанию в меню выбрана плата Arduino/Genuino Uno, чтобы скомпилировать скетч для Arduino Nano нужно будет выбрать эту плату. Все дело в том, что при компиляции под конкретную платформу Arduino подгружает необходимые модули и библиотеки. Для каждой платформы эти библиотеки свои. Вполне может оказаться, что в написанном вами коде будут ссылки на переменные и методы, которых просто нет в выбранной конфигурации.
Ошибка exit status 1 при компиляции для плат Uno, Mega и Nano
Ошибки библиотек
Огромное количество ошибок при компиляции для Arduino может быть вызвано неправильно подключенными библиотеками или ошибками внутри самих библиотек. Рассмотрим только некоторые из них:
Ошибки компилятора ардуино
В эту группу входят самые страшные для разработчика ошибки, связанные с нестабильным поведением самого компилятора. В этом случае единого рецепта быть не может. В одних случая нужно попытаться загрузить самую свежую версию компилятора, в других – наоборот, откатиться до более старой, в которой используемая вами библиотека еще работала корректно.
Заказал уже на спаркфане mp3 плэер шилд (microSD + SDHC) + ардуино uno r3.
Хочу сделать эмулятор CD чэйнджера. Сложного ничего нету, основаная загвоздка надо протокол расшифровать блаупунктовской магнитолы. Там вроде простой сериал протокол. Замучу снифер на MAX232, подключу к ноуту через FT232RL Вот что я буду делать
Приветствую! Принимайте в клуб новичка))) После просмотра туториалов в переводе "амперки" нахлынул острый приступ девайсосторения, хотя далеко профан в этом))) решил собрать GSM-сигналку для установки стационарно на даче(газоанализатор+датчик движения+микрофон) с уведомлением по СМС, ну еще может сирену какую от автосигналки, попугать гостей. Удалось подключить через поднятый на Duemilanove 2009 программный serial-порт старенький мобильный телефон - SonyEricsson T290i. Общается ардуина с ним AT-командами. Однако связь односторонняя, т.е. обрабатывать пришедшие на телефон СМС ардуина не может. т.к. телефон не транслирует в порт свои события, зато дать команду на отправку СМС или совершение звонка с ардуины можно с нужным. Знаю есть еще старые Siemens C45 и подобные, которые в порт шлют всё, что у них происходит, но я таких в закромах не нашел, поэтому использовал сониэрикссон.
А теперь вопрос, есть ли в Беларуси специализированные торговые объекты по данной тематике, или хотя бы интернет-ресурсы-магазины. Надо датчиков купить, которые по пару долларов, а заказывать из-за бугра не вариант.
Werth, как минимум озвучить что за датчики, может у кого и есть.
Но и пословицу никто не отменял "За морем телушка - полушка, да рубль перевоз".
Поэтому не важно сколько датчики стоят за бугром.
У меня есть куча всяких датчиков мож есть что надо. Спрашиваите. Давно тут небыл думал все умерло. Сделал себе тахометр и спидометр на ардуино и разобрался в управление парои устроиств через потенциномеры одновременно
Со временем попытаюсь упорядочит тут если надо будет и кинуть проекты .
Насчет датчик и т.п. у меня есть тема в барахолке в которои куча всего + многое можно купить на жданах - я про датчики
И снова привет Хабр. Этот материал является продолжением моей предыдущей статьи — ESP8266 и Arduino, подключение, распиновка, и, должен сказать, что они взаимосвязаны. Я не буду затрагивать темы, которые уже раскрыты.
А сегодня, я поведаю, как же программировать ESP8266 при помощи Arduino IDE, так же прошивать другие прошивки, например NodeMcu… Вообщем, этот материал не ограничивается только одной темой Ардуино.
Тема ESP8266 — довольно таки непростая. Но, если работать с этими Wi-Fi модулями в среде разработки Arduino IDE — порог вхождения опускается до приемлемого для обычного ардуинщика уровня. Да и не только ардуинщика, а любого человека, у которого есть желание сварганить что-то по теме IoT(интернет вещей), причём не затрачивая много времени читая документацию для микросхемы и изучение API для этих модулей.
Данное видео, полностью дублирует материал, представленный в статье ниже.
Ну что же, мы уже умеем подключать ESP8266 и переводить его в режим программирования, теперь давайте перейдём к чему-то более полезному.
Скажу сразу — один раз запрограммировав модуль в среде разработки ардуино, мы сносим родную прошивку, и у нас пропадёт возможность работать с модулем при помощи AT-команд. Лично мне, от этого, не холодно/не жарко, но если кому-то это будет нужно — ближе к концу статьи я покажу, как обратно прошить в модуль родную прошивку, ну или какой-то загручик типа NodeMcu.
Для начала, на офф.сайте качаем последнюю версию Arduino IDE, на данный момент это 1.6.7. Более старые версии типа 1.0.5. не подойдут, потому что банально не имеют нужного функционала, а танцы с бубном нас не интересуют, не так ли?
Запускаем среду разработки и тут же идём в Файл/Настройки:
Вставляем ссылку в поле «Дополнительные ссылки для Менеджера плат:» и жмём «OK».
Данную ссылку я взял на странице проекта Arduino core for ESP8266 WiFi chip.
Потом идём Инструменты/Плата:/Менеджер плат.
Перед нами появится окно менеджера плат, листаем его до самого низа, и если всё сделано правильно мы увидим что-то подобно этому:
Кликаем курсором по надписи "esp8266 by ESP8266 Community" после этого, у нас появилась кнопка «Установка», выбираете нужную версию, я беру последнюю, на сегодняшний день это 2.1.0. и устанавливаю её. Среда разработки закачает нужные ей файлы(около 150 мегабайт) и напротив надписи "esp8266 by ESP8266 Community" появится «INSTALLED» то есть установлено:
Листаем список плат вниз и видим, что в списке у нас появилось много разных ESP, берём «Generic ESP8266 Module»:
Идём в «Инструменты» и выбираем нужный COM порт(у меня это COM32) Arduino или USB UART конвертора, потом ставим Upload Speed:«115200»:
Далее открываем консоль в Arduino IDE, подаём питание на модуль, если всё было сделано правильно, то мы увидим что-то в этом роде:
Выставляем скорость 74880 и «NL & CR» и опять же отключаем и подаём питание и он ответит кое какой отладочной информацией:
Заметьте, 74880 — не основная скорость ESP8266, просто он всего лишь на ней отправляет отладочную информацию. Если модуль ничего не отправляет в консоль, тогда возможно что-то подключили не так как надо.
По умолчанию скорость должна быть 115200, но в отдельных случаях может быть и 9600 и другие… Так что попробуйте подобрать.
После подбора нужной скорости отправляем модулю «AT» и он должен ответить что всё «ОК». Команда «AT+GMR» выводит информацию о прошивке.
Прежде чем начать прошивать ESP8266 в Arduino IDE я советую дочитать статью до конца.
Теперь давайте попробуем прошить ESP8266 через Arduino IDE. Переводим модуль в режим программирования(как это сделать я писал в предыдущей статье).
Давайте зашьём мигалку штатным светодиодом:
Замигал? Значит всё сделано правильно. Откуда я взял что светодиод подключен на первый пин? В предыдущей статье есть картинка с распиновкой разных модулей, и там есть разметка портов, при использовании загрузчика Arduino(пины отмечены розовым цветом).
Мигание светодиодом это конечно хорошо, но надо бы какой-то веб-сервер заделать или начать управлять светодиодом хотя бы при помощи кнопок в браузере, не так ли? Но об этом я расскажу уже как-нибудь в другой раз.
А теперь как прошить назад родную прошивку, да и как вообще прошивать модуль сторонними загрузчиками. Для ESP8266 есть такая программа как NodeMCU Flasher, которая изначально предназначена для прошивки загрузчика NodeMCU. Но как оказалось, она отлично прошивает и другие прошивки.
Я прикреплю к статье архив с данной программой и прошивкой для удобства, но тут всегда можно скачать новую версию NodeMCU Flasher.
В папке «nodemcu-flasher-master» есть 2 папки Win64 и Win32 и в зависимости от того какая разрядность у вашей ОС выбираем нужную. Дальше в папке Release запускаем «ESP8266Flasher.exe» и видим интерфейс программы:
Выбираем нужный COM порт и идём во вкладку «Config», убираем хрестик около «INTERNAL://NODEMCU» и ставим его на один пункт ниже, как на скрине:
(Если захотите прошить загрузчик NodeMCU — убираете хрестик там где его не было, и ставите — где он был, то есть около «INTERNAL://NODEMCU»).
Потом жмём по шестеренке и выбираем где лежит наша прошивка, прошивка как правило в формате *.bin(в прикреплённом архиве это «v0.9.5.2 AT Firmware.bin» которая лежит в основной папке), и так же выбираем «0x00000» как и выше.
Дальше идём во вкладку «Advanced» и меняем там скорость на 115200, именно эта скорость будет основная и модуль будет отзываться по ней на AT-команды в случае соответствующей прошивки.
Возвращаемся опять на вкладку «Operation» переводим модуль в режим программирования и жмём «Flash»:
Всё, модуль начал прошиваться, после перепрошивки не забываем перезагрузить модуль и вуаля, он прошит нужной нам прошивкой.
Проверяем AT-командой «AT+GMR» сделали ли мы всё верно:
Как видите всё нормально прошилось.
By Сергей ПоделкинЦ ака MrПоделкинЦ.
Уже на подходе плата на базе esp32:
Которая значительно круче чем esp8266, так что нас скоро ждёт бум, как мне кажется, темы IoT(интернет вещей).
Читайте также: