Hướng dẫn bắt đầu với IoT: Dự án Blink đơn giản cho người mới


Summary

Bài viết này khám phá thế giới thú vị của Internet Vạn Vật (IoT) thông qua dự án Blink đơn giản dành cho người mới. Nó không chỉ cung cấp kiến thức cơ bản mà còn mở rộng tầm nhìn về những ứng dụng phong phú mà bạn có thể thực hiện với ESP32. Key Points:

  • Khám phá tiềm năng vượt trội của ESP32 với khả năng kết nối Wi-Fi và Bluetooth, mở ra vô số cơ hội cho dự án IoT phức tạp hơn.
  • Nhấn mạnh tầm quan trọng của quản lý rủi ro trong các dự án IoT thông qua việc lập kế hoạch kỹ lưỡng và sử dụng các công cụ mô phỏng để tránh sai sót không mong muốn.
  • Giới thiệu sâu về lập trình nhúng, giải thích chi tiết mã nguồn điều khiển LED nhấp nháy, cùng các khái niệm cơ bản như vòng lặp và biến.
Cuối cùng, bài viết mang đến cái nhìn tổng quát về cách bắt đầu với IoT, đồng thời khuyến khích độc giả khám phá thêm những tiềm năng bất tận trong lĩnh vực này.

Giới thiệu về dự án IoT đầu tiên của tôi

Xin chào mọi người! Mình tên là Ni Made Sekar Jelita Parameswari, nhưng mọi người thường gọi mình là **Jelita**. Hôm nay, mình muốn chia sẻ về dự án IoT đầu tiên của mình, và để tạo không khí một chút, có lẽ một bản nhạc nền sẽ giúp bạn cảm thấy thoải mái hơn đúng không? Nếu được, hãy thử nghe bản nhạc trên nhé!

Mình hiện đang là sinh viên năm hai tại Viện Công nghệ Bandung, chuyên ngành Hệ thống Thông tin và Công nghệ. Mình lần đầu tiếp xúc với Internet of Things - khóa học này - trong kỳ học thứ tư. Thực ra thì ban đầu mình cảm thấy khá bỡ ngỡ với môn học này vì chưa có nhiều kiến thức nền tảng hay kỹ năng nào cả. Nhưng mà may mắn thay, giáo sư Pak Soni đã thông báo rằng chúng mình sẽ tham gia vào một loạt các **dự án IoT**, vậy nên đây chính là khởi đầu cho hành trình của mình!

Dự án đầu tiên mà mình thực hiện mang tên **Blink!** Dự án này sử dụng các linh kiện như vi điều khiển Arduino hoặc Raspberry Pi cùng với cảm biến ánh sáng và đèn LED. Cảm biến sẽ thu thập dữ liệu môi trường xung quanh và truyền tải tín hiệu qua mạng Wi-Fi bằng module ESP8266. Quá trình kết nối giữa các thành phần diễn ra khá đơn giản: sau khi cài đặt mã lập trình cho vi điều khiển để nhận dữ liệu từ cảm biến, nó sẽ xử lý thông tin và kích hoạt đèn LED sáng lên khi phát hiện ánh sáng phù hợp.

Mặc dù vẫn còn nhiều điều cần phải học hỏi trong lĩnh vực IoT này, nhưng mỗi bước đi đều đem lại cho mình sự hứng thú cũng như những trải nghiệm quý giá. Với sự hỗ trợ từ giáo viên và bạn bè cùng lớp, hy vọng rằng dự án lần này sẽ mở ra nhiều cơ hội để khám phá sâu hơn về công nghệ thú vị này!

Những chuẩn bị cần thiết cho dự án Blink!

Chuyến hành trình này sẽ giống như một _sổ tay_ cho cuộc hành trình IoT của tôi, nó sẽ xoay quanh những câu chuyện, thách thức mà tôi gặp phải và những khoảnh khắc vui vẻ trong quá trình thực hiện. Tôi cũng có thể trộn lẫn ngôn ngữ với tiếng Indonesia nếu không thể diễn đạt bằng tiếng Anh! Hy vọng bạn không phiền nhé :]

