Как отправить данные с модуля Wi-Fi esp-01 на arduino

L1-это значение, которое я получу из базы данных firebase, но теперь я хочу отправить значение, полученное в базе данных в реальном времени, в arduino на светодиод, как решить? есть какие-нибудь предложения? это означает, что когда arduino получит значение 1 от firebase, индикатор загорится

Код ESP8266 :

#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>

// Set these to run 
#define FIREBASE_HOST ""
#define FIREBASE_AUTH ""
#define WIFI_SSID "Home "
#define WIFI_PASSWORD ""

int value1;

void setup() {
  //Initializes the serial connection at 9600 get sensor data from arduino.
  Serial.begin(9600);
   
  delay(1000);
  
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  while (WiFi.status() != WL_CONNECTED) 
  {
    delay(500);  
  }

  Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); 
  Firebase.setInt("L1",0);  
}

void loop() 
{
  while(Serial.available())
  { 
        value1 =  Firebase.getString("L1").toInt();  
  }
  
  delay(1000);
}

Код Arduino:

#define LED 13;

int value1;

void setup()
{
  pinMode(LED,OUTPUT);
  Serial.begin();
}

void loop()
{
  if (value1 == 1)
  {
     digitalWrite(LED, HIGH);
  }
}

, 👍1

Обсуждение

см. Основные примеры в меню Примеры IDE, @Juraj

Кого из них я должен увидеть?, @Anohana

все они .... подумайте об этом в своем коде " каково будет состояние светодиода, когда значение 1 не равно 1?`, @jsotola

если значение не равно 1, индикатор погаснет, @Anohana


2 ответа


0

Вашему экстрасенсорике необходимо

  • получать данные с Firebase по Wi-Fi;
  • отправьте полученные данные (или их полезную часть) на Arduino через его последовательный порт.

Вашему Arduino необходимо:

  • следите за своим собственным последовательным портом, чтобы данные становились доступными;
  • считывание данных;
  • решите, включать или выключать светодиод.

Ваш код loop() на Esp следит за его последовательным портом, но, судя по вашему описанию, он не должен ожидать никаких данных от своего последовательного порта, подключенного к Arduino. Вместо этого вам нужно следить за данными, поступающими через Wi-Fi.

Ваш код Arduino проверяет значение переменной, но значение никогда ни на что не устанавливается. Вы должны настроить его в соответствии с тем, что вы получаете от Esp.

Кроме того, поскольку я не знаком с Firebase, должен ли Esp сообщать Firebase каждый раз, когда ему нужны новые данные? Или Firebase отправляет данные через определенные промежутки времени без необходимости запрашивать их у вас? Если это первое, вашему Esp понадобится код для запроса данных и ожидания их поступления, прежде чем он сможет отправить их на Arduino.

,

1

Код ESP8266 :

   #include <ESP8266WiFi.h>
#include <FirebaseArduino.h>

// Установите их для запуска 
#define FIREBASE_HOST ""
#define FIREBASE_AUTH ""
#define WIFI_SSID "Home "
#define WIFI_PASSWORD ""

int value1;
String string_value;
void setup() {
  //Инициализирует последовательное соединение на 9600 получить данные датчика от arduino.
  Serial.begin(9600);
   
  delay(1000);
  
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  while (WiFi.status() != WL_CONNECTED) 
  {
    delay(500);  
  }

  Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); 
  Firebase.setInt("L1",0);  
}

void loop() 
{
 
        value1 =  Firebase.getString("L1").toInt(); 
        string_value = String(value1);
        Serial.print(string_value);
         
  
  
  delay(1000);
}

Код Arduino:

    #define LED 13

int value1;
String data;

void setup()
{
  pinMode(LED,OUTPUT);
  Serial.begin(9600);
}

void loop()
{

  bool Sr =false;
 
  while(Serial.available()){
    
        
        data=Serial.readString(); 
        value1 =data.toInt();
        Sr=true;    
        
    }

    delay(500);

    if(Sr){
      
        if (value1 == 1)
        {
           digitalWrite(LED, HIGH);
        }else if(value1 == 0){
          
            digitalWrite(LED, LOW);
          }
   }
}

Для получения более подробной информации:

https://www.youtube.com/watch?v=ji71cHaGW8w

,

Спасибо вам за вашу помощь., @Anohana