Arduino能够订阅Firebase Cloud消息通知吗?
创始人
2024-09-12 20:30:22
0

是的,Arduino可以订阅Firebase Cloud消息通知。下面是基于Arduino ESP8266的示例代码:

#include 
#include 

#define FIREBASE_HOST "your_project_id.firebaseio.com"
#define FIREBASE_AUTH "your_firebase_auth_token"

#define WIFI_SSID "your_wifi_ssid"
#define WIFI_PASSWORD "your_wifi_password"

#define LED_PIN 2

FirebaseData firebaseData;
FirebaseAuth firebaseAuth;
FirebaseConfig firebaseConfig;

void setup() {
  Serial.begin(115200);

  pinMode(LED_PIN, OUTPUT);

  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
  Firebase.reconnectWiFi(true);

  Firebase.setReadTimeout(firebaseData, 1000);
  Firebase.setwriteSizeLimit(firebaseData, "tiny"); // Optional

  Firebase.stream(firebaseData, "/notifications");
}

void loop() {
  if (Firebase.streamTimeoutAvailable(firebaseData)) {
    if (Firebase.failed(firebaseData)) {
      Serial.print("streaming error: ");
      Serial.println(firebaseData.errorReason());
      return;
    }

    if (firebaseData.streamTimeout()) {
      Serial.println("stream timeout, resume streaming...");
      Firebase.streamResume(firebaseData);
    }

    if (firebaseData.dataAvailable()) {
      FirebaseJson json;
      FirebaseJsonArray jsonArr;

      json.setJsonData(firebaseData.payload());

      if (!json.getArray(jsonArr, "data")) {
        Serial.println("data not found");
        return;
      }

      for (size_t i = 0; i < jsonArr.size(); i++) {
        FirebaseJsonData jsonData;
        jsonArr.get(jsonData, i);

        if (jsonData.typeNum == FirebaseJson::JSON_BOOL) {
          bool value = jsonData.boolValue;
          if (value) {
            digitalWrite(LED_PIN, HIGH);
            Serial.println("LED ON");
          } else {
            digitalWrite(LED_PIN, LOW);
            Serial.println("LED OFF");
          }
        }
      }
    }
  }
}

在代码中,你需要替换以下值:

  • FIREBASE_HOST:替换为你的Firebase项目ID,例如your_project_id.firebaseio.com
  • FIREBASE_AUTH:替换为你的Firebase身份验证令牌。
  • WIFI_SSID:替换为你的Wi-Fi网络的名称。
  • WIFI_PASSWORD:替换为你的Wi-Fi网络的密码。
  • LED_PIN:替换为你连接LED的引脚。

这段代码会连接到Wi-Fi网络并开始订阅Firebase Cloud的/notifications路径下的消息。当收到新消息时,代码会解析消息中的数据,并根据其中的布尔值来控制LED的状态。

相关内容

热门资讯

第3分钟窍要!德扑之心免费透视... 第3分钟窍要!德扑之心免费透视(透视)一贯是有辅助下载(哔哩哔哩)该软件可以轻松地帮助玩家将德扑之心...
第七分钟阶段!hhpoker怎... 第七分钟阶段!hhpoker怎么破解(透视)竟然有辅助开挂(哔哩哔哩)该软件可以轻松地帮助玩家将hh...
九分钟秘籍!wepoker私人... 九分钟秘籍!wepoker私人局俱乐部辅助(透视)总是是有辅助下载(哔哩哔哩)1、这是跨平台的wep...
7分钟课程!wepoker究竟... 7分钟课程!wepoker究竟有没有透视(透视)切实是真的有辅助安装(哔哩哔哩)1、用户打开应用后不...
第三分钟教程书!wepoker... 第三分钟教程书!wepoker轻量版辅助(透视)果然有辅助教程(哔哩哔哩)该软件可以轻松地帮助玩家将...
六分钟大纲!wepoker插件... 六分钟大纲!wepoker插件辅助(透视)本来是有辅助透视(哔哩哔哩)运wepoker插件辅助辅助工...
第六分钟策略!拱趴大菠萝挂哪里... 第六分钟策略!拱趴大菠萝挂哪里(透视)好像是真的有辅助神器(哔哩哔哩)1、拱趴大菠萝挂哪里辅助软件下...
5分钟技法!wpk透视工作室(... 5分钟技法!wpk透视工作室(透视)切实是有辅助教程(哔哩哔哩)wpk透视工作室脚本下载中分为三种模...
8分钟阶段!wepoker透视... 8分钟阶段!wepoker透视脚本安卓(透视)其实有辅助下载(哔哩哔哩)1、wepoker透视脚本安...
3分钟法门!如何判断wpk辅助... 3分钟法门!如何判断wpk辅助软件的真假(透视)原来是真的有辅助教程(哔哩哔哩)1、起透看视 如何判...