Проблема 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();
}
@Jigar Faria, 👍3
0
- Как подключить Wi-Fi Shield ESP-12E-ESP8266-UART-WIFI-Wireless-Shield к Arduino
- Как подключить ESP8266 с помощью адаптера ESP-01 к Arduino Uno?
- Как установить связь между веб-камерой и Arduino UNO и получать прямую трансляцию на мобильном телефоне с помощью ESP8266?
- ESP8266 - Один сервер, отправляющий данные нескольким клиентам
- Могу ли я использовать выход 3,3 В Arduino напрямую к esp8266?
- Отправка данных из ESP8266 в PHP
- Чтение данных из Google Таблиц с помощью Nodemcu
- Ошибка TIMEOUT при подключении ESP8266 к Arduino Uno