## Chuẩn bị
Tôi bắt đầu bằng việc chuẩn bị các linh kiện điện tử cần thiết, chẳng hạn như ESP32 DOIT với cổng Type C, cáp USB-C và bảng mạch thử nghiệm. Thật ra thì ESP32 của tôi đã có đèn LED tích hợp sẵn, nhưng tôi chỉ nhận ra điều đó muộn và đã cắt chân của một cái điện trở rồi... Dù sao đi nữa, tôi sẽ không sử dụng đèn LED xanh, điện trở và dây nhảy trong dự án này đâu.
Extended Perspectives Comparison:
Dự án IoTThành phầnKết nốiChương trìnhKết quả
Blink!ESP32, cảm biến ánh sáng, đèn LEDModule ESP8266 qua Wi-FiMã lập trình Arduino IDE cho LED nhấp nháyLED hoạt động hiệu quả với các khoảng thời gian thay đổi
Hệ thống điều khiển ánh sáng thông minhArduino/Raspberry Pi, cảm biến môi trườngKết nối mạng Internet để thu thập dữ liệuChạy mã xử lý dữ liệu và điều khiển thiết bị từ xaCải thiện quản lý năng lượng và tiện ích trong cuộc sống hàng ngày
Khám phá công nghệ mới trong IoTCác linh kiện điện tử đa dạng như resistor, board mạch thử nghiệmThiết lập môi trường phát triển bằng Arduino IDE Biên dịch và tải chương trình lên thiết bị thành công Mở rộng khả năng ứng dụng và nghiên cứu nâng cao hơn
Học hỏi từ thực tiễn dự án IoT đầu tiên của mình
Động lực học tập không ngừng nghỉ

Danh sách linh kiện điện tử cho dự án

Mặc dù tôi đã sắp xếp chúng lại với nhau để có bố cục đẹp mắt bên dưới :D! [Các linh kiện điện tử: Cáp USB-C, Đèn LED xanh, ESP32 Type C, Resistor, Bảng mạch thử nghiệm, Dây nối] Tôi cũng không cần bảng mạch thử nghiệm lắm.. Nhưng ai cũng cần một nơi để dựa vào, đúng không? Và ESP32 cũng vậy. Từ khoảnh khắc tôi cầm nó trên tay, tôi đã cảm nhận được rằng nó khá mong manh. Tôi thật may mắn khi bạn tôi [Zheannetta Apple] đã tổ chức một đơn hàng nhóm có tổ chức cho tất cả các linh kiện (trừ cáp USB-C), thật tuyệt vời! Pak Soni cũng đã đưa cho chúng tôi danh sách và liên kết mua sắm, nhưng chúng tôi vẫn cần kiểm tra tính khả dụng và điều chỉnh theo nhu cầu của mình.

Cấu hình phần mềm Arduino IDE và cài đặt driver

Chúng tôi đã khá căng thẳng với những thuật ngữ kỹ thuật, nhưng Apple rất kiên nhẫn và cô ấy đã khiến dự án này trở nên khả thi, vì vậy mình xin gửi lời cảm ơn tới cô ấy!!^o^)/ Sau đó, mình bắt đầu chuẩn bị các yêu cầu phần mềm và môi trường. Mình đã cài đặt Arduino IDE và đảm bảo rằng nó là phiên bản mới nhất khi Pak Soni thông báo về dự án lần đầu. Tiếp theo, mình cấu hình Arduino IDE bằng cách thêm liên kết [được cung cấp] vào Trình quản lý Bảng bổ sung và sau đó cài đặt Gói Bảng ESP32 bằng cách chọn _esp32_ của Espressif Systems.


Cấu hình phần mềm Arduino IDE và cài đặt driver Free Images


Kết nối ESP32 với máy tính qua USB-C

Tôi đã chọn ESP32 DEVKIT V1 để phù hợp với loại board ESP32 của mình. Pak Soni nói rằng loại "DOIT" là loại thường được bán ở Indonesia. Sau khi cài đặt xong cấu hình Arduino IDE, tôi kết nối ESP32 với thiết bị của mình bằng cáp USB-C. Tôi đã thiết lập ESP32 như thế này (jumper chỉ là một chi tiết nhỏ thôi nhé). Đèn indicator sáng lên, có nghĩa là nó đã được kết nối với thiết bị! Tôi thật sự rất cẩn thận khi cắm vào hehe.

Giờ thì chúng ta cần cài đặt driver USB to UART mạnh mẽ qua liên kết [đã cung cấp]. Tôi đã chọn phần mềm từ Universe. Thú thật, lúc đầu hơi bối rối vì không thấy thay đổi gì trong Arduino IDE và cũng không có thông báo pop-up như những video hướng dẫn khác. Vì vậy, tôi quyết định tìm hiểu thêm và khám phá những điều chưa biết. Trong file tải về, tôi nhấn chuột phải vào “silabser” Setup Information và chọn Install, nghĩ rằng có thể làm điều gì đó hữu ích. Chắc chắn nó đã hoạt động theo cách nào đó nhưng không thể nhìn thấy rõ ràng đối với bản thân nóng lòng của tôi. Cuối cùng, tôi hỏi bạn thân yêu của mình, Apple, xem liệu có bước nào mà tôi bỏ lỡ không.

