Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
10
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

@dobnezmi

ArduinoからFirebase(データベース)にアクセスする

Arduinoの準備

スイッチサイエンスさんで販売されているESPr Develper(ピンソケット実装済み)を使いました。
このESPr Developer(に載っているESP-WROOM-02)をArduino IDEで開発できるようにします。
手順はスイッチサイエンスさんにて公開されています。
ESP-WROOM-02開発ボードをArduino IDEで開発する方法

Firebaseの準備

FirebaseのRealtime Databaseを用意します。
手順はネットにたくさん公開されているので、ここでは省略します。
データベースのルールは以下のように誰でも読み書きできるようにしておきます。

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

FirebaseArduino

ArduinoからFirebaseのAPIを叩くためのFirebaseArduinoというライブラリが公開されています。これをArduinoIDEに取り込みます。
まずzipファイルでダウンロードします。

次にArduinoIDEから「スケッチ-ライブラリをインクルード-.zip形式のライブラリをインストール...」と選択して、さきほどダウンロードしたzipファイルを選択します。

ライブラリに付属するサンプルをベースに作成します。
「ファイル-スケッチの例-FirebaseArduino-FirebaseDEMO_ESP8266」と選択してサンプルを開きます。

WIFI_SSIDとWIFI_PASSWORDは自身の環境ものに書き換えます。
FIREBASE_HOSTはFirebaseのRealtimeDatabaseのところで表示されている

https://XXXXX.firebaseio.com/

の「XXXX.firebaseio.com」に置き換えます。
FIREBASE_AUTHは今回は使わないのでテキトーでいいです。
以下の部分を書き換えます。

//Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.begin(FIREBASE_HOST);

Firebase.beginのパラメータからFIREBASE_AUTHを外します。
これで書き込もうとするとFirebaseArduinoのライブラリ内でコンパイルエラーになりました。
とりあえず対処療法としてコンパイルエラーにならないように直接編集しておきます。

Config kDefaultConfig = {
    "",  // firebase host
    "",  // firebase auth
    "/fthing",  // path in firebase
    "",  // wifi ssid
    "",  // wifi key
    0.1,  // analog activation threshold
    0,//D1,  // digital in //←とりあえず0に
    BUILTIN_LED,  // digital out
    A0,  // analog in
    0,//D1, // analog out // ←とりあえず0に
    0,//D0, // config mode button // ←とりあえず0に
  };

D1、D0が見つからない、というエラーなので上記ではとりあえず適当な数字で置き換えています。

さて、これでArduinoに書き込んでからFirebaseのRealtimeDatabaseを見ていると、刻々と値が更新されているのが分かると思います。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
10
Help us understand the problem. What are the problem?