Home

Published

- 4 min read

CPE241 Week 12

img of CPE241 Week 12

Database

A database description provides an overview of a database’s structure, content, and organization. Key components typically include:

  1. Schema Overview: A blueprint that outlines tables, views, indexes, and relationships.
  2. Tables & Fields: Descriptions of each table and its columns, including data types and constraints.
  3. Keys & Relationships: Details about primary keys, foreign keys, and how tables are linked.
  4. Indexes: Information on indexes created to speed up data retrieval.
  5. Views: Virtual tables that simplify or filter data from one or more tables.
  6. Stored Procedures & Triggers: Predefined queries and automatic actions triggered by specific events.
  7. Security & Access: Information on user roles, permissions, and data encryption.
  8. 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);
}