JPC - IoT Code in workshop
Blink
int LED_PIN = 2;
void setup() {
// put your setup code here, to run once:
pinMode(LED_PIN,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
delay(100);
digitalWrite(LED_PIN,HIGH); // turn the LED on (HIGH is the voltage level)
delay(100);
digitalWrite(LED_PIN,LOW); // turn the LED off by making the voltage LOW
}
Connecting to Wifi with LED
#include <HTTPClient.h>
#include <WiFi.h>
#include <WebServer.h>
// ชื่อ Wifi และ Password ที่จะเชื่อมต่อ
const char* WIFI_STA_NAME = "test_wifi";
const char* WIFI_STA_PASS = "test_password";
// IP Address
char IP_ADDRESS[15];
// Note: Your IP Address: 8.8.8.8
// เอาไว้เพื่อปิดไม่ให้แสดงค่า IP เฉย ๆ
bool disablePrint = false;
// GPIO 27
int LED_PIN = 27;
// GPIO 2
int LED_WIFI_STATUS = 2;
// ตั้งค่า Port ของ web server
WebServer server(80);
void setup() {.
// ตั้งค่าความเร็วระหว่างการส่งข้อมูลระหว่าง Microcontroller กับคอมของเรา
Serial.begin(921600);
// ตั้งค่า pin ของ LED แสดงสถานะ Wifi เป็นการส่งข้อมูล
pinMode(LED_WIFI_STATUS, OUTPUT);
// เชื่อมต่อ Wfi
WiFi.mode(WIFI_STA);
WiFi.begin(WIFI_STA_NAME, WIFI_STA_PASS);
// Loop ไปจนกว่าจะสามารถเชื่อมต่อ Wifi ได้
while (WiFi.status() != WL_CONNECTED) {
Serial.println("Connecting...");
delay(500);
digitalWrite(LED_WIFI_STATUS, LOW);
}
// เก็บเลข IP ลงตัวแปร
for (int i = 0; i < sizeof(IP_ADDRESS); ++i) {
IP_ADDRESS[i] = WiFi.localIP().toString().charAt(i);
}
digitalWrite(LED_WIFI_STATUS, HIGH);
pinMode(LED_PIN,OUTPUT);
// ตั้งค่า path ให้กับ server ของเรา
server.on("/", handleRoot);
server.on("/on", ledOn);
server.on("/off", ledOff);
server.begin();
}
void loop() {
if (!disablePrint) {
delay(500);
printWifiInfo();
}
// เปิดให้ esp32 สามารถรับ request ได้
server.handleClient();
}
void printWifiInfo() {
// print IP_ADDRESS
Serial.print("Your IP Address is: ");
for (int i = 0; i < sizeof(IP_ADDRESS); ++i) {
Serial.print(IP_ADDRESS[i]);
}
Serial.println();
}
void handleRoot() {
disablePrint = true;
// ส่งค่ากลับ
// 200 คือ ไม่มีข้อผิดพลาด
server.send(200, "text/plain", "Hello from ESP32!");
}
void ledOn() {
disablePrint = true;
digitalWrite(LED_PIN,HIGH);
Serial.println("The light is on!");
server.send(200, "text/plain", "The light is on!");
}
void ledOff() {
disablePrint = true;
digitalWrite(LED_PIN,LOW);
Serial.println("The light is off!");
server.send(200, "text/plain", "The light is off");
}