-
Notifications
You must be signed in to change notification settings - Fork 3
Arduino Firebase
enyung edited this page Jul 24, 2021
·
3 revisions
- firebase에 센서 정보 보내기
#include "FirebaseArduino.h"
#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
// Set these to run example.
#define FIREBASE_HOST "pinkvoice-a68f3-default-rtdb.firebaseio.com"
#define FIREBASE_AUTH ""
#define WIFI_SSID "hellojihyoung"
#define WIFI_PASSWORD "10011001"
ESP8266WebServer server(80);
int Led = 3;
int rec = 5;
int playe = 4;
int command;
int FSRsensor = A0;
int value = 0;
void handleRoot() {
//digitalWrite(led, 1);
server.send(200, "text/plain", "hello from esp8266!");
//digitalWrite(led, 0);
}
void handleNotFound() {
//digitalWrite(led, 1);
String message = "File Not Found\n\n";
message += "URI: ";
message += server.uri();
message += "\nMethod: ";
message += (server.method() == HTTP_GET) ? "GET" : "POST";
message += "\nArguments: ";
message += server.args();
message += "\n";
for (uint8_t i = 0; i < server.args(); i++) {
message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
}
server.send(404, "text/plain", message);
//digitalWrite(led, 0);
}
void setup() {
pinMode(Led, OUTPUT);
pinMode(rec, INPUT);
pinMode(playe,OUTPUT);
Serial.println("*********command**********");
Serial.println("1. record 10sec");
Serial.println("2. play");
//pinMode(led, OUTPUT);
//digitalWrite(led, 0);
Serial.begin(115200);
WiFi.mode(WIFI_STA);
// connect to wifi.
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("connecting");
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(WIFI_SSID);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
if (MDNS.begin("esp8266")) {
Serial.println("MDNS responder started");
}
server.on("/", handleRoot);
server.on("/inline", []() {
server.send(200, "text/plain", "this works as well");
});
server.on("/gif", []() {
static const uint8_t gif[] PROGMEM = {
0x47, 0x49, 0x46, 0x38, 0x37, 0x61, 0x10, 0x00, 0x10, 0x00, 0x80, 0x01,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x2c, 0x00, 0x00, 0x00, 0x00,
0x10, 0x00, 0x10, 0x00, 0x00, 0x02, 0x19, 0x8c, 0x8f, 0xa9, 0xcb, 0x9d,
0x00, 0x5f, 0x74, 0xb4, 0x56, 0xb0, 0xb0, 0xd2, 0xf2, 0x35, 0x1e, 0x4c,
0x0c, 0x24, 0x5a, 0xe6, 0x89, 0xa6, 0x4d, 0x01, 0x00, 0x3b
};
char gif_colored[sizeof(gif)];
memcpy_P(gif_colored, gif, sizeof(gif));
// Set the background to a random set of colors
gif_colored[16] = millis() % 256;
gif_colored[17] = millis() % 256;
gif_colored[18] = millis() % 256;
server.send(200, "image/gif", gif_colored, sizeof(gif_colored));
});
server.onNotFound(handleNotFound);
server.begin();
Serial.println("HTTP server started");
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
// 초기화 값 디비에 보내기 (센서 값)
Firebase.setFloat("Seats/seat1/sensorValue", 0);
if(Firebase.failed()) {
Serial.print("setting /number failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
// 초기화 값 디비에 보내기 (0, 1)
Firebase.setInt("Seats/seat1/isSitValue", 0);
if(Firebase.failed()) {
Serial.print("setting /number failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
// 초기화 값 디비에 보내기 (true, false)
Firebase.setBool("Seats/seat1/isSit", false);
if(Firebase.failed()) {
Serial.print("setting /number failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
}
int n = 0;
void loop() {
value = analogRead(FSRsensor);
Serial.println(value);
value = map(value, 0, 1023, 0, 255);
analogWrite(Led, value);
delay(1000);
// 압력센서 디비에 보내기
Firebase.setFloat("Seats/seat1/sensorValue", value);
if(Firebase.failed()) {
Serial.print("setting /number failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
if(value>=50)
{
Serial.println("play the record");
digitalWrite(playe,HIGH);
delay(10);
digitalWrite(playe,LOW);
// 착석 여부 디비에 보내기 (1, 0)
Firebase.setInt("Seats/seat1/isSitValue", 1);
if(Firebase.failed()) {
Serial.print("setting /number failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
// 착석 여부 디비에 보내기(true, false)
Firebase.setBool("Seats/seat1/isSit", true);
if(Firebase.failed()) {
Serial.print("setting /number failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
}
if(value<50)
{
// 착석 여부 디비에 보내기 (1, 0)
Firebase.setInt("Seats/seat1/isSitValue", 0);
if(Firebase.failed()) {
Serial.print("setting /number failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
// 착석 여부 디비에 보내기(true, false)
Firebase.setBool("Seats/seat1/isSit", false);
if(Firebase.failed()) {
Serial.print("setting /number failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
}
server.handleClient();
MDNS.update();
}
- 임산부 인증 추가
#include "FirebaseArduino.h"
#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
// Set these to run example.
#define FIREBASE_HOST "pinkvoice-a68f3-default-rtdb.firebaseio.com"
#define FIREBASE_AUTH ""
#define WIFI_SSID "KT_starbucks"
#define WIFI_PASSWORD ""
ESP8266WebServer server(80);
int Led = 3;
int rec = 5;
int playe = 4;
int command;
int FSRsensor = A0;
int value = 0;
void handleRoot() {
//digitalWrite(led, 1);
server.send(200, "text/plain", "hello from esp8266!");
//digitalWrite(led, 0);
}
void handleNotFound() {
//digitalWrite(led, 1);
String message = "File Not Found\n\n";
message += "URI: ";
message += server.uri();
message += "\nMethod: ";
message += (server.method() == HTTP_GET) ? "GET" : "POST";
message += "\nArguments: ";
message += server.args();
message += "\n";
for (uint8_t i = 0; i < server.args(); i++) {
message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
}
server.send(404, "text/plain", message);
//digitalWrite(led, 0);
}
void setup() {
pinMode(Led, OUTPUT);
pinMode(rec, INPUT);
pinMode(playe,OUTPUT);
Serial.println("*********command**********");
Serial.println("1. record 10sec");
Serial.println("2. play");
//pinMode(led, OUTPUT);
//digitalWrite(led, 0);
Serial.begin(115200);
WiFi.mode(WIFI_STA);
// connect to wifi.
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("connecting");
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(WIFI_SSID);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
if (MDNS.begin("esp8266")) {
Serial.println("MDNS responder started");
}
server.on("/", handleRoot);
server.on("/inline", []() {
server.send(200, "text/plain", "this works as well");
});
server.on("/gif", []() {
static const uint8_t gif[] PROGMEM = {
0x47, 0x49, 0x46, 0x38, 0x37, 0x61, 0x10, 0x00, 0x10, 0x00, 0x80, 0x01,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x2c, 0x00, 0x00, 0x00, 0x00,
0x10, 0x00, 0x10, 0x00, 0x00, 0x02, 0x19, 0x8c, 0x8f, 0xa9, 0xcb, 0x9d,
0x00, 0x5f, 0x74, 0xb4, 0x56, 0xb0, 0xb0, 0xd2, 0xf2, 0x35, 0x1e, 0x4c,
0x0c, 0x24, 0x5a, 0xe6, 0x89, 0xa6, 0x4d, 0x01, 0x00, 0x3b
};
char gif_colored[sizeof(gif)];
memcpy_P(gif_colored, gif, sizeof(gif));
// Set the background to a random set of colors
gif_colored[16] = millis() % 256;
gif_colored[17] = millis() % 256;
gif_colored[18] = millis() % 256;
server.send(200, "image/gif", gif_colored, sizeof(gif_colored));
});
server.onNotFound(handleNotFound);
server.begin();
Serial.println("HTTP server started");
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
// 초기화 값 디비에 보내기 (센서 값)
Firebase.setFloat("Seats/seat1/sensorValue", 0);
if(Firebase.failed()) {
Serial.print("setting /number failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
// 초기화 값 디비에 보내기 (0, 1)
Firebase.setInt("Seats/seat1/isSitValue", 0);
if(Firebase.failed()) {
Serial.print("setting /number failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
// 초기화 값 디비에 보내기 (true, false)
Firebase.setBool("Seats/seat1/isSit", false);
if(Firebase.failed()) {
Serial.print("setting /number failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
}
int n = 0;
void loop() {
value = analogRead(FSRsensor);
Serial.println(value);
value = map(value, 0, 1023, 0, 255);
analogWrite(Led, value);
delay(1000);
// 압력센서 디비에 보내기
Firebase.setFloat("Seats/seat1/sensorValue", value);
if(Firebase.failed()) {
Serial.print("setting /number failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
if(value>=10)
{
if(Firebase.getString("Seats/seat1/seatUser")=="") {
Serial.println("play the record");
digitalWrite(playe,HIGH);
delay(10);
digitalWrite(playe,LOW);
}
// 착석 여부 디비에 보내기 (1, 0)
Firebase.setInt("Seats/seat1/isSitValue", 1);
if(Firebase.failed()) {
Serial.print("setting /number failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
// 착석 여부 디비에 보내기(true, false)
Firebase.setBool("Seats/seat1/isSit", true);
if(Firebase.failed()) {
Serial.print("setting /number failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
}
if(value<10)
{
// 착석 여부 디비에 보내기 (1, 0)
Firebase.setInt("Seats/seat1/isSitValue", 0);
if(Firebase.failed()) {
Serial.print("setting /number failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
// 착석 여부 디비에 보내기(true, false)
Firebase.setBool("Seats/seat1/isSit", false);
if(Firebase.failed()) {
Serial.print("setting /number failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
}
server.handleClient();
MDNS.update();
}