[IOT FULL STACK] Bài 1: Giới thiệu chip esp8266, điều khiển đèn led bật tắt

Giới thiệu phần cứng

ESP8266 là 1 dòng chip SOC 32 bit do công ty Espressif của Trung Quốc sản xuất

Chip esp8266 rất nhỏ và không phù hợp cho các đơn vị sản xuất thủ công nhỏ lẻ. Do đó, các công ty thứ 3, tiêu biểu như Aithingker đã đóng gói chúng trong các module được tích hợp sẵn anten, dòng module tiêu biểu nhất là ESP8266 12f

Và để phù hợp cho nhu cầu nghiên cứu, học tập, các đơn vị khác lại tiếp tục tích hợp các module esp8266 vào trong các kit, tiêu biểu như kit ESP8266 node mcu

Các bộ kit mini này đều được tích hợp sẵn các khối nguồn , khối nạp code, debug, đèn led báo, các cổng kết nối usb. Do đó newbie có thể nhanh chóng đi vào học lập trình mà không cần phải quá quan tâm tới phần cứng

Hiện này các kit này đều được bán rất nhiều trên shope, các bạn chỉ cần mua thêm 1 dây kết nối usb – micro usb là có thể lập trình được

Cài đặt phần mềm arduino

Để lập trình cho chip esp8266, rất nhiều bên thứ ba đã tạo ra các môi trường lập trình. Tiêu biểu trong số đó là môi trường arduino. Với hệ thống thư viện, tài liệu, cộng đồng vô cùng mạnh mẽ arduino là môi trường lập trình được cả thế giới ưa chuộng.

Các bạn có thể vào trang chủ của arduino https://www.arduino.cc/en/software để tải và cài đặt phần mềm

Phần mềm arduino sẽ tự động cài đặt driver ch340 để nạp chương trình xuống cho esp8266

Chú ý: Trên thị trường có 1 số kit node mcu sử dụng driver cp2102, nếu mua phải loại này thì các bạn có thể tải driver của nó tại đây https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads

Nếu driver được cài đặt thành công, khi mở phần mềm arduino lên và cắm kit node mcu vào máy tính qua cáp usb, các bạn sẽ thấy danh sách các cổng COM trong mục Tool -> Port. Hãy chọn đúng cổng COM nhé, trong trường hợp có nhiều cổng COM, các bạn có thể vào setting -> devices trong window để biết COM nào tương ứng với ch340

Cài đặt esp8266 framework

Để lập trình cho chip esp8266, chúng ta phải cài đặt các thư viện esp8266 vào arduino

Các bạn vào File -> Preferences trong mục Additional Boards Manager URLs các bạn copy dòng sau vào

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Sau đó lưu lại và vào Tool -> Board -> Board manager gõ tìm kiếm esp8266

Nhấn install để cài đặt

Sau khi instal thành công, các bạn chọn Tool -> Board -> ESP8266 Boards -> Node MCU 1.0

Vậy là quá trình thiết lập môi trường lập trình cho esp8266 đã hoàn tất

Lập trình cho esp8266

Nhấp nháy đèn led

Trên module esp8266 12f, nhà sản xuất đã hàn sẵn 1 đèn LED màu xanh lam với chân âm của đèn led được nối vào chân GPIO2 của chip esp8266. Chúng ta sẽ dùng đèn led này để thực hiện demo nhé

Bây giờ các bạn copy đoạn mã trên vào và ấn vào nút mũi tên ( uppload) để nạp chương trình xuống cho esp8266

Nếu quá trình nạp thành công, chúng ta sẽ nhận được thông báo Done uploading tiến độ nạp cũng được hiển thị trên màn hình console

Bây giờ, chúng ta sẽ thấy đèn led màu xanh lam trên kit node mcu nhấp nháy khoảng nửa giây 1 lần

via GIPHY

Hàm loop và hàm setup là hai hàm cơ bản của arduino. Hàm setup sẽ được gọi 1 lần duy nhất khi chương trình khởi động và hàm loop sẽ lặp lại mãi mãi các mã code bên trong nó.

Do đèn led được nối vào chân số 2 nên chúng ta cấu hình chân số 2 là OUTPUT ( ngõ ra) bằng lệnh

Bây giờ, để điều khiển led sáng tắt, chúng ta sử dụng hàm digitalWrite

Cụ thể digitalWrite(2,LOW); sẽ xuất mức logic LOW ra chân số 2 ( bật đèn) và digitalWrite(2,HIGH); sẽ xuất mức logic HIGH ra chân số 2 (tắt đèn)

Nếu bạn đang thắc mắc tại sao LOW lại là bật thì nguyên do là đèn led xanh lam được nối chân âm với chân 2 của esp8266. Đèn led sẽ chỉ sáng khi chúng ta xuất mức logic LOW vào chân âm

Lệnh delay(500); tạo ra 1 độ trễ 0.5s giữa quá trình bật tắt. Các bạn có thể tăng giảm con số này để thấy tốc độ nhấp nháy của đèn led thay đổi

Do đoạn mã bật tắt led này được đặt bên trong hàm loop nên nó sẽ được lặp đi lặp lãi mãi mãi. Hãy thư làm 1 ví dụ khác nhé

Yêu cầu: Đèn led nhấp nháy 10 lần khi khởi động sau đó tắt

Do đèn led chỉ cần nhấp nháy 10 lần sau đó tắt nên mình sẽ cho đoạn code nhấp nháy vào vòng lặp for 10 lần. Mình sẽ đưa đoạn code này lên hàm setup vì chúng ta không cần lặp lại công việc nháy này mãi mãi

Sử dụng Serial monitor

Trong quá trình chạy chương trình đang chạy, đôi khi chúng ta sẽ cần in một số dữ liệu ra màn hình để quan sát kết quả. Việc này có thể dễ dàng thực hiện nhờ vào các hàm Serial

Để sử dụng Serial monitor, chúng ta chỉ cần gọi hàm khởi động Serial ở trong setup

Ở đoạn code trên, sau khi thực thi xong nhiệm vụ nháy led 10 lần, mình sẽ in dòng chữ đã hoàn thành nhấp nháy lên màn hình. Các bạn ấn vào biểu tượng kính lúp để mở màn hình monitor sau đó ấn upload code

Sau khi nhấp nháy xong, led sẽ tắt và có thông báo in lên trên màn hình

 

Từ tác giả:

Nếu có bất kì thắc mắc nào trong bài viết, vui lòng để lại comment dưới mỗi bài ! Mình sẽ không trả lời thắc mắc của các bạn ở facebook hay email !

Nếu trong phần code bạn nhìn thấy nhưng thứ kiểu như &amp; thì đó là lỗi hiển thị, cụ thể 3 kí tự < > & bị biến đổi thành như thế
&amp; là &
&lt;  là <
&gt; là >

Giới thiệu Đào Nguyện 80 bài viết
DIY,chế cháo, viết blog chia sẽ kiến thức về lập trình,điện tử - IoT. Rất mong được giao lưu, kết bạn với các bạn cùng đam mê. Địa chỉ Facebook: https://www.facebook.com/nguyendao207