Mở file ví dụ Blink! trong Arduino IDE

Cô ấy nói rằng mọi thứ đều đúng và tôi chỉ cần chọn tùy chọn Port trong Arduino IDE. Tôi cảm thấy nhẹ nhõm đến mức đã bắt đầu chơi một chút nhạc nền. Nếu bạn nhìn vào phần bên trên, sẽ thấy có mục Port nằm dưới tùy chọn Boards. Tùy chọn này sẽ tự động được kích hoạt sau khi chúng ta cài đặt driver và kết nối ESP32. Trên Windows, nó sẽ hiển thị là "COM" (của tôi hiển thị là "COM3"), vì vậy hãy nhớ chọn cái đó nhé!

Sau đó, chúng ta có thể mở file ví dụ Blink! bằng cách vào File > Examples > 01. Basics > Blink. Nó sẽ hiện ra những dòng mã, hay trong thế giới của Arduino IDE, họ gọi đó là sketches. Hơi có vẻ sketchy một chút đấy nhỉ!

**Nguyên lý hoạt động**: Chương trình này điều khiển đèn LED nhấp nháy thông qua việc lập trình chân GPIO của board Arduino, cho phép hiểu rõ hơn về cách thức hoạt động.

**Tài liệu tham khảo**: Bạn có thể tìm hiểu thêm về các hàm sử dụng trong ví dụ Blink qua tài liệu chính thức của Arduino.

**Vật liệu cần thiết**: Để dễ dàng chuẩn bị cho dự án này, bạn nên liệt kê cụ thể loại board Arduino (như Uno hoặc Nano), LED, điện trở và dây nối để người mới không bị bỡ ngỡ khi bắt đầu thực hiện dự án này nhé.

Phân tích mã nguồn cho sketch Blink!


/* Nhấp nháy LED
Chương trình này làm cho một đèn LED bật trong một giây, sau đó tắt trong một giây, cứ như vậy lặp lại.
Hầu hết các board Arduino đều có một LED tích hợp mà bạn có thể điều khiển. Trên các board như UNO, MEGA và ZERO, nó được kết nối với chân số 13, còn trên MKR1000 là chân số 6.
Biến LED_BUILTIN được thiết lập để chỉ đúng chân LED bất kể loại board nào được sử dụng.
Nếu bạn muốn biết chân nào của LED tích hợp trên model Arduino của bạn đang kết nối, hãy kiểm tra thông số kỹ thuật tại: https://www.arduino.cc/en/Main/Products

Đã sửa đổi ngày 8 tháng 5 năm 2014 bởi Scott Fitzgerald
Đã sửa đổi ngày 2 tháng 9 năm 2016 bởi Arturo Guadalupi
Đã sửa đổi ngày 8 tháng 9 năm 2016 bởi Colby Newman

Mã ví dụ này thuộc về miền công cộng.
https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink */

// Hàm setup chạy một lần khi bạn nhấn reset hoặc cấp nguồn cho board.
void setup() {
// Khởi tạo chân digital LED_BUILTIN thành đầu ra.
pinMode(LED_BUILTIN, OUTPUT);
}

// Hàm loop chạy liên tục mãi mãi.
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // Bật đèn LED (HIGH là mức điện áp).
delay(1000); // Chờ một giây.
digitalWrite(LED_BUILTIN, LOW); // Tắt đèn LED bằng cách đưa điện áp về LOW.
delay(1000); // Chờ thêm một giây nữa.
}

Quá trình biên dịch và tải chương trình lên ESP32

Bản phác thảo này chủ yếu bao gồm hai cấu trúc chính: setup() và loop(). Phần setup là nơi mà mã chỉ chạy một lần duy nhất khi vi điều khiển được bật lên. Ngược lại, loop() là phần sẽ được thực hiện liên tục (không có ý đùa đâu!). Trong loop(), chúng ta thiết lập điện áp của LED ở mức cao và chờ trong 1000ms, tức là 1 giây, để LED phát sáng trong thời gian này. Sau đó, chúng ta giảm điện áp xuống thấp trong 1 giây nữa và lặp lại quá trình! Thật đơn giản phải không?

Tôi thấy IDE này khá độc đáo. Để chạy mã, chúng ta cần "xác nhận" nó bằng cách nhấn nút kiểm tra. Hành động này tương tự như việc biên dịch mã nguồn. Sau đó, thông báo cho tôi biết rằng việc biên dịch đã hoàn tất và chúng ta cần tải chương trình lên ESP32. May mắn thay, không có lỗi nào xảy ra! :D

