风筝
发表于: 2019-8-20 22:10:14 | 显示全部楼层

在本篇文章中,您将学习如何使用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存储的电子邮件和密码登录启用用户身份验证。

firebase.png


所需的材料

●    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.  完成代码上传工作了!


电路连接

Connect-arduino-firebase-fritzing.jpg

代码

  1. /*   
  2. #include <ESP8266WiFi.h">
  3. #include <FirebaseArduino.h>

  4. // Set these to run example.
  5. #define FIREBASE_HOST "example.firebaseio.com"
  6. #define FIREBASE_AUTH "token_or_secret"
  7. #define WIFI_SSID "SSID"
  8. #define WIFI_PASSWORD "PASSWORD"

  9. void setup() {
  10.   Serial.begin(9600);

  11.   // connect to wifi.
  12.   WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  13.   Serial.print("connecting");
  14.   while (WiFi.status() != WL_CONNECTED) {
  15.     Serial.print(".");
  16.     delay(500);
  17.   }
  18.   Serial.println();
  19.   Serial.print("connected: ");
  20.   Serial.println(WiFi.localIP());
  21.    
  22.   Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
  23. }

  24. int n = 0;

  25. void loop() {
  26.   // set value
  27.   Firebase.setFloat("number", 42.0);
  28.   // handle error
  29.   if (Firebase.failed()) {
  30.       Serial.print("setting /number failed:");
  31.       Serial.println(Firebase.error());   
  32.       return;
  33.   }
  34.   delay(1000);
  35.    
  36.   // update value
  37.   Firebase.setFloat("number", 43.0);
  38.   // handle error
  39.   if (Firebase.failed()) {
  40.       Serial.print("setting /number failed:");
  41.       Serial.println(Firebase.error());   
  42.       return;
  43.   }
  44.   delay(1000);

  45.   // get value  
  46.   Serial.print("number: ");
  47.   Serial.println(Firebase.getFloat("number"));
  48.   delay(1000);

  49.   // remove value
  50.   Firebase.remove("number");
  51.   delay(1000);

  52.   // set string value
  53.   Firebase.setString("message", "hello world");
  54.   // handle error
  55.   if (Firebase.failed()) {
  56.       Serial.print("setting /message failed:");
  57.       Serial.println(Firebase.error());   
  58.       return;
  59.   }
  60.   delay(1000);
  61.    
  62.   // set bool value
  63.   Firebase.setBool("truth", false);
  64.   // handle error
  65.   if (Firebase.failed()) {
  66.       Serial.print("setting /truth failed:");
  67.       Serial.println(Firebase.error());   
  68.       return;
  69.   }
  70.   delay(1000);

  71.   // append a new value to /logs
  72.   String name = Firebase.pushInt("logs", n++);
  73.   // handle error
  74.   if (Firebase.failed()) {
  75.       Serial.print("pushing /logs failed:");
  76.       Serial.println(Firebase.error());   
  77.       return;
  78.   }
  79.   Serial.print("pushed: /logs/");
  80.   Serial.println(name);
  81.   delay(1000);
  82. }
复制代码

在代码中,我们需要Firebase Arduino库,可以在此链接下载文件。您也可以Arduino连接到Firebase的其他示例。

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 700 | 回复: 1480



手机版|

GMT+8, 2024-4-25 20:32 , Processed in 0.052973 second(s), 10 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表