1. สอนใช้งาน Arduino เซ็นเซอร์ตรวจจับควัน MQ-2 Smoke Sensor
  2. รีวิว สเตปมอเตอร์ Nema 17 17HS08 0.4A
  3. สอนใช้งานบอร์ดคอนโทรลมอเตอร์ L298N ควบคุมมอเตอร์ DC ผ่านแอพ Blynk
  4. การใช้งาน Matrix Keypad 3×4 ใส่ Password สั่งงาน Relay
  5. โปรเจคเครื่องแจ้งเตือนน้ำท่วมผ่านLINE พร้อมระบบสูบน้ำอัตโนมัติ คอนโทรลผ่านแอพ Blynk ได้ด้วย
  6. สาธิตการใช้งาน โมดูลนาฬิกา DS3231
  7. รีวว Motor Speed Controller 12-24 V 240 W 10A
  8. เตรียมเปิดตัวปีหน้า Apple Glasses แว่น AR/VR ตัวแรกของ Apple
  9. รีวิว ชุดควบคุมมอเตอร์ PWM DC Motor Controller 0-60V 60A
  10. รีวิวโมดูล A4988 Stepper Motor Driver
  11. สอนทำ NodeMCU ESP8266/ESP32 pin out active 3.3V to 5V
  12. เปลี่ยนปลั๊กไฟธรรมดาให้เป็น Smart Plug IoT
  13. มินิโปรเจค ตู้สาธิตคลื่นแสดงผลของคลื่นน้ำเวลากระทบชายฝั่ง
  14. มาทำความรู้จักกับ Smart Plug ปลั๊กไฟอัจฉริยะ
  15. รีวิวบอร์ด 3 Axis GRBL 1.1f CNC Controller
  16. โปรเจค DIY เครื่องรดน้ำต้นไม้อัตโนมัติบนมือผ่านแอพพลิเคชั่น Blynk
  17. Smart Home Device 2022
  18. ถนนชาร์จรถยนต์ไฟฟ้า
  19. สอนใช้งาน Mini CNC รุ่น CNC-3018 เบื้องต้น
  20. IIoT กับ 6 อุตสาหกรรมที่มุ่งหน้าสู่รูปแบบดิจิทัล
  21. 5 Use Case ของ Computer Vision ในอุตสาหกรรมการผลิตแห่งปี 2022
  22. รีวิว Mini CNC รุ่น CNC-3018
  23. สอนใช้งาน Servo Tester ไม่ต้องเขียนโปรแกรมก็ใช้งานได้
  24. สอนใช้งาน Mini CNC รุ่น CNC3-3018Pro เบื้องต้น
  25. ย้อนอดีตจากยุคต้นกำเนิดรถยนต์ไฟฟ้า เมื่อกว่า 140 ปี สู่ รถพลังงานแสงอาทิตย์เพื่อการเดินทางระยะไกลรุ่นแรกของโลก “LIGHTYEAR O”
  26. สอนใช้งาน Fingerprint Sensor รุ่น R307 กับ Arduino UNO
  27. รีวิว เครื่องMini CNC รุ่น CNC3-3018Pro
  28. มินิโปรเจค Arduino ทำประตูไฟฟ้าด้วยเซ็นเซอร์สแกนลายนิ้วมือกับกลอนแม่หล็กไฟฟ้า
  29. สอนใช้งานเซ็นเซอร์วัดความชื้นในดิน (Soil Moisture Sensor Module) ให้แสดงค่าในแอพ Blynk
  30. รีวิวบอร์ดควบคุมความเร็วสเต็ปมอเตอร์ : แบบไม่ต้องเขียนโปรแกรม ควบคุมความเร็วเป็นรอบได้
  31. รีวิว : ชุดเคลื่อนที่ 3 แกน Work Bee CNC
  32. รีวิว : ชุดเคลื่อนที่ 2 แกน ACRO Acrylic KIT Set with Motor
  33. โปรเจค DIY : รถตัดหญ้า ควบคุมบนมือถือผ่าน IoT
  34. รีวิวเครื่องแกะสลักเลเซอร์ VIGO VG-L7 ตอนที่ 2 วิธีการใช้งาน
  35. รีวิวเครื่องแกะสลักเลเซอร์ VIGO VG-L7 ตอนที่ 1 สเปค ข้อดีข้อด้อย
  36. รีวิวเครื่องแกะสลักเลเซอร์ NEJE MASTER 2S 20W ตอนที่ 2 แนะนำใช้งาน
  37. รีวิวเครื่องแกะสลักเลเซอร์ NEJE MASTER 2S 20W ตอนที่ 1 สเปคเครื่อง
  38. สอนใช้งาน Arduino UNO รับสัญญาณ AnalogInput จากตัวต้านทานปรับค่าได้ ปรับความสว่างหลอดไฟ LED และแสดงผลค่า Voltage ผ่านจอ LCD
  39. สอนการใช้งาน Ultrasonic Module HC-SR04 กับ Arduino UNO
  40. สอนใช้ Arduino : ต่อจอแอลซีดี 20×4 ผ่านพอร์ต I2C กับบอร์ด ARDUINO UNO
  41. สอนลงบอร์ด NodeMCU ESP32 กับโปรแกรม Arduino IDE
  42. สอนใช้งานเซ็นเซอร์วัดระดับน้ำฝน Rain/Water Detection Sensor Module กับ Arduino UNO
  43. สอนใช้งานโมดูลเซ็นเซอร์ตรวจจับวัตถุ IR Infrared กับ Arduino UNO
  44. สอนใช้งาน Sensor Water Level ให้แสดงค่าระดับน้ำในแอพ Blynk
  45. สอนควบคุม Servo Motor ด้วยแอพพลิเคชั่น Blynk
  46. รีวิวหุ่นยนต์วาดรูป Robot Drawing ตอนที่ 3 : การใช้งานโปรแกรม Openbuilds Control (ต่อ)
  47. สอนใช้งาน NodeMCU ESP8266 ส่งข้อความแจ้งเตือนผ่าน LINE Notify
  48. โปรเจคเครื่องซักผ้าแตะบัตร (RFID) มีการแจ้งเตือนผ่าน Line และส่งข้อมูลไปยัง Google Sheet
  49. สอนทำ Esp32 CAM เป็น Video Streaming บนแอพ Blynk
  50. สอนทำ WiFi Manager for NodeMCU
  51. รีวิวหุ่นยนต์วาดรูป Robot Drawing ตอนที่ 2 : การใช้งาน Openbuilds Control
  52. รีวิวหุ่นยนต์วาดรูป Robot Drawing ตอนที่ 1 : Setting
  53. Smart Farm โรงเรือนอัจฉริยะ
  54. สอนใช้งาน Arduino Uno ควบคุม Servo Moto รุ่น SG90
  55. การติดตั้ง Library สำหรับโปรแกรม Arduino IDE
  56. สอนการใช้งานบอร์ด Arduino UNO กับ RFID RC522 อ่านคีย์การ์ดควบคุมการเปิด-ปิดไฟ LED
  57. สอนการใช้งาน Arduino UNO กับเซ็นเซอร์ Water Level ควบคุมการเปิด-ปิดไฟ LED และส่งเสียงเตือนผ่าน ฺ
  58. สอนการใช้งาน LDR Module กับบอร์ด Arduino UNO ควบคุมการเปิด-ปิดหลอดไฟ LED
  59. สอนการใช้งาน LCD 16×2 พร้อม I2C Interface กับบอร์ด Arduino UNO
  60. สอนการใช้งาน NodeMCU ESP8266 กับโปรแกรม Arduino IDE
  61. สอนการใช้งาน ควบคุมระบบไฟในอาคาร ผ่านบอร์ด ESP8266 กับ RELAY MODULE 5V 4 CHANNEL ด้วยแอพ BLYNK
  62. การคำนวณค่าตัวต้านทาน เพื่อใช้กับหลอดไฟ LED
  63. Esp8266 & DHT11 To Blynk
  64. Arduino UNO & DHT11 To LCD
  65. มาทำความรู้จักกับ FarmBot หุ่นยนต์ปลูกผักสวนครัว
  66. Gartner เผย 12 เทรนด์เทคโนโลยีเชิงกลยุทธ์แห่งอนาคตปี 2022
  67. Arduino UNO Mini Limited Edition
  68. Arduino Nano V.3 บอร์ดไมโครคอนโทรลเลอร์ที่จิ๋วแต่แจ๋ว
  69. ทำความรู้จักกับบอร์ด Arduino Mega 2560
  70. Xiaomi เปิดตัวลำโพง Soundbar 3.1 ch พร้อมซับวูฟเฟอร์ไร้สาย ที่ออกมาท้าชนแบรนด์ดังในไทย
  71. เผยสเปค Samsung Galaxy Tab A8 (2021) คาดเปิดตัวเร็ว ๆ นี้
  72. Xiaomi 12 Series เตรียมจับมือกับกล้อง Leica และมาพร้อมกับชิปเซ็ต Snapdragon 898 รุ่นแรกของโลก
  73. ทำความรู้จัก : บอร์ด ไมโครคอนโทรลเลอร์ ARDUINO UNO R3 คืออะไร ใช้งานอะไรได้บ้าง
  74. Arduino IDE คืออะไร มีวิธีการติดตั้งโปรแกรมอย่างไร และการใช้โปรแกรมยังไงกันนะ
  75. มอเตอร์ไฟฟ้าคืออะไร มีกี่ชนิด ใช้งานอย่างไร
  76. ทรานซิสเตอร์ (Transistor) คืออะไร มีหน้าที่อะไร และสามารถประยุกต์ใช้งานอะไรได้บ้างนะ
  77. Power Supply มีกี่ประเภท ประกอบด้วยอะไรบ้าง
  78. ตัวต้านทาน (resistor) คืออะไร มีหน้าที่อะไร และมีกี่ประเภท
  79. โปรเจค DIY : ชุดรดน้ำต้นไม้อัตโนมัติ ทำเล่นเองได้ง่ายๆ
  80. IC คืออะไร ใช้งานอย่างไร
  81. Photoresistor คืออะไร มีหลักการทำงานอย่างไร และนำไปใช้อะไรได้บ้าง
  82. Capacitor คืออะไร
  83. ไดโอด (Diode) คืออะไร มันนำไปใช้ทำอะไรกันนะ?
  84. เปิดตัวระบบ ColorOS 12
  85. Samsung Galaxy Watch 4
  86. Canon เปิดตัว RF5.2mm f/2.8L Dual Fisheye
  87. Hyundai เปิดตัวโดรนแท็กซี่ Hyundaix Uber
  88. Windows 11 เปิดให้ Update แล้ววันนี้
  89. Huawei เปิดตัว Matebook 14s
  90. สิ่งที่ต้องรู้ก่อนติดตั้ง Solar Cell
  91. TCL เปิดตัวแว่นตาอัจฉริยะ Thunderbird
  92. mRNA Vaccine
  93. 10 เทคโนโลยีที่น่าสนใจในปี 2021 จาก MIT
  94. ปัญญาประดิษฐ์ AI
  95. Lithium-Metal Battery อนาคตของรถยนต์พลังงานไฟฟ้า