Để tăng cường quy trình biên dịch và tải chương trình lên ESP32, trước tiên hãy hiểu rằng IDE như Arduino IDE hoặc PlatformIO đóng vai trò rất quan trọng trong việc tạo mã nguồn hiệu quả. Khi kết nối ESP32 với máy tính qua USB, bạn cần đảm bảo đã cài đặt driver phù hợp để nhận diện thiết bị.

Ngoài ra, đối với dự án Blink này, bạn cũng sẽ cần các thư viện cần thiết như `Arduino.h`. Việc cài đặt các thư viện này thường diễn ra qua menu thư viện trong IDE mà bạn đang sử dụng.

Cuối cùng, nếu gặp phải những sự cố phổ biến khi tải chương trình lên ESP32 như lỗi kết nối hay lỗi biên dịch thì hãy kiểm tra lại cổng COM trên máy tính hoặc xác minh xem code có đúng cú pháp hay không nhé! Những thông tin trên sẽ giúp bạn nắm rõ hơn về quy trình và chuẩn bị tốt hơn cho dự án của mình.

Thử nghiệm thay đổi thời gian nhấp nháy LED

Sau khi hoàn thành các bản phác thảo, tôi đã tải chương trình lên và... nó đã hoạt động! Thật tuyệt vời! Tôi cũng thực hiện một chút thí nghiệm. Tôi đã điều chỉnh cả hai khoảng thời gian trì hoãn thành 3000ms để đèn LED đợi 3 giây trước khi bật trong 3 giây và cứ như vậy. Việc thay đổi thời gian nhấp nháy này không chỉ ảnh hưởng đến cách mà người dùng cảm nhận về ánh sáng mà còn tạo ra những hiệu ứng thị giác khác nhau. Để dừng vòng lặp, tôi đã biên dịch và tải lên một sketch trống cho ESP32. Khi đó, đèn nhấp nháy sẽ ngừng lại và tôi có thể ngắt kết nối ESP32 một cách dễ dàng. Dự án này không chỉ đơn thuần là kiểm tra chức năng của LED mà còn mở ra nhiều khả năng ứng dụng trong IoT, nơi chúng ta có thể sử dụng các linh kiện như điện trở và bo mạch Arduino hoặc ESP8266 để xây dựng những sản phẩm thông minh hơn trong tương lai.

Kết thúc hành trình đầu tiên và những suy nghĩ sau khi hoàn thành

Thật là vui! Hooray! Chúc mừng bạn đã hoàn thành bước đầu tiên - khởi động - Jel! Hãy chờ đợi hành trình tiếp theo của tôi nhé~~ Nếu bạn có bất kỳ ý kiến, suy nghĩ hay điều gì cần cải thiện, hãy cho tôi biết! Cảm ơn bạn đã đến được phần này^^![Đèn LED tích hợp màu xanh đã sáng lên, yay!]

Reference Articles

Blynk là gì? Cách ứng dụng và sử dụng Blynk 2.0 cực kì ...

Với Blynk Legacy, người dùng có thể dễ dàng tạo ra các ứng dụng điều khiển từ xa cho các thiết bị thông minh mà không cần phải có kiến thức sâu về lập trình.

Source: FPTShop

Tất tần tật về Blynk V2 - New IOT Platform từ Bkynk.io

Trong bài này chúng ta cùng tìm hiểu Blynk V2 và tạo một project điều khiển đèn led. Đây là một IOT Platform nâng cấp từ Blynk v1 mà chúng ta ...

Hướng dẫn cài đặt và sử dụng Blynk New 2.0 với Esp8266

Bài viết này sẽ hướng các bạn cài đặt và sử dụng app Blynk new 2.0 trên Arduino IDE với Esp8266, giúp các bạn có cái nhìn tổng quan những ưu và nhược điểm ...

Source: Nshopvn.com

Cách dùng Blynk IOT với ESP32 điều khiển giám sát thiết bị

1. Khởi tạo server Blynk. a. Đăng ký tài khoản; b. Tạo bảng cơ sở dữ liệu Template; c. Thêm thiết bị mới vào server Blynk · 2. Kết nối ESP32 với ...

Internet Of Things (IoT) : cho người mới bắt đầu

Nội dung được thiết kế một cách cơ bản giúp học viên có cái nhìn tổng quan về việc xây dựng hệ thống, sản xuất thiết bị và dễ dàng tham gia vào ...

Source: GitHub Pages

Hướng dẫn cài đặt ESP8266 NodeMCU và kết nối với Blynk

Để có thể sử dụng App Blynk chúng ta cần phải đăng ký một tài khoản mới. Ở đây có 2 cách đăng ký bằng Facebook hoặc tạo một tài khoản mới (Create New Account).

Source: arduinokit.vn

中川 威雄 (Takeshi Nakagawa)

Expert

Related Discussions

❖ Related Articles