728x90
red
더보기
더보기
#include <WiFi.h>
#include "EspMQTTClient.h"
#include <FirebaseESP32.h>
#include "time.h"
#include <Stepper.h>
#define WIFI_SSID "Galaxy"
#define WIFI_PASSWORD "12345678"
#define FIREBASE_HOST "[firebase url]" //url
#define FIREBASE_AUTH "[firebase password]" //password
// ULN2003 Motor Driver Pins
#define IN1 19
#define IN2 18
#define IN3 5
#define IN4 17
//mqtt
EspMQTTClient client(
WIFI_SSID, // SSID
WIFI_PASSWORD, // Password
"192.168.19.207", // MQTT Broker server IP (=ras ip)
"MQTTUsername",
"MQTTPassword",
"RedClient", // Device name, used for identifying the device
1883 // MQTT Broker port
);
const char *topic = "redESP";
const char *topic2 = "red";
const long gmtOffset_sec = 3600;
const int daylightOffset_sec = 3600;
const int stepsPerRevolution = 2048; // change this to fit the number of steps per revolution
String nowTime;
FirebaseData firebaseData;
FirebaseJson json;
FirebaseConfig config;
FirebaseAuth auth;
Stepper myStepper(stepsPerRevolution, IN1, IN3, IN2, IN4);
void printLocalTime()
{
struct tm timeinfo;
if(!getLocalTime(&timeinfo)){
Serial.println("No time available (yet)");
return;
}
Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S");
}
void timeavailable(struct timeval *t)
{
Serial.println("Got time adjustment from NTP!");
printLocalTime();
}
void setup()
{
myStepper.setSpeed(10);
Serial.begin(115200);
Serial.printf("Connecting to %s ", WIFI_SSID);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println(" CONNECTED");
printLocalTime(); // it will take some time to sync time :)
//mqtt
Serial.println("Mqtt start");
client.enableDebuggingMessages();
client.enableHTTPWebUpdater();
client.enableOTA();
client.enableLastWillMessage("TestClient/lastwill", "I am going offline");
//wifi
int wifi_attempts = 0;
const int max_wifi_attempts = 30; // Adjust this as needed
while (WiFi.status() != WL_CONNECTED && wifi_attempts < max_wifi_attempts) {
Serial.print(".");
delay(500);
wifi_attempts++;
}
if (WiFi.status() == WL_CONNECTED) {
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
} else {
Serial.println();
Serial.println("Failed to connect to WiFi.");
}
//firebase
Serial.printf("Firebase Client v%s\n\n", FIREBASE_CLIENT_VERSION);
config.database_url = FIREBASE_HOST;
config.signer.tokens.legacy_token = FIREBASE_AUTH;
Firebase.begin(&config, &auth);
//working pin
pinMode(LED_BUILTIN, OUTPUT);
}
void modifyLastSecond() {
String dateTime = nowTime;
int lastColonPos = dateTime.lastIndexOf(':');
String secondsStr = dateTime.substring(lastColonPos + 1);
int seconds = secondsStr.toInt();
seconds++;
if (seconds < 10) {
secondsStr = "0" + String(seconds);
} else {
secondsStr = String(seconds);
}
String newDateTime = dateTime.substring(0, lastColonPos + 1) + secondsStr;
Serial.println(newDateTime);
nowTime = newDateTime;
}
void writeData()
{
modifyLastSecond();
String write_key = nowTime;
// Create the programStatus JSON object
FirebaseJson programStatus;
programStatus.set("area", "red");
programStatus.set("status", "end");
// Write to Firebase
if (Firebase.setJSON(firebaseData, "/robotStatus/" + write_key, programStatus)) {
Serial.println("Data written to Firebase successfully");
} else {
Serial.println("Failed to write data to Firebase");
Serial.println("Reason: " + firebaseData.errorReason());
}
}
void working(){
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(1000);
Serial.println("counterclockwise");
myStepper.step(-stepsPerRevolution);
delay(1000);
Serial.print("working done!!");
writeData();
}
void onConnectionEstablished(){
client.subscribe(topic2, [](const String & payload) {
Serial.println(payload);
nowTime = payload;
working();
});
}
void loop()
{
client.loop();
}
yellow
더보기
더보기
#include <WiFi.h>
#include "EspMQTTClient.h"
#include <FirebaseESP32.h>
#include "time.h"
#define WIFI_SSID "Galaxy"
#define WIFI_PASSWORD "12345678"
#define FIREBASE_HOST "[firebase url]" //url
#define FIREBASE_AUTH "[firebase password]" //password
//mqtt
EspMQTTClient client(
WIFI_SSID, // SSID
WIFI_PASSWORD, // Password
"192.168.19.207", // MQTT Broker server IP (=ras ip)
"MQTTUsername",
"MQTTPassword",
"YellowClient", // Device name, used for identifying the device
1883 // MQTT Broker port
);
char *topic = "yellowESP";
char *topic2 = "yellow";
const long gmtOffset_sec = 3600;
const int daylightOffset_sec = 3600;
const int ledChannel1 = 0;
const int ledChannel2 = 1;
const int pwmFreq = 5000;
const int pwmResolution = 8; // 8-bit resolution
String nowTime;
FirebaseData firebaseData;
FirebaseJson json;
FirebaseConfig config;
FirebaseAuth auth;
void printLocalTime()
{
struct tm timeinfo;
if(!getLocalTime(&timeinfo)){
Serial.println("No time available (yet)");
return;
}
Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S");
}
void timeavailable(struct timeval *t)
{
Serial.println("Got time adjustment from NTP!");
printLocalTime();
}
void setup()
{
ledcSetup(ledChannel1, pwmFreq, pwmResolution); // 채널1 설정
ledcSetup(ledChannel2, pwmFreq, pwmResolution); // 채널2 설정
ledcAttachPin(16, ledChannel1);
ledcAttachPin(17, ledChannel2);
Serial.begin(115200);
Serial.printf("Connecting to %s ", WIFI_SSID);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println(" CONNECTED");
printLocalTime(); // it will take some time to sync time :)
//mqtt
Serial.println("Mqtt start");
client.enableDebuggingMessages();
client.enableHTTPWebUpdater();
client.enableOTA();
client.enableLastWillMessage("TestClient/lastwill", "I am going offline");
//wifi
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
int wifi_attempts = 0;
const int max_wifi_attempts = 30; // Adjust this as needed
while (WiFi.status() != WL_CONNECTED && wifi_attempts < max_wifi_attempts) {
Serial.print(".");
delay(500);
wifi_attempts++;
}
if (WiFi.status() == WL_CONNECTED) {
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
} else {
Serial.println();
Serial.println("Failed to connect to WiFi.");
}
//firebase
Serial.printf("Firebase Client v%s\n\n", FIREBASE_CLIENT_VERSION);
config.database_url = FIREBASE_HOST;
config.signer.tokens.legacy_token = FIREBASE_AUTH;
Firebase.begin(&config, &auth);
//working pin
pinMode(LED_BUILTIN, OUTPUT);
}
void modifyLastSecond() {
String dateTime = nowTime;
int lastColonPos = dateTime.lastIndexOf(':');
String secondsStr = dateTime.substring(lastColonPos + 1);
int seconds = secondsStr.toInt();
seconds++;
if (seconds < 10) {
secondsStr = "0" + String(seconds);
} else {
secondsStr = String(seconds);
}
String newDateTime = dateTime.substring(0, lastColonPos + 1) + secondsStr;
Serial.println(newDateTime);
nowTime = newDateTime;
}
void writeData()
{
modifyLastSecond();
String write_key = nowTime;
// Create the programStatus JSON object
FirebaseJson programStatus;
programStatus.set("area", "yellow");
programStatus.set("status", "end");
// Write to Firebase
if (Firebase.setJSON(firebaseData, "/robotStatus/" + write_key, programStatus)) {
Serial.println("Data written to Firebase successfully");
} else {
Serial.println("Failed to write data to Firebase");
Serial.println("Reason: " + firebaseData.errorReason());
}
}
void working(){
ledcWrite(ledChannel1, 0); // 채널1(0번 핀) 0 출력
ledcWrite(ledChannel2, 225); // 채널2(2번 핀) 225 출력 (3V)
delay(100); // 100ms 동안 대기
ledcWrite(ledChannel1, 0); // 채널1(0번 핀) 0 출력
ledcWrite(ledChannel2, 150); // 채널2(2번 핀) 80 출력
delay(6000); // 100ms 동안 대기
ledcWrite(ledChannel1, 0); // 채널1(0번 핀) 0 출력
ledcWrite(ledChannel2, 0); // 채널2(2번 핀) 80 출력
delay(500); // 100ms 동안 대기
Serial.print("working done!!");
//printLocalTime();
writeData();
}
void onConnectionEstablished(){
client.subscribe(topic2, [](const String & payload) {
Serial.println(payload);
nowTime = payload;
working();
});
}
void loop()
{
client.loop();
}
orange
더보기
더보기
#include <WiFi.h>
#include "EspMQTTClient.h"
#include <FirebaseESP32.h>
#include "time.h"
#include "sntp.h"
#include <Stepper.h>
#define WIFI_SSID "Galaxy"
#define WIFI_PASSWORD "12345678"
#define FIREBASE_HOST "[firebase url]" //url
#define FIREBASE_AUTH "[firebase password]" //password
// ULN2003 Motor Driver Pins
#define IN1 19
#define IN2 18
#define IN3 5
#define IN4 17
//mqtt
EspMQTTClient client(
WIFI_SSID, // SSID
WIFI_PASSWORD, // Password
"192.168.19.207", // MQTT Broker server IP (=ras ip)
"MQTTUsername",
"MQTTPassword",
"OrangeClient", // Device name, used for identifying the device
1883 // MQTT Broker port
);
const char *topic = "orangeESP";
const char *topic2 = "orange";
const char* ntpServer1 = "pool.ntp.org";
const char* ntpServer2 = "time.nist.gov";
const long gmtOffset_sec = 3600;
const int daylightOffset_sec = 3600;
const int stepsPerRevolution = 800; // change this to fit the number of steps per revolution
String nowTime;
FirebaseData firebaseData;
FirebaseJson json;
FirebaseConfig config;
FirebaseAuth auth;
Stepper myStepper(stepsPerRevolution, IN1, IN3, IN2, IN4);
void printLocalTime()
{
struct tm timeinfo;
if(!getLocalTime(&timeinfo)){
Serial.println("No time available (yet)");
return;
}
Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S");
}
void timeavailable(struct timeval *t)
{
Serial.println("Got time adjustment from NTP!");
printLocalTime();
}
void setup()
{
myStepper.setSpeed(10);
Serial.begin(115200);
//time
sntp_set_time_sync_notification_cb( timeavailable );
sntp_servermode_dhcp(1); // (optional)
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer1, ntpServer2);
Serial.printf("Connecting to %s ", WIFI_SSID);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println(" CONNECTED");
printLocalTime(); // it will take some time to sync time :)
//mqtt
Serial.println("Mqtt start");
client.enableDebuggingMessages();
client.enableHTTPWebUpdater();
client.enableOTA();
client.enableLastWillMessage("TestClient/lastwill", "I am going offline");
//wifi
int wifi_attempts = 0;
const int max_wifi_attempts = 30; // Adjust this as needed
while (WiFi.status() != WL_CONNECTED && wifi_attempts < max_wifi_attempts) {
Serial.print(".");
delay(500);
wifi_attempts++;
}
if (WiFi.status() == WL_CONNECTED) {
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
} else {
Serial.println();
Serial.println("Failed to connect to WiFi.");
}
//firebase
Serial.printf("Firebase Client v%s\n\n", FIREBASE_CLIENT_VERSION);
config.database_url = FIREBASE_HOST;
config.signer.tokens.legacy_token = FIREBASE_AUTH;
Firebase.begin(&config, &auth);
//working pin
pinMode(16, OUTPUT);
pinMode(4, OUTPUT);
pinMode(0, OUTPUT);
pinMode(2, OUTPUT);
digitalWrite(4, LOW);
digitalWrite(0, LOW);
digitalWrite(2, LOW);
}
void modifyLastSecond() {
String dateTime = nowTime;
int lastColonPos = dateTime.lastIndexOf(':');
String secondsStr = dateTime.substring(lastColonPos + 1);
int seconds = secondsStr.toInt();
seconds++;
if (seconds < 10) {
secondsStr = "0" + String(seconds);
} else {
secondsStr = String(seconds);
}
String newDateTime = dateTime.substring(0, lastColonPos + 1) + secondsStr;
Serial.println(newDateTime);
nowTime = newDateTime;
}
void writeData()
{
modifyLastSecond();
String write_key = nowTime;
// Create the programStatus JSON object
FirebaseJson programStatus;
programStatus.set("area", "orange");
programStatus.set("status", "end");
// Write to Firebase
if (Firebase.setJSON(firebaseData, "/robotStatus/" + write_key, programStatus)) {
Serial.println("Data written to Firebase successfully");
} else {
Serial.println("Failed to write data to Firebase");
Serial.println("Reason: " + firebaseData.errorReason());
}
}
void working(){
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(500);
digitalWrite(16, HIGH); // GPIO16 켜기
digitalWrite(4, HIGH);
digitalWrite(0, HIGH);
digitalWrite(2, HIGH);
delay(5000);
digitalWrite(16, LOW); // GPIO16 끄기
digitalWrite(4, LOW);
digitalWrite(0, LOW);
digitalWrite(2, LOW);
Serial.println("counterclockwise");
myStepper.step(-stepsPerRevolution);
delay(500);
Serial.print("working done!!");
writeData();
}
void onConnectionEstablished(){
client.subscribe(topic2, [](const String & payload) {
Serial.println(payload);
nowTime = payload;
working();
});
}
void loop()
{
client.loop();
}
green
더보기
더보기
#include <WiFi.h>
#include "EspMQTTClient.h"
#include <FirebaseESP32.h>
#include "time.h"
#include "LedControl.h" // dot matrix를 사용하기 위한 라이브러리 호출
#define WIFI_SSID "Galaxy"
#define WIFI_PASSWORD "12345678"
#define FIREBASE_HOST "[firebase url]" //url
#define FIREBASE_AUTH "[firebase password]" //password
#define dataIn 12 // DIN 12번 핀으로 사용
#define cs 13 // CS 13번 핀으로 사용
#define clk 14 // CLK 14번 핀으로 사용
//mqtt
EspMQTTClient client(
WIFI_SSID, // SSID
WIFI_PASSWORD, // Password
"192.168.19.207", // MQTT Broker server IP (=ras ip)
"MQTTUsername",
"MQTTPassword",
"GreenClient", // Device name, used for identifying the device
1883 // MQTT Broker port
);
char *topic = "greenESP";
char *topic2 = "green";
const long gmtOffset_sec = 3600;
const int daylightOffset_sec = 3600;
const int servoPin = 15; // corresponds to GPIO 15
// setting PWM properties
const int servoChannel = 0;
const int freq = 50;
const int resolution = 16;
const int maxDeg = 90;
int deg, duty;
String nowTime;
byte heart[] = {
B00011100,
B00111110,
B01111110,
B11111100,
B11111100,
B01111110,
B00111110,
B00011100,
};
FirebaseData firebaseData;
FirebaseJson json;
FirebaseConfig config;
FirebaseAuth auth;
LedControl lc = LedControl(dataIn, clk, cs, 1); // LedControl('DIN핀 번호', 'CLK핀 번호', 'CS핀 번호', 'dot matrix 갯수')
void printLocalTime()
{
struct tm timeinfo;
if(!getLocalTime(&timeinfo)){
Serial.println("No time available (yet)");
return;
}
Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S");
}
void timeavailable(struct timeval *t)
{
Serial.println("Got time adjustment from NTP!");
printLocalTime();
}
void setup()
{
lc.shutdown(0, false);
lc.setIntensity(0, 15); // LED 도트매트릭스 밝기
lc.clearDisplay(0); // LED 도트매트릭스 모두 지우기
//servo PWM Setup
ledcSetup(servoChannel, freq, resolution); // PWM CH0, Frequncy 50 Hz, 16bit resolution
ledcAttachPin(servoPin, servoChannel); // PWM CH0을 GPIO 15번으로 출력
Serial.begin(115200);
Serial.printf("Connecting to %s ", WIFI_SSID);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println(" CONNECTED");
printLocalTime(); // it will take some time to sync time :)
//mqtt
Serial.println("Mqtt start");
client.enableDebuggingMessages();
client.enableHTTPWebUpdater();
client.enableOTA();
client.enableLastWillMessage("TestClient/lastwill", "I am going offline");
//wifi
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
int wifi_attempts = 0;
const int max_wifi_attempts = 30; // Adjust this as needed
while (WiFi.status() != WL_CONNECTED && wifi_attempts < max_wifi_attempts) {
Serial.print(".");
delay(500);
wifi_attempts++;
}
if (WiFi.status() == WL_CONNECTED) {
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
} else {
Serial.println();
Serial.println("Failed to connect to WiFi.");
}
//firebase
Serial.printf("Firebase Client v%s\n\n", FIREBASE_CLIENT_VERSION);
config.database_url = FIREBASE_HOST;
config.signer.tokens.legacy_token = FIREBASE_AUTH;
Firebase.begin(&config, &auth);
//working pin
pinMode(LED_BUILTIN, OUTPUT);
}
void modifyLastSecond() {
String dateTime = nowTime;
int lastColonPos = dateTime.lastIndexOf(':');
String secondsStr = dateTime.substring(lastColonPos + 1);
int seconds = secondsStr.toInt();
seconds++;
if (seconds < 10) {
secondsStr = "0" + String(seconds);
} else {
secondsStr = String(seconds);
}
String newDateTime = dateTime.substring(0, lastColonPos + 1) + secondsStr;
Serial.println(newDateTime);
nowTime = newDateTime;
}
void writeData()
{
modifyLastSecond();
String write_key = nowTime;
// Create the programStatus JSON object
FirebaseJson programStatus;
programStatus.set("area", "green");
programStatus.set("status", "end");
// Write to Firebase
if (Firebase.setJSON(firebaseData, "/robotStatus/" + write_key, programStatus)) {
Serial.println("Data written to Firebase successfully");
} else {
Serial.println("Failed to write data to Firebase");
Serial.println("Reason: " + firebaseData.errorReason());
}
}
void working(){
for (deg = maxDeg; deg >= 0; deg--) { // 시계 반대 방향 회전 (90도에서 0도로)
servoWrite(servoChannel, deg);
}
delay(1000);
showLED(heart, 1); // 하트모양 보이기
delay(3000); // 3초 기다리기
showLED(heart, 0); // 모두 지우기
delay(1000); // 1초 기다리기
for (deg = 0; deg <= maxDeg; deg++) { // 시계 방향 회전 (0도에서 90도로)
servoWrite(servoChannel, deg);
}
Serial.print("working done!!");
//printLocalTime();
writeData();
}
void onConnectionEstablished(){
client.subscribe(topic2, [](const String & payload) {
Serial.println(payload);
// if (payload == "ON") {
// Serial.println("ON!!");
// working();
// }
nowTime = payload;
working();
});
}
// LED 도트매트릭스 제어용 함수
void showLED(byte arr[], int a) {
if (a == 1) {
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, arr[i]);
}
} else {
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, B00000000);
}
}
}
// deg는 0~90도 까지
void servoWrite(int ch, int deg)
{
duty = map(deg, 0, 180, 1638, 8192);
ledcWrite(ch, duty);
delay(15); // delay를 줄이면 180도가 완전히 돌지 않음
}
void loop()
{
client.loop();
}
purple
더보기
더보기
#include <WiFi.h>
#include "EspMQTTClient.h"
#include <FirebaseESP32.h>
#include "time.h"
#include <Stepper.h>
#define WIFI_SSID "Galaxy"
#define WIFI_PASSWORD "12345678"
#define FIREBASE_HOST "[firebase url]" //url
#define FIREBASE_AUTH "[firebase password]" //password
// ULN2003 Motor Driver Pins
#define IN1 19
#define IN2 18
#define IN3 5
#define IN4 17
#define IN1b 32
#define IN2b 33
#define IN3b 25
#define IN4b 26
const int stepsPerRevolution = 1400; // Change this to fit the number of steps per revolution
const int simultaneousSteps = 5; // Number of steps to take simultaneously
//mqtt
EspMQTTClient client(
WIFI_SSID, // SSID
WIFI_PASSWORD, // Password
"192.168.19.207", // MQTT Broker server IP (=ras ip)
"MQTTUsername",
"MQTTPassword",
"PurpleClient", // Device name, used for identifying the device
1883 // MQTT Broker port
);
const char *topic = "purpleESP";
const char *topic2 = "purple";
String nowTime;
FirebaseData firebaseData;
FirebaseJson json;
FirebaseConfig config;
FirebaseAuth auth;
// Initialize the stepper library
Stepper myStepper1(stepsPerRevolution, IN1, IN3, IN2, IN4);
Stepper myStepper2(stepsPerRevolution, IN1b, IN3b, IN2b, IN4b);
void printLocalTime()
{
struct tm timeinfo;
if(!getLocalTime(&timeinfo)){
Serial.println("No time available (yet)");
return;
}
Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S");
}
void timeavailable(struct timeval *t)
{
Serial.println("Got time adjustment from NTP!");
printLocalTime();
}
void setup()
{
myStepper1.setSpeed(15);
myStepper2.setSpeed(15);
Serial.begin(115200);
Serial.printf("Connecting to %s ", WIFI_SSID);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println(" CONNECTED");
printLocalTime(); // it will take some time to sync time :)
//mqtt
Serial.println("Mqtt start");
client.enableDebuggingMessages();
client.enableHTTPWebUpdater();
client.enableOTA();
client.enableLastWillMessage("TestClient/lastwill", "I am going offline");
//wifi
int wifi_attempts = 0;
const int max_wifi_attempts = 30; // Adjust this as needed
while (WiFi.status() != WL_CONNECTED && wifi_attempts < max_wifi_attempts) {
Serial.print(".");
delay(500);
wifi_attempts++;
}
if (WiFi.status() == WL_CONNECTED) {
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
} else {
Serial.println();
Serial.println("Failed to connect to WiFi.");
}
//firebase
Serial.printf("Firebase Client v%s\n\n", FIREBASE_CLIENT_VERSION);
config.database_url = FIREBASE_HOST;
config.signer.tokens.legacy_token = FIREBASE_AUTH;
Firebase.begin(&config, &auth);
//working pin
pinMode(LED_BUILTIN, OUTPUT);
}
void modifyLastSecond() {
String dateTime = nowTime;
int lastColonPos = dateTime.lastIndexOf(':');
String secondsStr = dateTime.substring(lastColonPos + 1);
int seconds = secondsStr.toInt();
seconds++;
if (seconds < 10) {
secondsStr = "0" + String(seconds);
} else {
secondsStr = String(seconds);
}
String newDateTime = dateTime.substring(0, lastColonPos + 1) + secondsStr;
Serial.println(newDateTime);
nowTime = newDateTime;
}
void writeData()
{
modifyLastSecond();
String write_key = nowTime;
// Create the programStatus JSON object
FirebaseJson programStatus;
programStatus.set("area", "purple");
programStatus.set("status", "end");
// Write to Firebase
if (Firebase.setJSON(firebaseData, "/robotStatus/" + write_key, programStatus)) {
Serial.println("Data written to Firebase successfully");
} else {
Serial.println("Failed to write data to Firebase");
Serial.println("Reason: " + firebaseData.errorReason());
}
}
void working(){
Serial.println("clockwise");
for (int i = 0; i < stepsPerRevolution*3; i += simultaneousSteps) {
myStepper1.step(-simultaneousSteps);
myStepper2.step(-simultaneousSteps);
}
writeData();
}
void onConnectionEstablished(){
client.subscribe(topic2, [](const String & payload) {
Serial.println(payload);
nowTime = payload;
working();
});
}
void loop()
{
client.loop();
}
'SSAFY > 관통 PJT' 카테고리의 다른 글
관통 PJT - visualization (0) | 2024.05.22 |
---|---|
관통PJT #보드 코드 (0) | 2024.05.20 |
관통PJT #firebase, MQTT 통신 코드 (0) | 2024.05.20 |
관통 PJT #보드설명 (0) | 2024.05.19 |
관통 PJT # 자료정리 (0) | 2024.05.12 |