สอนทำ Esp32 CAM เป็น Video Streaming บนแอพ Blynk

บทความนี้จะสอนการใช้งาน ESP32-CAM ทำเป็นกล้อง Video Streaming ให้สามารถดูภาพแบบ real-time ผ่านโทรศัพท์มือถือบนแอพ Blynk ของเราได้

ESP32-CAM คืออะไร?

ESP32-CAM เป็นโมดูลพร้อมกล้องวิดีโอขนาดเล็กในตัว สิ่งนี้ช่วยให้สามารถใช้งานฟังก์ชั่นใหม่ ๆ เช่น การเฝ้าระวังหรือการจารกรรมระยะไกลจับภาพทุกสิ่งที่เกิดขึ้นเมื่อคุณไม่อยู่และส่งไปยังอุปกรณ์ใด ๆ เพื่อบันทึกหรือเพื่อให้สามารถมองเห็นได้ เป็นโมดูลที่คุณสามารถใช้งานกับโครงการต่าง ๆ มากมายและกับ Arduino เป็นโมดูลที่สมบูรณ์พร้อมด้วยไมโครคอนโทรลเลอร์ในตัวซึ่งสามารถทำให้ทำงานได้อย่างอิสระ นอกเหนือจากการเชื่อมต่อ WiFi + Bluetooth แล้วโมดูลนี้ยังมีกล้องวิดีโอในตัวและช่องเสียบ microSD สำหรับจัดเก็บข้อมูลอีกด้วย

