Проблема Shield:FAIL в ESP8266-01 с Arduino UNO

Я работаю над проектом системы безопасности, в рамках которого я должен получать электронное письмо, если датчик PIR обнаруживает присутствие человека. Я использовал Arduino UNO, WiFi-модуль ESP8266-01 и ИК-датчик.

Источник питания: Arduino питается через USB-подключение настольного компьютера, а ESP8266-01 питается через контакт 3,3 В Arduino UNO, и у меня не возникло никаких проблем с этим подключением 3,3 В Arduino.

Соединение между Arduino UNO и ESP8266-01 выглядит следующим образом:

Arduino UNO-ESP8266-01

Рецепт - Рецепт

Текст - Текст

3,3 В - CH_PD и VCC

ЗЕМЛЯ - ЗЕМЛЯ

GPIO0 и GPIO2 оставлены открытыми.

После успешной загрузки кода «BareMinimum», который можно найти в разделе «Файл»>«Примеры»>«Основы» среды Arduino IDE, ESP8266 может правильно взаимодействовать, т.е. подключаться к сети Wi-Fi или выступать в качестве точки доступа через

ПОСЛЕДОВАТЕЛЬНЫЙ МОНИТОР. Когда я набираю AT+GMR в последовательном мониторе Arduino IDE v1.6.8, ESP8266-01 отображает версию прошивки «0018000902-AI03». Затем я создал учетную запись на https://temboo.com/ и использовал хореографию «SendEmail», которая находится в разделе «Google>Gmail>SendEmail». Я выбрал опцию «Arduino» на одной вкладке и опцию «Arduino Wifi» на другой вкладке. Затем я ввел необходимые данные, включая «Пароль приложения», и мне удалось успешно запустить хореографию.

Проблема:

Мне удалось успешно загрузить на мою плату Arduino UNO код, сгенерированный Temboo. Но после загрузки кода при открытии окна SERIAL MONITOR в Arduino IDE отображается сообщение «Shield:FAIL». Я больше не могу общаться с ESP8266. Но если я снова загружу код BareMinimum, то ESP8266 работает нормально.

После подключения Rx-Tx и Tx-Rx Arduino UNO-ESP8266-01 последовательный монитор по-прежнему отображает «Shield:FAIL».

Я новичок и не очень разбираюсь в программировании Arduino, хотя некоторые основы C понятны. Пожалуйста, если кто-то может мне помочь, я буду очень благодарен.

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

#include <SPI.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <Temboo.h>
#include "TembooAccount.h" // Содержит информацию об учетной записи Temboo

WiFiClient client;

// Количество раз, которое будет выполнено действие, если условие выполнено
// Мы ограничиваем это, чтобы вы не использовали все вызовы Temboo во время тестирования
int maxCalls = 10;

// Сколько раз этот хореограф был запущен в этом скетче
int calls = 0;

int inputPin = A0;

void setup() {
  Serial.begin(9600);

  // Для отладки дождитесь подключения последовательной консоли
  delay(4000);
  while(!Serial);

  int wifiStatus = WL_IDLE_STATUS;

  // Определить наличие WiFi Shield
  Serial.print("\n\nShield:");
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("FAIL");

    // Если нет WiFi-щита, остановитесь здесь
    while(true);
  }

  Serial.println("OK");

  // Попробуйте подключиться к локальной сети WiFi
  while(wifiStatus != WL_CONNECTED) {
    Serial.print("WiFi:");
    wifiStatus = WiFi.begin(WIFI_SSID, WPA_PASSWORD);

    if (wifiStatus == WL_CONNECTED) {
      Serial.println("OK");
    } else {
      Serial.println("FAIL");
    }
    delay(5000);
  }

  // Инициализация пинов
  pinMode(inputPin, INPUT);

  Serial.println("Setup complete.\n");
}

void loop() {
  int sensorValue = analogRead(inputPin);
  Serial.println("Sensor: " + String(sensorValue));

  if (sensorValue >= 2) {
    if (calls < maxCalls) {
      Serial.println("\nTriggered! Calling SendEmail Choreo...");
      runSendEmail(sensorValue);
      calls++;
    } else {
      Serial.println("\nTriggered! Skipping to save Temboo calls. Adjust      maxCalls as required.");
    }
  }
  delay(250);
}

void runSendEmail(int sensorValue) {
  TembooChoreo SendEmailChoreo(client);

  // Установить учетные данные Temboo
  SendEmailChoreo.setAccountName(TEMBOO_ACCOUNT);
  SendEmailChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
  SendEmailChoreo.setAppKey(TEMBOO_APP_KEY);

  // Установить профиль для использования при выполнении
  SendEmailChoreo.setProfile("JigarFaria");
  // Определите хореографию для запуска
  SendEmailChoreo.setChoreo("/Library/Google/Gmail/SendEmail");

  // Запустить хореографию
  unsigned int returnCode = SendEmailChoreo.run();

  // Прочитать и распечатать сообщение об ошибке
  while (SendEmailChoreo.available()) {
    char c = SendEmailChoreo.read();
    Serial.print(c);
  }
Serial.println();
  SendEmailChoreo.close();
}

, 👍3