Dự án 08: Tưới cây tự động - MakerEdu Inventor Kit for Micro:bit
Jump to navigation
Jump to search
Mức độ: Trung bình ★★★★★☆☆☆☆☆
Danh sách thiết bị
- 1x [MKE-S13] - Độ ẩm đất
- 1x Động cơ DC bơm nước (kèm ống nước)
- 1x MakerEdu Shield for micro:bit
- 1x Micro:bit
Sơ đồ kết nối
MakerEDU Shield | Thiết bị |
---|---|
Port P0 | [MKE-S13] - Độ ẩm đất |
Motor_A | Động cơ DC bơm nước |
Mô tả dự án
Trong dự án này, bạn sẽ học cách làm một chậu tưới cây tự động.
Bên cạnh, micro:bit có hiển thị biểu cảm gương mặt của cây trồng theo (%) độ ẩm đất lên trên Led Matrix.
Nếu muốn, bạn cũng có thể không cần lắp đặt bơm nước, biểu cảm của cây trồng sẽ nhắc cho bạn tưới cây đấy ^ ^.
Chú ý: Để sử dụng được tính năng Driver tích hợp trên MakerEDU Shield, bạn cần cài đặt thêm Extension "MakerEdu_Hardware" vào dự án của mình (nếu chưa có) theo bài hướng dẫn này. Bên cạnh, để Motor hoạt động ổn định, các bạn cần cấp nguồn riêng 5V qua cổng microUSB trên Shield. |
Các bước thực hiện
Tạo code
- Tạo biến có tên "value".
→ Biến này để bạn lưu trữ giá trị Analog đọc từ cảm biến. - Tạo biến có tên "percent".
→ Biến này để bạn lưu trữ giá trị (%) tương ứng từ giá trị Analog. - Tạo biến có tên "pump".
→ Biến này để micro:bit biết có bật bơm hay không. - Tạo biến có tên "speed".
→ Biến này để điều chỉnh tốc độ của bơm. - Tạo 1 khối forever như hình dưới.
→ Khối này thực hiện các công việc theo trình tự:- Đọc và lưu giá trị Analog đọc từ cảm biến vào trong biến "value".
- Đổi sang đơn vị (%) tương ứng lưu vào biến "percent".
- Cho hiển thị biểu cảm lên Led Matrix tương ứng theo (%) độ ẩm đất.
- Kiểm tra có bật hay tắt bơm không. Nếu có bật bơm, thì điều khiển tốc độ bơm theo (%) nữa.
Blocks
Javascript
let value = 0 let percent = 0 let pump = 0 let speed = 0 basic.forever(function () { value = pins.analogReadPin(AnalogPin.P0) percent = Math.round(Math.map(value, 450, 700, 100, 0)) if (percent <= 25) { basic.showIcon(IconNames.Sad) pump = 1 } else if (percent <= 50) { basic.showIcon(IconNames.Silly) } else if (percent <= 75) { basic.showIcon(IconNames.Asleep) } else { basic.showIcon(IconNames.Happy) pump = 0 } if (pump) { speed = Math.round(Math.map(percent, 25, 75, 30, 10)) l9110.controlMotor(l9110.Motor.MotorA, l9110.Rotate.Forward, speed) } else { l9110.pauseMotor(l9110.Motor.MotorA) } })
Nạp code
- Kết nối [MKE-S13] - Độ ẩm đất đến Port P0 của MakerEdu Shield.
- Kết nối Động cơ DC bơm nước đến Motor_A của MakerEdu Shield.
- Nhấp vào Download để nạp code của bạn sang micro:bit.
- Cắm cảm biến vào đất cây trồng và xem code có hoạt động như mong đợi không.
Kết quả
... hình dự án