สเปค

  • The smallest 802.11b/g/n Wi-Fi BT SoC module
  • Low power 32-bit CPU,can also serve the application processor
  • Up to 160MHz clock speed, summary computing power up to 600 DMIPS
  • Built-in 520 KB SRAM, external 4MPSRAM
  • Supports UART/SPI/I2C/PWM/ADC/DAC
  • Support OV2640 and OV7670 cameras, built-in flash lamp
  • Support image WiFI upload
  • Support TF card
  • Supports multiple sleep modes
  • Embedded Lwip and FreeRTOS
  • Supports STA/AP/STA+AP operation mode
  • Support Smart Config/AirKiss technology
  • Support for serial port local and remote firmware upgrades (FOTA)

Pin

การติดตั้งโปรแกรม Arduino IDE  →  คลิก

โหลดLibrary

Blynk   →   https://github.com/blynkkk/blynk-library.git

Esp32 CAM  →  https://github.com/espressif/esp32-camera

สอนการติดตั้ง Library สำหรับโปรแกรม Arduino IDE  →  คลิก

ดาวโหลดแอพ Blynk  → คลิก

ตัวอย่างโค้ด

#include “src/OV2640.h”
#include <WiFi.h>
#include <WebServer.h>
#include <WiFiClient.h>

// Select camera model
//#define CAMERA_MODEL_WROVER_KIT
//define CAMERA_MODEL_ESP_EYE
//#define CAMERA_MODEL_M5STACK_PSRAM
//#define CAMERA_MODEL_M5STACK_WIDE
#define CAMERA_MODEL_AI_THINKER

