Reference - 01 - MicroPython trên ESP8266 xử lý module sensor Grove : Green LED, Rotary Angle Sensor, Button
Thứ Sáu, 26 tháng 6, 2020
OK, trước đây khi ngày nghỉ cuối tuần là lôi sensor ra vọc vạch chơi, với bộ Kit cũ mỗi lần làm gì thì dây nhợ hơi lằng nhằng, cũng nhờ dây nhợ vậy mà học được ra rất nhiều kinh nghiệm.
Sau hai tháng bận rộn giờ mới thực sự rãnh rỗi mà đụng tới bo mạch này kia, giờ đến phần khoe trước, để khỏi mất nhiều thời gian nên đã chuyển sang bộ Kit mới : Grove Creator Kit -γ, và code python trên ESP8266 NodeMCU Lua V3 (vài chục ngàn khá rẻ) . keke
Bộ Grove Creator Kit -γ này là bộ có full sensor nhất trong các bộ từ - α - β và đến chính nó γ.
Để code được Python trên ESP8266 yêu cầu phải cài lại firmware hỗ trợ python, thì flash lại thì khá dễ dàng, chủ yếu tải đúng gói về và dùng vài tool nữa là xong, có thể tham khảo bào sau để biết :
Hướng dẫn update firmware cho Esp8266
http://micropython.org/download/all/ esp8266-1m-20200408-v1.12-351-gbd5633778.bin
Toàn bộ làm trên Linux, nếu dùng windowns thì cũng tương tự
Ví dụ 1 : Dùng MicroPython trên ESP8266 điều khiển Grove sensor Green LED tăng giảm độ sáng với Rotary Angle Sensor.
Trong phần này đầu tiên cần biết được thông số của ESP8266, thì cần tham khảo datasheet esp8266 link
Sơ đồ đấu nối : Trên Grove thì không cần bận tâm nhiều đến đấu nối, cứ nhớ rằng có 4 dây, 3 dây sử dụng tương ứng Cực âm, cực dương và Tín hiệu (Màu đen, màu đỏ và màu vàng)
Green LED :
+ ------ 3v
- ------- G
S ------ D7
Rotary Angle Sensor :
+ ------ 3v
- ------- G
S------ A0
Mô tả sẽ như sau : Sử dụng thư thiện machine import Pin, PWM, ADC
Pin : Khai báo Pin cho led, ở đây chọn D7 sẽ là tín hiêu cho led
PWM :Giúp điều chỉnh xung dòng điện các cổng sau hỗ trợ PWM :0, 2, 4, 5, 12, 13, 14 ,15
ADC : Trên bo mạch này chỉ có mỗi A0 hỗ trợ Analog to Digital Conversion, nên bắt buộc phải dùng nó.
Theo code bên dưới là freq là lưu ngưỡng cao nhất của xung dòng điện, duty chỉ nhận giá trị thấp nhất là 0 và cao nhất là freq, khi điều chỉnh Rotary nó sẽ đọc values của Rotary và cập nhật lại cường độ nhưng thỏa mãn ngưỡng đó. Theo mặc định Rotary đọc value của D0 là 1024 (mặc định), tương tự vậy điều chỉnh tăng giảm từ 0 - 1024
OK, lý thuyết là vậy, giờ test thôi.
Rotary giảm
Rotary tăng
Và code hoàn chỉnh như sau, đưa vào function cho nhìn gọn gàng khoa học
Ví dụ 2 : Dùng MicroPython trên ESP8266 điều khiển Grove sensor Green LED tắt mở bằng công tắt Button
Sơ đồ :
Green LED :
+ ------ 3v
- ------- G
S ------ D5(GPOP14)
Button:
+ ------ 3v
- ------- G
S ------ D7(GPOP13)
Nhãn: Reference