Здравствуйте Добрый день всем. У меня есть проект, в котором мне нужно отправить данные датчика DHT11 в базу данных Firebase, используя Arduino UNO и модуль Esp8266 esp-01 wifi. Оба они должны работать вместе для отправки данных.
Код Arduino:
#include <dht.h>
dht DHT;
#define DHT11_PIN 7
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
int chk = DHT.read11(DHT11_PIN);
Serial.print("Temperature = ");
Serial.println(DHT.temperature);
Serial.print("Humidity = ");
Serial.println(DHT.humidity);
delay(1000);
}
Мой код arduino работает нормально. Теперь начинается часть, где мне нужно запрограммировать ESP8266, и я действительно запутался, как передать данные на модуль wifi и отправить их на 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.
Надеюсь, кто-нибудь сможет меня просветить. спасибо
Во-первых, библиотека FirebaseArduino.h предназначена для самого ESP8266, а не для Arduino UNO.
Код, который вы написали, не будет работать, поскольку вы даете инструкции типа Firebase.setFloat("temp",t);
для UNO. Она не будет компилироваться.
Что вам следует сделать, так это установить ESP8266-01 в качестве основной платы и позволить UNO передавать данные программным последовательным способом.
ESP8266-01 будет перехватывать эти данные и передавать их через Интернет.
ВЫ НЕ МОЖЕТЕ использовать FirebaseArduino.h для ARDUINO UNO! Он предназначен для ESP8266.
Все видео на YouTube покажут вам, как кодировать для NodeMCU esp8266-12E. Сделайте это для ESP-01 и общайтесь с Arduino для получения данных (преобразование данных в строку поможет уменьшить количество проблем). Получите данные в виде строки от UNO и передайте их с помощью ESP-01!
Если хотите, я могу поделиться всем списком видео, которые я нашел полезными!