#include “camera_pins.h”

char ssid[] = “***************”; //ใส่ชื่อไวไฟ
char pass[] = “***************”; //ใส่รหัสไวไฟ

OV2640 cam;

WebServer server(80);

const char HEADER[] = “HTTP/1.1 200 OK\r\n” \
“Access-Control-Allow-Origin: *\r\n” \
“Content-Type: multipart/x-mixed-replace; boundary=123456789000000000000987654321\r\n”;
const char BOUNDARY[] = “\r\n–123456789000000000000987654321\r\n”;
const char CTNTTYPE[] = “Content-Type: image/jpeg\r\nContent-Length: “;
const int hdrLen = strlen(HEADER);
const int bdrLen = strlen(BOUNDARY);
const int cntLen = strlen(CTNTTYPE);

void handle_jpg_stream(void)
{
char buf[32];
int s;

WiFiClient client = server.client();

client.write(HEADER, hdrLen);
client.write(BOUNDARY, bdrLen);

while (true)
{
if (!client.connected()) break;
cam.run();
s = cam.getSize();
client.write(CTNTTYPE, cntLen);
sprintf( buf, “%d\r\n\r\n”, s );
client.write(buf, strlen(buf));
client.write((char *)cam.getfb(), s);
client.write(BOUNDARY, bdrLen);
}
}

const char JHEADER[] = “HTTP/1.1 200 OK\r\n” \
“Content-disposition: inline; filename=capture.jpg\r\n” \
“Content-type: image/jpeg\r\n\r\n”;
const int jhdLen = strlen(JHEADER);

void handle_jpg(void)
{
WiFiClient client = server.client();

cam.run();
if (!client.connected()) return;

client.write(JHEADER, jhdLen);
client.write((char *)cam.getfb(), cam.getSize());
}

void handleNotFound()
{
String message = “Server is running!\n\n”;
message += “URI: “;
message += server.uri();
message += “\nMethod: “;
message += (server.method() == HTTP_GET) ? “GET” : “POST”;
message += “\nArguments: “;
message += server.args();
message += “\n”;
server.send(200, “text / plain”, message);
}

