안녕하세요 여러분, Arduino IoT Cloud의 스케줄러 위젯을 사용하여 5 개의 릴레이를 예약 제어하기 위해 wokwi 시뮬레이션을 사용한 경험을 공유하고 싶습니다. 여기에 제작 방법에 대한 짧은 비디오가 있으며 유용하고 관심을 가져 주셔서 감사합니다.
아두이노 IoT 클라우드를 사용하여 ESP32(웍위 시뮬레이션)에 연결된 OLED 디스플레이로 5개의 릴레이를 예약 제어하는 방법은 무엇인가요? 단계는 다음과 같습니다:
1. 이 웍위 프로젝트를 엽니다: https://wokwi.com/projects/396738675898696705
2. 아두이노 IoT 클라우드(https://cloud.arduino.cc)를 열고 계정을 생성한 후 로그인합니다.
3. Thing을 생성하고 CloudSchedule 유형으로 5개의 변수를 추가한 후 각각 jadwal1, jadwal2, jadwal3, jadwal4, jadwal5로 이름을 지정하고 접근 권한을 설정합니다: 읽기 및 쓰기, 업데이트 권한을 설정합니다: 변경으로 설정합니다.
4. Thing에 변수를 추가한 후 다음 단계는 Thing을 장치에 연결하는 것입니다. 장치를 선택합니다: ESP32 개발 모듈을 선택하고 ID 및 비밀 키 장치를 저장합니다. Wokwi 프로그램에서 장치 ID 및 비밀 키 코드를 새 ID 및 비밀 키 장치로 바꿉니다.
5. 대시보드 생성, 스케줄러 위젯을 선택하고 시작 시간, 기간, 반복 시간을 설정한 후 보기 버튼(눈 이미지)을 눌러 대시보드를 실행합니다.
6. 웍위 시뮬레이션을 실행합니다. 스케줄러 위젯 설정에 따라 5개 릴레이의 켜짐/꺼짐이 결정되며, OLED 디스플레이에 릴레이의 상태와 켜짐 시간이 표시됩니다. 자세한 내용은 이 블로그를 참조하세요:
https://bermainwokwi.blogspot.com/p/koneksi-dengan-arduino-iot-cloud.html#tiga 간략히


코드
// Code generated by Arduino IoT Cloud
#include <ArduinoIoTCloud.h>
#include <Arduino_ConnectionHandler.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display(128, 64, &Wire, -1);
const char DEVICE_LOGIN_NAME[] = "373bb0e9-5f46-48b8-8f42-f73a1e9a359d";
const char SSID[] = "Wokwi-GUEST";
const char PASS[] = "";
const char DEVICE_KEY[] = "1tRg0UWO#tbA7r?xeS20xgUOz";
void onJadwal1Change();
void onJadwal2Change();
void onJadwal3Change();
void onJadwal4Change();
void onJadwal5Change();
time_t UnixTime;
unsigned long skr = 0;
String waktu;
bool r1 = false, r2 = false, r3 = false, r4 = false, r5 = false;
int a = 0, b = 0, c = 0, d = 0, e = 0;
CloudSchedule jadwal1;
CloudSchedule jadwal2;
CloudSchedule jadwal3;
CloudSchedule jadwal4;
CloudSchedule jadwal5;
void initProperties() {
ArduinoCloud.setBoardId(DEVICE_LOGIN_NAME);
ArduinoCloud.setSecretDeviceKey(DEVICE_KEY);
ArduinoCloud.addProperty(jadwal1, READWRITE, ON_CHANGE, onJadwal1Change);
ArduinoCloud.addProperty(jadwal2, READWRITE, ON_CHANGE, onJadwal2Change);
ArduinoCloud.addProperty(jadwal3, READWRITE, ON_CHANGE, onJadwal3Change);
ArduinoCloud.addProperty(jadwal4, READWRITE, ON_CHANGE, onJadwal4Change);
ArduinoCloud.addProperty(jadwal5, READWRITE, ON_CHANGE, onJadwal4Change);
}
WiFiConnectionHandler ArduinoIoTPreferredConnection(SSID, PASS);
void setup() {
Serial.begin(9600);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
for (;;);
}
delay(1500);
initProperties();
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
pinMode(23, OUTPUT);
pinMode(19, OUTPUT);
pinMode(18, OUTPUT);
pinMode(5, OUTPUT);
pinMode(17, OUTPUT);
}
void loop() {
ArduinoCloud.update();
if (jadwal1.isActive()) {
digitalWrite(23, HIGH);
r1 = true;
}
else {
digitalWrite(23, LOW);
r1 = false;
}
if (jadwal2.isActive()) {
digitalWrite(19, HIGH);
r2 = true;
}
else {
digitalWrite(19, LOW);
r2 = false;
}
if (jadwal3.isActive()) {
digitalWrite(18, HIGH);
r3 = true;
}
else {
digitalWrite(18, LOW);
r3 = false;
}
if (jadwal4.isActive()) {
digitalWrite(5, HIGH);
r4 = true;
}
else {
digitalWrite(5, LOW);
r4 = false;
}
if (jadwal5.isActive()) {
digitalWrite(17, HIGH);
r5 = true;
}
else {
digitalWrite(17, LOW);
r5 = false;
}
if (millis() - skr > 1000) {
UnixTime = ArduinoCloud.getLocalTime();
waktu = ctime(&UnixTime);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.print(waktu.substring(0, 11));
display.print(waktu.substring(20));
display.print(" ");
display.println(waktu.substring(11, 19));
if (r1) {
a++;
display.print("R1:ON.......");
display.println(a);
} else {
a = 0;
display.println("R1:OFF.........");
}
if (r2) {
b++;
display.print("R2:ON.......");
display.println(b);
} else {
b = 0;
display.println("R2:OFF.........");
}
if (r3) {
c++;
display.print("R3:ON.......");
display.println(c);
} else {
c = 0;
display.println("R3:OFF.........");
}
if (r4) {
d++;
display.print("R4:ON.......");
display.println(d);
} else {
d = 0;
display.println("R4:OFF.........");
}
if (r5) {
e++;
display.print("R5:ON.......");
display.println(e);
} else {
e = 0;
display.println("R5:OFF.........");
}
display.display();
skr = millis();
}
}
void onJadwal1Change() {
}
void onJadwal2Change() {
}
void onJadwal3Change() {
}
void onJadwal4Change() {
}
void onJadwal5Change() {
}
Wokwi 회로

