| 在本篇文章中,您将学习如何使用Arduino UNO开发板和ESP8266模块上传和下载Firebase数据库中的数据。 
 将数据(如传感器数据)存储到可以通过互联网从任何地方访问的数据库可能非常有用。 Firebase可以轻松存储和检索数据。 
 什么是Firebase? Firebase是移动和网络应用程序开发平台,由Firebase,Inc公司于2011年开发,随后于2014年被Google收购。截至2018年10月,Firebase平台共有18种产品,150万个应用程序使用这些产品。 
 Firebase提供以下多种服务: ●    Firebase Analytics是一款免费的应用程序度量解决方案,可提供对应用程序使用情况和用户参与的分析 ●    Firebase Cloud Messaging (FCM) 是针对Android、iOS和Web应用程序的消息和通知的跨平台解决方案,成本低廉。 ●    Firebase Auth是一种可以仅使用客户端代码对用户进行身份验证的服务。它支持社交登录提供商Facebook、GitHub、Twitter和谷歌。此外,它还包括一个用户管理系统,开发人员可以通过Firebase存储的电子邮件和密码登录启用用户身份验证。 
  
 所需的材料 ●    Arduino UNO R3开发板 ●    ESP8266-12N WiFi模块 ●    Arduino IDE 
 将Arduino连接到Firebase 首先,您应该在Firebase中创建一个帐户。创建一个帐户非常容易;转到“firebase.google.com”,点击“Console”,然后通过您的Google帐户登录,然后创建一个新项目。创建新项目后,添加名称并启用测试模式。您可以在实时数据库部件中手动添加一些值。您可以通过在数据库URL末尾添加“.json”来获取数据的JSON格式。 
 可以通过Arduino和ESP8266从数据库中读取或传输数据。代码中需要提供firebase项目的主机名和Auth密钥。您需要添加Firebase Arduino库,然后上传代码。如果这是您第一次使用Arduino开发板,请按照以下步骤操作: 1.  转到www.arduino.cc/en/Main/Software下载与您的操作系统兼容的Arduino软件。按照说明安装IDE软件。 2.  运行Arduino IDE并清除文本编辑器,然后在文本编辑器中复制以下代码。 3.  在tools > boards选择对应的Arduino开发板。 4.  将Arduino连接到PC,然后并在tools > port中设置COM端口。 5.  点击上传(箭头符号)按钮。 6.  完成代码上传工作了! 
 电路连接 
  代码 复制代码/*   
#include <ESP8266WiFi.h">
#include <FirebaseArduino.h>
 
// Set these to run example. 
#define FIREBASE_HOST "example.firebaseio.com" 
#define FIREBASE_AUTH "token_or_secret" 
#define WIFI_SSID "SSID" 
#define WIFI_PASSWORD "PASSWORD" 
 
void setup() { 
  Serial.begin(9600); 
 
  // connect to wifi. 
  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); 
} 
 
int n = 0; 
 
void loop() { 
  // set value 
  Firebase.setFloat("number", 42.0); 
  // handle error 
  if (Firebase.failed()) { 
      Serial.print("setting /number failed:"); 
      Serial.println(Firebase.error());   
      return; 
  } 
  delay(1000); 
   
  // update value 
  Firebase.setFloat("number", 43.0); 
  // handle error 
  if (Firebase.failed()) { 
      Serial.print("setting /number failed:"); 
      Serial.println(Firebase.error());   
      return; 
  } 
  delay(1000); 
 
  // get value  
  Serial.print("number: "); 
  Serial.println(Firebase.getFloat("number")); 
  delay(1000); 
 
  // remove value 
  Firebase.remove("number"); 
  delay(1000); 
 
  // set string value 
  Firebase.setString("message", "hello world"); 
  // handle error 
  if (Firebase.failed()) { 
      Serial.print("setting /message failed:"); 
      Serial.println(Firebase.error());   
      return; 
  } 
  delay(1000); 
   
  // set bool value 
  Firebase.setBool("truth", false); 
  // handle error 
  if (Firebase.failed()) { 
      Serial.print("setting /truth failed:"); 
      Serial.println(Firebase.error());   
      return; 
  } 
  delay(1000); 
 
  // append a new value to /logs 
  String name = Firebase.pushInt("logs", n++); 
  // handle error 
  if (Firebase.failed()) { 
      Serial.print("pushing /logs failed:"); 
      Serial.println(Firebase.error());   
      return; 
  } 
  Serial.print("pushed: /logs/"); 
  Serial.println(name); 
  delay(1000); 
}
在代码中,我们需要Firebase Arduino库,可以在此链接下载文件。您也可以Arduino连接到Firebase的其他示例。 |