void setup()
{

Serial.begin(115200);

camera_config_t config;
config.ledc_channel = LEDC_CHANNEL_0;
config.ledc_timer = LEDC_TIMER_0;
config.pin_d0 = Y2_GPIO_NUM;
config.pin_d1 = Y3_GPIO_NUM;
config.pin_d2 = Y4_GPIO_NUM;
config.pin_d3 = Y5_GPIO_NUM;
config.pin_d4 = Y6_GPIO_NUM;
config.pin_d5 = Y7_GPIO_NUM;
config.pin_d6 = Y8_GPIO_NUM;
config.pin_d7 = Y9_GPIO_NUM;
config.pin_xclk = XCLK_GPIO_NUM;
config.pin_pclk = PCLK_GPIO_NUM;
config.pin_vsync = VSYNC_GPIO_NUM;
config.pin_href = HREF_GPIO_NUM;
config.pin_sscb_sda = SIOD_GPIO_NUM;
config.pin_sscb_scl = SIOC_GPIO_NUM;
config.pin_pwdn = PWDN_GPIO_NUM;
config.pin_reset = RESET_GPIO_NUM;
config.xclk_freq_hz = 20000000;
config.pixel_format = PIXFORMAT_JPEG;

// Frame parameters
// config.frame_size = FRAMESIZE_UXGA;
config.frame_size = FRAMESIZE_QVGA;
config.jpeg_quality = 12;
config.fb_count = 2;

#if defined(CAMERA_MODEL_ESP_EYE)
pinMode(13, INPUT_PULLUP);
pinMode(14, INPUT_PULLUP);
#endif

cam.init(config);

IPAddress ip;

WiFi.mode(WIFI_STA);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(F(“.”));
}
ip = WiFi.localIP();
Serial.println(F(“WiFi connected”));
Serial.println(“”);
Serial.println(ip);
Serial.print(“Stream Link: http://”);
Serial.print(ip);
Serial.println(“/mjpeg/1”);
server.on(“/mjpeg/1”, HTTP_GET, handle_jpg_stream);
server.on(“/jpg”, HTTP_GET, handle_jpg);
server.onNotFound(handleNotFound);
server.begin();
}

void loop()
{
server.handleClient();
}

ดาวน์โหลดโค้ด  → คลิก

หมายเหตุ ดาวน์โหลดเป็นโฟล์เดอร์นะครับ 

ขั้นตอนการอัปโปรแกรมลงบอร์ด

1. เปิดโปรแกรม Arduino IDE ขึ้นมา เปิดไฟล์โค้ดที่ผมแปะไว้ให้ดาวน์โหลดขึ้นมา ดังรูป

2. ทำการใส่ชื่อไวไฟ กับรหัสไวไฟที่ต้องการให้บอร์ดเชื่อมต่อ

3. ไปที่เมนู Tools  →  Board : “xxxxxxx”  →  ESP32 Arduino  →  Esp32 Wrover Module

4. ไปที่เมนู Tools  แล้วทำการเซ็ทค่า ดังรูป

5. กดอัปโหลดโค้ดลงบอร์ด และรอจนเสร็จ

6. เปิด Serial Monitor ขึ้นมาแล้วเลือก Serial เป็น 115200 แล้วทำการคัดลอก IP ไว้ครับ แล้วเราไปต่อกันที่แอพ Blynk ครับ

ขั้นตอนการใช้งานแอพ Blynk

1. เมื่อเข้าแอพ Blynk  และทำการ Login เข้ามาเรียบร้อยแล้ว ให้กด New Project จากนั้นทำตามขั้นตอน ดังรูป

2. แอพจะส่ง Token ไปยังอีเมลของเรา หลังจากนั้นกด OK

หมายเหตุ “เราจะไม่ใช้ Token  นะครับ”

3. จะเจอหน้าต่างดังรูป หลังจากนั้นกดตรงเครื่องหมาย บวก ดังรูป

4. เลือกเครื่องมือ “Video Streaming” ดังรูป

5. เราจะได้จอวีดีโอมา ดังรูป หลังจากนั้นให้คลิกที่ตัวจอวีดีโอหนึ่งครั้ง

6. จะเจอหน้าต่าง แล้วทำการวาง IP ที่ได้จาก Serial Monitor ลงไปได้เลย และกดกลับ

7. คลิกที่ตัว สามเหลี่ยมมุมขวาบน เพื่อเชื่อมต่อกับบอร์ดครับ

8. เราก็จะได้ Video Streaming มา ดังรูป

หมายเหตุ! Esp32 CAM กับมือถือต้องเชื่อมต่อไวไฟตัวเดียวกันนะครับ

แค่นี้เราก็ทำ Video Streaming บนแอพ Blynk ได้แล้วครับ เพื่อน ๆ ก็สมารถนำไปประยุกต์ใช้กับงานของเพื่อน ๆ ดูนะครับ

Banner Content

0 Comments

Leave a Comment