[ Prev ] [ Index ] [ Next ]

Chương 8 - Đọc cảm biến nhiệt độ qua giao tiếp I2C

Created Friday 27 June 2014


https://learn.adafruit.com/adafruits-raspberry-pi-lesson-11-ds18b20-temperature-sensing (DS18B20 có bán ở tme.com.vn hay machtudong.vn với giá 27k; nếu đổi thành LM35, nối với IC convert analog-digital MCP3008 - http://monirulpathan.com/afterhours/raspberry-pi-temperature-sensors/, hoặc dùng MCP3201 hoặc ADC0832 có bán ở banlinhkien.vn) - https://learn.adafruit.com/reading-a-analog-in-and-controlling-audio-volume-with-the-raspberry-pi

Mua:
- DS18B20 (done)

Linh kiện

- DS18B20

Nội dung


Dẫn nhập (1 trang)

- mục tiêu học ở chương này
- các linh kiện cần thiết
- ý nghĩa của bài học này, có thể phát triển ra những ứng dụng nào
Để phát triển các ứng dụng điện tử, người ta thường thiết kế dưới dạng các mô-đun (module), mỗi mô-đun đảm nhiệm một chức năng riêng. Nhờ kết cấu dạng module, việc mở rộng tính năng của thiết bị sẽ dễ dàng. Để điều khiển được một hệ thống nhiều module, bộ vi điều khiển cần thông qua các chuẩn giao tiếp nhằm thiết lập được cách trao đổi thông tin thường xuyên với các module. Bạn đọc đã tìm hiểu về chuẩn giao tiếp SPI ở chương trước, đó là một trong các chuẩn thông dụng được triển khai trong các module. Chương này sẽ giới thiệu một chuẩn giao tiếp khác là chuẩn I2C, đặc điểm nổi bật là nó cho phép kết nối đến hàng trăm thiết bị trên cùng một đường truyền dữ liệu, do vậy giúp mở rộng chức năng hệ thống dễ dàng mà không phải tốn thêm chân phần cứng.

Đối tượng để thực hành ở chương này là IC (to do: tên IC), đây là module chuyên dùng để đo nhiệt độ và truyền dữ liệu về cho vi điều khiển qua chuẩn I2C. Với module này, ta bổ sung thêm khả năng đo nhiệt độ cho RPi, giúp thực hiện được nhiều ứng dụng thiết thực như kiểm soát nhiệt độ trong nhà, nhiệt độ máy móc thiết bị, buồng ấp trứng gà, bể cá cảnh, nhà kho hoặc phòng lưu trữ...

Ta sẽ tìm hiểu về cách thức làm việc của chuẩn giao tiếp I2C, cách nối dây để kết nối một module giao tiếp I2C với RPi, và chương trình Python giúp RPi đọc dữ liệu nhiệt độ từ cảm biến DS18B20. Ở các chương sau này ta sẽ kết hợp các cảm biến như IC (to do: tên IC) với việc truyền tin qua internet, có thể chuyển RPi thành một trạm đo lường giám sát môi trường với các module cảm biến đo nhiệt độ, độ ẩm không khí, ánh sáng... và tự nó làm một server hòa mạng internet.

Kết nối mạch điện tử (1 trang - hình ảnh)

- hình sơ đồ nối dây, minh họa mạch kiểu phim âm bản (lấy từ trang web project của nước ngoài như Adafruit)
- hình chụp mạch & breadboard đã kết nối
- coi như khi có sơ đồ nối dây là người ta làm theo được, không cần hướng dẫn từng bước


Chuẩn bị phần mềm (1 trang)

- quy trình từ lúc bật power đến khi sẵn sàng nhập lệnh:
- liệt kê các bước bằng text
- chụp hình màn hình khi chọn menu để vào môi trường nhập lệnh (console)


Code mẫu (1 trang)

- nhập code và xem kết quả:

- nhập các lệnh cấu hình phần cứng
- nhập các lệnh điều khiển


Giải thích các lệnh (3 trang )

- sẽ đưa các lệnh vào file Python để giải thích bằng chế độ comment đằng sau code
- thêm một phần giải thích việc nhập code kiểu interactive (nhập, gõ enter, thấy kết quả ngay, không có biên dịch hay phải nạp vào chip)
- (dự kiến khối lệnh ở mỗi bài trong vòng 20 - 40 dòng)


Bài thực hành thêm (1 trang)

- thêm một số gợi ý để người học tự thực hành (ví dụ: bài học bật tắt 1 LED, thêm bài tập bật tắt tuần tự 2 LED)

----------
2015.07.08:
Cần sửa là: "qua giao tiếp 1-Wire"

Làm theo hướng dẫn của Adafruit:

Lưu ý lúc config:
sudo nano /boot/config.txt
I added the following code to the /boot/config.txt file: (để ở cuối file) (xem post của Hickory Pi https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=100525)
dtoverlay=w1-gpio,gpiopin=4

Cách nối dây: đen = GND, đỏ = 3.3V, trắng = data

Chạy lệnh:
sudo modprobe w1-gpio
sudo modprobe w1-therm
cd /sys/bus/w1/devices
ls
(sẽ thấy hai thư mục, thư mục có số 28-... nghĩa là đã đọc được một slave)
28-000005cca1f9 w1_bus_master1



Số lượt truy cập: