Published
- 4 min read
CPE241 Week 12
Database
A database description provides an overview of a database’s structure, content, and organization. Key components typically include:
- Schema Overview: A blueprint that outlines tables, views, indexes, and relationships.
- Tables & Fields: Descriptions of each table and its columns, including data types and constraints.
- Keys & Relationships: Details about primary keys, foreign keys, and how tables are linked.
- Indexes: Information on indexes created to speed up data retrieval.
- Views: Virtual tables that simplify or filter data from one or more tables.
- Stored Procedures & Triggers: Predefined queries and automatic actions triggered by specific events.
- Security & Access: Information on user roles, permissions, and data encryption.
- DBMS: The software system managing the database, such as MySQL or PostgreSQL.
LOOP LED
//FirebaseESP8266.h must be included before ESP8266WiFi.h
#include "FirebaseESP8266.h"
#include <ESP8266WiFi.h>
#define FIREBASE_HOST "YOUR_FIREBASE_HOST"
#define FIREBASE_AUTH "YOUR_FIREBASE_AUTH"
#define WIFI_SSID "YOUR_WIFI_SSID"
#define WIFI_PASSWORD "YOUR_WIFI_PASSWORD"
//Define FirebaseESP8266 data object
FirebaseData firebaseData;
void setup()
{
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);
//Set database read timeout to 1 minute (max 15 minutes)
Firebase.setReadTimeout(firebaseData, 1000 * 60);
//tiny, small, medium, large and unlimited.
//Size and its write timeout e.g. tiny (1s), small (10s), medium (30s) and large (60s).
Firebase.setwriteSizeLimit(firebaseData, "tiny");
}
void loop()
{
Firebase.setInt(firebaseData, "LED", 1);
delay(5000);
Firebase.setInt(firebaseData, "LED", 0);
delay(5000);
}
SW + LED
//FirebaseESP8266.h must be included before ESP8266WiFi.h
#include "FirebaseESP8266.h"
#include <ESP8266WiFi.h>
#define FIREBASE_HOST "YOUR_FIREBASE_HOST"
#define FIREBASE_AUTH "YOUR_FIREBASE_AUTH"
#define WIFI_SSID "YOUR_WIFI_SSID"
#define WIFI_PASSWORD "YOUR_WIFI_PASSWORD"
#define SW D4
#define LED D5
//Define FirebaseESP8266 data object
FirebaseData firebaseData;
void setup()
{
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);
//Set database read timeout to 1 minute (max 15 minutes)
Firebase.setReadTimeout(firebaseData, 1000 * 60);
//tiny, small, medium, large and unlimited.
//Size and its write timeout e.g. tiny (1s), small (10s), medium (30s) and large (60s).
Firebase.setwriteSizeLimit(firebaseData, "tiny");
//ESP8266
pinMode(LED, OUTPUT);
pinMode(SW , INPUT);
}
void loop()
{
int swValue = digitalRead(SW);
Firebase.setInt(firebaseData, "LED", swValue);
delay(10);
Firebase.getInt(firebaseData, "LED");
digitalWrite(LED, firebaseData.intData());
delay(10);
}
Create Jsonobj
//FirebaseESP8266.h must be included before ESP8266WiFi.h
#include "FirebaseESP8266.h"
#include <ESP8266WiFi.h>
#define FIREBASE_HOST "YOUR_FIREBASE_HOST"
#define FIREBASE_AUTH "YOUR_FIREBASE_AUTH"
#define WIFI_SSID "YOUR_WIFI_SSID"
#define WIFI_PASSWORD "YOUR_WIFI_PASSWORD"
//Define FirebaseESP8266 data object
FirebaseData firebaseData;
FirebaseJson json;
String path = "JsonObj";
void setup()
{
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);
//Set database read timeout to 1 minute (max 15 minutes)
Firebase.setReadTimeout(firebaseData, 1000 * 60);
//tiny, small, medium, large and unlimited.
//Size and its write timeout e.g. tiny (1s), small (10s), medium (30s) and large (60s).
Firebase.setwriteSizeLimit(firebaseData, "tiny");
//ESP8266
//create json obj
json.add("senser", "gps");
json.add("time", 1351824120);
json.set("data/[0]", 48.75608);
json.set("data/[1]", 2.302038);
Firebase.set(firebaseData, path, json);
}
void loop()
{
}
Read JsonObj
- String JSON
- Prettified JSON
(true) - Minified JSON
(false)
//FirebaseESP8266.h must be included before ESP8266WiFi.h
#include "FirebaseESP8266.h"
#include <ESP8266WiFi.h>
#define FIREBASE_HOST "YOUR_FIREBASE_HOST"
#define FIREBASE_AUTH "YOUR_FIREBASE_AUTH"
#define WIFI_SSID "YOUR_WIFI_SSID"
#define WIFI_PASSWORD "YOUR_WIFI_PASSWORD"
//Define FirebaseESP8266 data object
FirebaseData firebaseData;
FirebaseJson json;
String path = "JsonObj";
String jsonStr = "";
void setup()
{
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);
//Set database read timeout to 1 minute (max 15 minutes)
Firebase.setReadTimeout(firebaseData, 1000 * 60);
//tiny, small, medium, large and unlimited.
//Size and its write timeout e.g. tiny (1s), small (10s), medium (30s) and large (60s).
Firebase.setwriteSizeLimit(firebaseData, "tiny");
//ESP8266
//Read json obj
Firebase.get(firebaseData, path);
Serial.println("-------- the String JSON ---------");
jsonStr = firebaseData.jsonString();
Serial.println(jsonStr);
Serial.println("-------- the prettified JSON ---------");
firebaseData.jsonObject().toString(jsonStr, true);
Serial.println(jsonStr);
Serial.println("-------- the minified JSON ---------");
firebaseData.jsonObject().toString(jsonStr, false);
Serial.println(jsonStr);
}
void loop()
{
}
setJson
//FirebaseESP8266.h must be included before ESP8266WiFi.h
#include "FirebaseESP8266.h"
#include <ESP8266WiFi.h>
#define FIREBASE_HOST "YOUR_FIREBASE_HOST"
#define FIREBASE_AUTH "YOUR_FIREBASE_AUTH"
#define WIFI_SSID "YOUR_WIFI_SSID"
#define WIFI_PASSWORD "YOUR_WIFI_PASSWORD"
//Define FirebaseESP8266 data object
FirebaseData firebaseData;
FirebaseJson json;
String path = "sensor/DHT";
void setup()
{
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);
Firebase.setReadTimeout(firebaseData, 1000 * 60);
Firebase.setwriteSizeLimit(firebaseData, "tiny");
//ESP8266
}
void loop()
{
double h = random(0, 100);
double t = random(0, 100);
json.add("temp", t);
json.add("humid", h);
Firebase.setJSON(firebaseData, path, json);
delay(1000);
}
pushJson
//FirebaseESP8266.h must be included before ESP8266WiFi.h
#include "FirebaseESP8266.h"
#include <ESP8266WiFi.h>
#define FIREBASE_HOST "YOUR_FIREBASE_HOST"
#define FIREBASE_AUTH "YOUR_FIREBASE_AUTH"
#define WIFI_SSID "YOUR_WIFI_SSID"
#define WIFI_PASSWORD "YOUR_WIFI_PASSWORD"
//Define FirebaseESP8266 data object
FirebaseData firebaseData;
FirebaseJson json;
String path = "push/DHT";
void setup()
{
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);
Firebase.setReadTimeout(firebaseData, 1000 * 60);
Firebase.setwriteSizeLimit(firebaseData, "tiny");
//ESP8266
}
void loop()
{
double h = random(0, 100);
double t = random(0, 100);
json.add("temp", t);
json.add("humid", h);
Firebase.pushJSON(firebaseData, path, json);
delay(1000);
}