'ESP32' 카테고리의 다른 글
| 직렬 통신을 통해 ESP32, Arduino Uno를 Arduino IoT Cloud에 연결 (0) | 2024.05.20 |
|---|---|
| ESP32 Arduino IoT Cloud의 Color 위젯을 Wokwi의 RGB LED와 OLED 디스플레이로 연결 (1) | 2024.05.19 |
| ESP32 Arduino IoT Cloud Google 시트를 사용하여 4개의 센서 그래프를 표시 (0) | 2024.05.17 |
| 아두이노 Nano ESP32 빠른 가이드 1 - 시작 & FAQ (0) | 2024.05.15 |
| ESP32 Wokwi 시뮬레이션 및 Arduino IoT Cloud 기반 릴레이 제어 (0) | 2024.05.06 |
| 프로그래밍 예제를 통해 ESP32 버튼 시작하기 (0) | 2024.04.03 |
| DHT11 센서를 사용한 ESP32 BLE 온도 및 습도 모니터링 시스템 (0) | 2024.04.02 |
| ESP32 BLE를 사용하여 LED 제어하기 (0) | 2024.04.01 |
취업, 창업의 막막함, 외주 관리, 제품 부재!
당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약,
아이디어는 있지만 구현할 기술이 없는 막막함.
우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.
이제 고민을 멈추고, 캐어랩을 만나세요!
코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.
제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!
귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.
지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.
귀사가 성공하기까지의 긴 고난의 시간을 캐어랩과 함께 하세요.
캐어랩