Данные DHT11 из Arduino UNO в Firebase через ESP8266
Привет, всем доброго дня. У меня есть проект, в котором мне нужно отправить данные датчика DHT11 в базу данных Firebase, используя модуль Wi-Fi Arduino UNO и Esp8266 esp-01. Оба они должны работать вместе для отправки данных.
Код Arduino:
#include <dht.h>
dht DHT;
#define DHT11_PIN 7
void setup() {
// поместите сюда свой код установки для однократного запуска:
Serial.begin(9600);
}
void loop() {
// поместите сюда свой основной код для многократного запуска:
int chk = DHT.read11(DHT11_PIN);
Serial.print("Temperature = ");
Serial.println(DHT.temperature);
Serial.print("Humidity = ");
Serial.println(DHT.humidity);
delay(1000);
}
Мой код Arduino работает нормально. Теперь наступает момент, когда мне нужно запрограммировать ESP8266, и я действительно не понимаю, как передавать данные в модуль Wi-Fi и отправлять их в Firebase. Я пытался написать кое-что, и это мое
Код ESP8266:
#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>
#include <DHT.h>
#define FIREBASE_HOST "test.firebaseio.com"
#define FIREBASE_AUTH "authcode"
#define WIFI_SSID "mywifi"
#define WIFI_PASSWORD "12345"
#define DHTTYPE DHT11
#define DHTPIN 7
DHT dht(DHTPIN, DHTTYPE);
float temp_f;
unsigned long previousMillis = 0;
const long interval = 2300;
void setup() {
Serial.begin(9600);
dht.begin();
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("connecting");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println();
Serial.print("connected: ");
Serial.println(WiFi.localIP());
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
}
void loop() {
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
delay(50);
Firebase.setFloat("temp",t);
Firebase.setFloat("hum",h);
delay(1000);
}
Я не хочу, чтобы мой esp8266 работал автономно. Я хотел, чтобы данные поступали от Arduino, но почему-то я не знаю, как получить данные от Arduino в esp8266.
Надеюсь, кто-нибудь меня просветит.. спасибо
@Duckbenok, 👍1
Обсуждение1 ответ
Прежде всего, библиотека FirebaseArduino.h предназначена для самого ESP8266, а не для Arduino UNO.
Написанный вами код не будет работать, поскольку вы передаете UNO такие инструкции, как Firebase.setFloat("temp",t);
. Он не скомпилируется.
Что вам нужно сделать, так это установить ESP8266-01 в качестве основной платы и позволить UNO передавать данные по последовательному программному обеспечению.
ESP8266-01 соберет эти данные и передаст их через Интернет.
ВЫ НЕ МОЖЕТЕ ИСПОЛЬЗОВАТЬ FirebaseArduino.h ДЛЯ ARDUINO UNO! Это для ESP8266.
Во всех видеороликах YouTube показано, как программировать для NodeMCU esp8266-12E. Сделайте это для ESP-01 и обратитесь к Arduino для получения данных (преобразование рассчитанных данных в строку поможет уменьшить проблемы). Получите данные в виде строки из UNO и передайте их с помощью ESP-01!
Если хотите, я могу поделиться всем списком видео, которые показались мне полезными!
- Датчик температуры и влажности DHT11 Код
- Отправка данных о температуре и почве с использованием esp8266-01 через software serial
- 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
Вы решили проблему? У меня тоже такая проблема, можешь поделиться?, @Tsu Han
Вы нашли решение, я тоже его жду?, @Mai Ehab
Сбросьте Arduino Uno и просто запрограммируйте ESP8266., @Avamander