Является ли команда AT единственным способом подключения Arduino к esp2866?
Если я программирую Arduino и хочу общаться с Интернетом через esp2866, то могу ли я сделать только AT-команду?
Я часто вижу это в Интернете
void loop() {
valSensor = getSensorData();
String getData = "GET /update?api_key="+ API +"&"+ field +"="+String(valSensor);
sendCommand("AT+CIPMUX=1",5,"OK");
sendCommand("AT+CIPSTART=0,\"TCP\",\""+ HOST +"\","+ PORT,15,"OK");
sendCommand("AT+CIPSEND=0," +String(getData.length()+4),4,">");
esp8266.println(getData);delay(1500);countTrueCommand++;
sendCommand("AT+CIPCLOSE=0",5,"OK");
}
Если я установлю свою плату -> Arduino Uno, я подумал, что могу использовать следующую библиотеку https://arduino-esp8266. readthedocs.io/en/2.7.4_a/esp8266wifi/readme.html
#include <ESP8266WiFi.h>
const char* ssid = "my-ssid";
const char* password = "my-password";
void setup() {
Serial.begin(115200);
// Начнем с подключения к сети WiFi
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Но я получаю
exit status 1
ESP8266WiFi.h: No such file or directory
Похоже, следующая библиотека доступна только при установке параметра Board-> Общий модуль ESP8266 и используется только тогда, когда вы хотите запрограммировать ESP8266 в Arduino IDE? Это правильно?
Итак, в моем вопросе означает ли это, что для связи с Arduino в Интернете я буду отправлять AT-команду и общаться через SoftwareSerial.h?
@Mark Estrada, 👍-1
Обсуждение1 ответ
Лучший ответ:
Я могу сделать только AT-команду?
Нет. AT-команды предоставляются прошивкой AT-команд. Вы можете заменить эту прошивку чем угодно.
Обычно пишут собственное программное обеспечение для ESP8266, которое обеспечивает связь за вас и связь с другими устройствами (включая Arduino) любым подходящим способом.
Во многих случаях вам даже не нужна Arduino, так как ESP8266 может все (у него проблемы с аналоговыми сигналами, так как есть только один слабый вывод АЦП).
Похоже, следующая библиотека доступна только при установке параметра Board-> Общий модуль ESP8266 и используется только тогда, когда вы хотите запрограммировать ESP8266 в Arduino IDE? Это правильно?
Верно. Это на тот случай, если вы пишете собственную прошивку ESP8266 для замены прошивки AT.
Итак, в моем вопросе означает ли это, что для связи с Arduino в Интернете я буду отправлять AT-команду и общаться через SoftwareSerial.h?
Только если вы сохраните прошивку AT на ESP8266. Если честно то прошивка ужасная и все туториалы плохие. Вы должны при первой же возможности научиться программировать ESP8266 напрямую и, возможно, отказаться от Arduino, если только вам не нужно использовать его в качестве прославленного расширителя ввода-вывода.
Большое спасибо. Да вот тут я сильно запутался. Я вижу много результатов поиска Google, подобных этому https://www.instructables.com/id/Using-ESP-01-and-Arduino-UNO/. и похоже, что он передает только AT-команды в ESP2866. Я изучаю это сейчас, поэтому я не могу удалить Arduino из уравнения. Но чтобы удовлетворить мое любопытство, если я не заменю прошивку AT, я смогу использовать только AT-команды, верно?, @Mark Estrada
Также еще один вопрос, пожалуйста, я перешел по следующей ссылке https://learn.adafruit.com/adafruit-huzzah-esp8266-breakout/using-arduino-ide и смог заставить ее работать, но мой ESP8266 не от Adafruit. Я заметил, что после этого AT-команды перестают работать. Значит ли это, что у меня сейчас прошивка https://arduino-esp8266.readthedocs.io/en/2.7.4_a/esp8266wifi/readme.html? Я немного запутался в этой части. Я установил плату ESP в режим начальной загрузки, а затем загрузил flash. После этого мои AT-команды перестают работать, когда я использовал последовательный монитор., @Mark Estrada
AT-прошивка отвечает только на AT-команды. Вот что это такое и что он делает. Если вы хотите использовать что-либо кроме AT-команд, вам придется заменить прошивку AT на прошивку, которая отвечает на команды, которые вы хотите отправить., @Majenko
Да, вы заменили прошивку АТ на свою (адафрутовскую) кастомную прошивку. Вы успешно запрограммировали ESP8266 напрямую., @Majenko
О, хорошо, вот почему он больше не отвечает на мои AT-команды. Только одну последнюю вещь, пожалуйста. Если я сохраню текущую настройку с Arduino и пользовательскую прошивку из https://arduino-esp8266.readthedocs.io/en/2.7.4_a/esp8266wifi/readme.html в своем ESP 8266. Тогда как я могу подключиться через Интернет из моего кода Arduino, так как команда AT больше недоступна. Я не мог найти никаких ссылок Google, чтобы сделать это. Я всегда вижу AT-команды. Я провел 2 дня, читая эту тему для своего проекта. Спасибо вам большое за ваше время., @Mark Estrada
Вы пишете свое собственное программное обеспечение для ESP8266, которое принимает команды через последовательный порт (который вы определяете) и выполняет действия в соответствии с этими командами., @Majenko
Оооооооооооооооооооооооооооооооооооо как логика такая. Я программирую ряд функций в моем ESP-8266, таких как connectToWifi() и в моей функции loop(), которую я наблюдал за сообщениями от Serial. Все сообщения, которые я когда-либо получал от серийного номера, соответствуют функции, которую я буду вызывать. Затем я записываю эти программы в свой ESP. Я возвращаюсь к Arduino, устанавливаю плату на Arduino Uno, и в моем цикле я буду последовательно отправлять сообщение, например connectToWifi(), и мой ESP получит его, вызовет соответствующую функцию и также последовательно вернет его обратно в Arduino Uno. Это шаблон?, @Mark Estrada
Я потратил на это уже два дня и мне очень не нравятся примеры в использовании AT-команды. Однако нет документации, которую я видел, или я мог набирать неправильные ключи поиска, которые обсуждали бы логику определения ваших пользовательских команд., @Mark Estrada
Да, это идея. У меня есть скетч ESP8266 специально для MQTT, который делает такие вещи: https://github.com/MajenkoProjects/MQTTGateway, @Majenko
Смысл определения собственных пользовательских команд в том, что они *ваши* команды. Вы определяете их так, как хотите, и обрабатываете их так, как хотите. Это просто байты, поступающие по серийному номеру., @Majenko
Это действительно мило, приятель. Я так многому научился у вас всего за несколько минут по сравнению с бесчисленными часами, которые я потратил за последние два дня, пробуя все те AT-команды, которые мне на самом деле не нравятся. Большое спасибо, приятель, @Mark Estrada
https://imgflip.com/i/4cihtl ;), @Majenko
Просто из любопытства, почему я не нашел ни одного гугла из того, что вы выложили. Это действительно может помочь многим начинающим программистам. С моей точки зрения, как у новичка, у меня сложилось впечатление, что ESP8266 похож на любые обычные компоненты с библиотекой, которую вы можете вызвать и добавить в свою Arduino с помощью определенного API, а не этих причудливых AT-команд. Во всяком случае, чем вы очень снова., @Mark Estrada
Существует базовое предположение, что вы знаете, что ESP8266 — это просто микроконтроллер, на котором установлена прошивка, предоставляющая AT-команды. Если вы уже не знаете, что поиск информации в Google не так просто., @Majenko
- AT-команда не отвечает на последовательный монитор
- Отправка данных Arduino в MySQL с помощью phpMyAdmin и XAMPP на Windows10
- Arduino выводит значения мусора на serial monitor с ESP8266
- ошибка: espcomm_upload_mem failed при загрузке скетча
- фатальная ошибка ESP8266WiFi.h: Такого файла или каталога нет
- Как подключить Wi-Fi Shield ESP-12E-ESP8266-UART-WIFI-Wireless-Shield к Arduino
- Получить данные с сайта с помощью ESP8266 с помощью AT-команд
- Захват изображений с OV7670 (без FIFO) с использованием Arduino Uno?
вы можете использовать библиотеку, которая имеет хороший стандартный сетевой интерфейс Arduino поверх AT-команд. Библиотека WiFiEsp для старой прошивки AT или мой WiFiEspAT для AT 1.7+ https://github.com/jandrassy/WiFiEspAT, @Juraj