مقدمه
در این آموزش با نحوه دانلود و آپلود از/به دیتابیس Firebase با برد آردوینو UNO و ماژول ESP8266 آشنا می شوید.
ذخیره داده ها(مانند داده های سنسورها) به دیتابیسی که در همه جا با اینترنت قابل دسترس است، می تواند خیلی مفید باشد.
Firebase ذخیره و بازیابی داده ها را آسان می کند.
آنچه در این آموزش یاد می گیرید
- چگونگی ساخت یک دیتابیس در Firebase
- چگونگی آپلود (دانلود) داده به (از) Firebase
- برقراری ارتباط از آردوینو به Firebase با استفاده از ESP8266
Firebase چیست؟
Firebase یک پلتفروم سیار تحت وب است که توسط شرکت Firebase در سال 2011 منتشر و سپس در سال 2014 توسط گوگل خریداری شد. در سال 2018 پلتفروم Firebase دارای 18 محصول بود که در 1.5 میلیون برنامه استفاده می شد.
Firebase سروریس های چندگانه ای ارائه می دهد. مانند:
- Firebase Analytics یک برنامه رایگان برای پلتفروم های اندروید و IOS می باشد که زمان استفاده کاربر از برنامه، میزان فعالیت، نرخ ترک کردن و … را به شما ارئه می دهد.
- FCM(سرویس پیام رسان ابری Firebase) که یک سرویس رایگان ارسال و دریافت پیام برای اندروید و IOS، تحت وب می باشد.
- Firebase Auth که امکان احراز هویت کاربران به برنامه های موبایل و وب می دهد، این سرویس شبکه های اجتماعی فیسبوک، توییتر، Github و گوگل را پشتیبانی می کند، همچنین این سوریس اجازه فعالسازی اکانت ها را با استفاده از ایمیل و رمز عبور را به کاربران می دهد.
لوازمی که به آن احتیاج دارید
سخت افزارهای مورد نیاز
نرم افزارهای مورد نیاز
اتصال آردوینو به Firebase
ابتدا می بایست یک اکانت در Firebase بسازید.
به “firebase.google.com” بروید و روی sign in by google account کلیک کنید، سپس یک پروژه جدید ایجاد کنید، بعد از ساخت پروژه یک نام برای آن انتخاب کرده و test mode را فعال کنید، می توانید مقادیری برای بخش دیتابیس real time به صورت دستی وارد کنید.
شما می توانید با اضافه کردن json. به انتهای URL دیتابیس، از داده های خود JSON بگیرید. برای اطلاعات بیشتر ویدئو زیر را مشاهده کنید:
شما می توانید داده ها را از دیتابیس با آردوینو و ESP8266، بخوانید یا انتقال دهید. شما به یک نام کاربری و کلید رجیستری پروژه Firebase خود نیاز دارید، سپس باید کتابخانه Firebase را نصب کرده و کد خود را روی برد، بارگذاری کنید.
اگر برای بار اول است که این کار را انجام می دهید، مراحل زیر را دنبال کنید:
- به آدرس www.arduino.cc/en/Main/Software رفته و نرم افزار IDE را متناسب با سیستم عامل خود دانلود و نصب کنید.
- نرم افزار Arduino IDE را اجرا کنید. تمام کد های پیش فرض را پاک کرده و کد زیر را به جای آن کپی کنید.
- برد آردوینو خود را از پنجره ی Tools و قسمت Board انتخاب کنید.
- پورتی که (COM) آردوینو به آن متصل است را در پنجره ی Tools انتخاب کنید.
- دکمه ی Upload (شکلی که شبیه فلش است) را بزنید تا کد شما روی آردوینو آپلود شود.
- شما با موفقیت کد خود را روی آردوینو ریختید.
سیم بندی
کد
#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 را بررسی کنید.
Firebase Arduino Library
1 file(s) 467.96 KB
یک گام جلوتر
- یک ارتباط زمان واقعی (Real Time) بین دو سیستم مبتنی بر آردوینو بسازید.
- یک سرویس دیگر گوگل را به پروژه آردوینو خود بیافزایید.
Comments (6)
ممنون بابت اموزش ولی یک سوال این کد ها رو داخل اردینو uno اپلود کردید؟ یعنی مستقیما میشه لایبرری های esp رو اظافه و از داخل اردینو esp رو برنامه نویسی کرد؟
بله
بله این کار هم میشه
سلام وقتتون خوش ببخشی من کد تگ rfid رو میخوام برای فایربیس بفرستم نمیدونم مشکلم کجاس میشه راهنمایی کنین هیچ خطایی نمیده ولی داده رو ارسال نمیکنه
//******************************main project********************
#include
#include
#include
#include
#include
#include
#include
// Set these to run example.
#define SS_PIN 4 //D2
#define RST_PIN 5 //D1
#define WIFI_SSID “lenovo”
#define WIFI_PASSWORD “123456789”
//#define WIFI_SSID “Best-link”
//#define WIFI_PASSWORD “z@hr@09376352287”
#define FIREBASE_HOST “mytest-eb604.firebaseio.com”
#define FIREBASE_AUTH “8chomoSf5wVnaremuY9snXLiqwC4zhUll0mxTog7” //Password of your wifi network
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
int statuss = 0;
int out = 0;
String uid = “”;
void setup()
{
Serial.begin(9600); // Initiate a serial communication
SPI.begin(); // Initiate SPI bus
mfrc522.PCD_Init(); // Initiate MFRC522
// 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);
Firebase.setString(“data/statuse”,”null”);
}
void loop()
{
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
//Show UID on serial monitor
Serial.println();
Serial.print(” UID tag :”);
String content= “”;
byte letter;
for (byte i = 0; i < mfrc522.uid.size; i++)
{
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
content.concat(String(mfrc522.uid.uidByte[i], HEX));
}
content.toUpperCase();
Serial.println();
uid = content.substring(1);
Firebase.setString("data/statuse",uid);
Firebase.setString("data",uid);
Serial.println(uid);
Serial.println(WiFi.localIP());
delay(500);
}
سلام. شرمنده بابت تاخیر در پاسخ
تو صفحه ی serial monitor چی می نویسه بعد آپلود کد رو آردوینو؟
سلام اینکه فایربیس فیلتره مشکلی ایجاد نمیکنه؟!!
سلام.
چرا متاسفانه. با فیلتر شدن سایت فایبربیس این برنامه توانایی اجرا نداره.