Данные 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.

Надеюсь, кто-нибудь меня просветит.. спасибо

, 👍1

Обсуждение

Вы решили проблему? У меня тоже такая проблема, можешь поделиться?, @Tsu Han

Вы нашли решение, я тоже его жду?, @Mai Ehab

Сбросьте Arduino Uno и просто запрограммируйте ESP8266., @Avamander


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!

Если хотите, я могу поделиться всем списком видео, которые показались мне полезными!

,