Ошибка TIMEOUT при подключении ESP8266 к Arduino Uno

Я пытаюсь настроить Arduino Uno для получения информации из Интернета, но мне очень трудно найти подходящие руководства в Интернете. Я использую Arduino Uno и ESP8266-01. Я пытаюсь использовать пример "WebClientRepeating" из этой библиотеки: https://github.com/bportaluri/WiFiEsp

Вот код, который я запускаю (обновил SSID и пароль):

/*
 WiFiEsp example: WebClientRepeating

 This sketch connects to a web server and makes an HTTP request
 using an Arduino ESP8266 module.
 It repeats the HTTP call each 10 seconds.

 For more details see: http://yaab-arduino.blogspot.com/p/wifiedp.html.
*/

#include "WiFiEsp.h"

// Эмулируем Serial1 на контактах 6/7, если они отсутствуют
#ifndef HAVE_HWSERIAL1
#include "SoftwareSerial.h"
SoftwareSerial Serial1(6,7); // прием, передача
#endif

char ssid[] = "MY-SSID";            // SSID вашей сети (имя)
char pass[] = "MY-PASSWORD";        // ваш сетевой пароль
int status = WL_IDLE_STATUS;     // статус радио Wi-Fi

char server[] = "arduino.cc";

unsigned long lastConnectionTime = 0;         // последний раз, когда вы подключались к серверу, в миллисекундах
const unsigned long postingInterval = 10000L; // задержка между обновлениями в миллисекундах

// Инициализируем клиентский объект Ethernet
WiFiEspClient client;

void setup()
{
  // инициализируем серийный номер для отладки
  Serial.begin(115200);
  // инициализируем серийный номер для модуля ESP
  Serial1.begin(9600);
  // инициализируем модуль ESP
  WiFi.init(&Serial1);

  // проверяем наличие щита
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
    // не продолжать
    while (true);
  }

  // попытка подключения к сети Wi-Fi
  while ( status != WL_CONNECTED) {
    Serial.print("Attempting to connect to WPA SSID: ");
    Serial.println(ssid);
    // Подключиться к сети WPA/WPA2
    status = WiFi.begin(ssid, pass);
  }

  Serial.println("You're connected to the network");

  printWifiStatus();
}

void loop()
{
  // если есть входящие данные из сетевого соединения, отправьте их через последовательный порт
  // это только для целей отладки
  while (client.available()) {
    char c = client.read();
    Serial.write(c);
  }

  // если с момента вашего последнего подключения прошло 10 секунд,
  // затем снова подключиться и отправить данные
  if (millis() - lastConnectionTime > postingInterval) {
    httpRequest();
  }
}

// этот метод устанавливает HTTP-соединение с сервером
void httpRequest()
{
  Serial.println();

  // закрыть любое соединение перед отправкой нового запроса
  // это освободит сокет на шилде WiFi
  client.stop();

  // если есть успешное соединение
  if (client.connect(server, 80)) {
    Serial.println("Connecting...");

    // отправляем HTTP-запрос PUT
    client.println(F("GET /asciilogo.txt HTTP/1.1"));
    client.println(F("Host: arduino.cc"));
    client.println("Connection: close");
    client.println();

    // отмечаем время установления соединения
    lastConnectionTime = millis();
  }
  else {
    // если не удалось установить соединение
    Serial.println("Connection failed");
  }
}


void printWifiStatus()
{
  // вывести SSID сети, к которой вы подключены
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // напечатать IP-адрес вашего WiFi-экрана
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

  // печатаем полученный уровень сигнала
  long rssi = WiFi.RSSI();
  Serial.print("Signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
}

Моя проводка выглядит следующим образом:

  • ESP8266 RX — Uno, контакт 7
  • ESP8266 TX — Uno, контакт 6
  • ESP8266 VCC — источник питания 3,3 В (не от Uno)
  • Заземление ESP8266 — заземление Uno
  • ESP8266 CH_PD — источник питания 3,3 В (не от Uno)

Я также соединил GND источника питания 3,3 В с другими GND.

Когда я запускаю пример WebClientRepeating, мой последовательный вывод говорит:

11:05:04.764 -> [WiFiEsp] Initializing ESP module
11:05:05.760 -> [WiFiEsp] >>> TIMEOUT >>>
11:05:07.785 -> [WiFiEsp] >>> TIMEOUT >>>
11:05:09.758 -> [WiFiEsp] >>> TIMEOUT >>>
11:05:11.780 -> [WiFiEsp] >>> TIMEOUT >>>
11:05:13.803 -> [WiFiEsp] >>> TIMEOUT >>>
11:05:14.794 -> [WiFiEsp] Cannot initialize ESP module
11:05:20.794 -> [WiFiEsp] >>> TIMEOUT >>>
11:05:20.794 -> [WiFiEsp] No tag found
11:05:20.830 -> WiFi shield not present

В учебнике указано, что он использует «щит ESP WiFi», но я использую только карту ESP8266 — может ли это быть частью проблемы? Если это проблема, есть ли какие-нибудь простые руководства о том, как подключить Arduino Uno к Интернету для чтения информации? Меня расстраивает отсутствие хорошей документации, и я был бы очень признателен за помощь.

, 👍2

Обсуждение

Это не учебник. Это библиотека. Какой код вы на самом деле используете? И как именно вы подключили свой ESP-01?, @Majenko

Спасибо, я обновил публикацию, чтобы включить эту информацию, @garson

Итак... вы подключили ESP-01 к контактам 0 и 1, а не к контактам 6 и 7, как указано в вашем скетче?, @Majenko

О, извините, нет, это было неправильно, я подключил к 6 и 7, @garson

Существует несколько различных версий прошивки AT для ESP-01. И все они используют разные скорости передачи данных. Вполне может быть, что у вас он со скоростью 115200 бод, а не 9600 бод. 115200 бод плохо работает с SoftwareSerial, поэтому вам придется изменить скорость передачи на ESP-01 на 9600 — однако то, как вы это сделаете, зависит от версии прошивки, а некоторые версии, как известно, совершают самоубийство при попытке изменение скорости передачи данных. Вы должны подтвердить скорость передачи данных, подключив ESP-01 напрямую к компьютеру с помощью адаптера USB-UART., @Majenko

Хорошо, да, я думаю, что мой ESP 115200. Я смог полностью пройти этот урок, и он использует 115200: http://www.teomaragakis.com/hardware/electronics/how-to-connect-an-esp8266-to -ан-ардуино-уно/. Это так расстраивает, лол., @garson


1 ответ


Лучший ответ:

2

Это означает, что ваш ESP8266 не обнаружен

Поскольку вы подключаете RX и TX (6 и 7) к вторичному контакту. Используйте стандартный вывод RX TX для решения проблемы

,