[Project] Cảm biến không dây đơn giản với MSP430 và nRF24L01

Mạch cảm biến không dây sử dụng MSP430 và nRF24L01

 Mạch cảm biến không dây sử dụng MSP430 và module nRF24L01

Thành phần chính của mạch gồm có

  •  MCU MSP430G2553
  •  Module nRF24L01
  •  Cảm biến DS18B20 (Cảm biến số cho dễ dùng)
  •  KIT LaunchPad dòng ValueLine

Nguyên lý hoạt động của mạch

– Đo nhiệt độ, điện áp trên mạch Client => Gửi dữ liệu này về Station.

– Tại Station có nhiệm vụ chuyển dữ liệu này lên PC thông qua UART.

– Trên PC, một ứng dụng viết bằng C# sẽ nhận dữ liệu được gửi lên sau đó hiển thị thông qua Khung hiển thị và Đồ thị thời gian.
Song song với đó cũng lưu trữ dữ liệu này vào cơ sở dữ liệu dùng SQLite. (Có tùy chọn lưu trữ hay không)

Thông số mạch

– Tại Client dùng nguồn 9V từ pin hoặc sạc…

– Station sử dụng luôn nguồn cấp 5V từ cổng USB của máy tính.

– Khoảng cách đã test thực tế vào khoảng 30m (Môi trường không vật cản)

Mạch Client

Mạch Client

Mạch Station

Mạch Station (thực chất là board mở rộng KIT LaunchPad)

Sơ đồ nguyên lý

Client Schematic

Sơ đồ nguyên lý mạch Client

Đối với mạch Station, chỉ là kết nối cách chân của module với KIT LaunchPad. Các bạn có thể xem trong phần khai báo của mã nguồn.

Mã nguồn cho VDK (Viết trên IAR)

Source MSP430 – nRF24L01

 

Desktop Application (Non-Public)

Giao diện Realtime View ứng dụng PC

Giao diện Realtime View ứng dụng PC

Giao diện phần ReViewer

Giao diện phần ReViewer (Quản lý những dữ liệu đã thu được từ trước)

Chi tiết phần mềm

  •  Ngôn ngữ sử dụng: CSharp (C#) trên VS 2012.
  •  Hệ cơ sở dữ liệu: SQLite
  •  Hiển thị thông số, vẽ đồ thị theo thời gian từ dữ liệu gửi về từ Client (Gồm nhiệt độ và điện áp nguồn Client)
  •  Hiển thị chính xác tên định danh cổng COM, nhận diện cổng COM mới cắm vào máy tính.
  •  Hiển thị tooltip khi rê chuột lên đồ thị.
  •  Hỗ trợ tùy chọn lưu dữ liệu, lưu theo thời gian định kỳ hoặc tự động mỗi khi có dữ liệu.
  •  Thu nhỏ xuống khay hệ thống khi thu nhỏ chương trình.
  •  Tự động sửa lỗi dữ liệu nếu chương trình bị treo hoặc tắt không đúng cách.
  •  Không bị treo nếu bị đứt kết nối vật lý.
  •  Tạo mới DB nếu không tìm thấy DB cũ.
  •  Hỗ trợ lưu trữ, xem lại, trích xuất dữ liệu ra file text.

Do mới ngâm cứu nên tính năng còn hạn chế, chưa hỗ trợ hoạt động theo node… và phầm mềm chưa có tính tùy biến cao.

Leave a Reply

14 Comments on "[Project] Cảm biến không dây đơn giản với MSP430 và nRF24L01"

Notify of
avatar
Sort by:   newest | oldest | most voted
Roc
Guest

cho t xin email của bạn cám ơn nhé

Trung Thành
Guest

Mail mình có để bên mục ABOUT ME đó.
lienhe@thanhnt.com

Hưng La
Guest

anh ơi cho em hỏi
đoạn:
sprintf(RxBuf, “%s”, RxBuf);
nRF24L01_ClearSend(); // Clear Bit Send
UART_TX(RxBuf);
-> nó cảnh báo: argument of type “unsigned char *” is incompatible with parameter of type “char *”

sửa thế nào vậy anh :)

Trung Thành
Guest

Chỉnh lại chút kiểu biến đầu vào trong hàm UART_TX từ char thành unsigned char là đc mà.
Mình update lại trong file tải về rồi đó. :D

Hưng La
Guest

cái UART_TX thì nó hết cảnh báo rùi ak. còn cái sprintf(RxBuf, “%s”, RxBuf); ở sation với sprintf(TxBuf,”%5.2fC-%5.2fV rn”,nhietdo, voltage); ở client nữa anh nó vẫn lối lúc đấy, à cái nguồn vào con nRF24L01 e dùng Vcc ở Msp430 được không anh? tại em thấy datasheet nó dùng nguồn 1.9-3.6v. em đo khoảng vcc ~3.5v :)

Trung Thành
Guest

Nguồn cho nRF thì như trên schematic mình post ở trên đó, đã gắn cùng Vcc với MSP rồi.
Mình mới update lại cái kiểu cho biến trong file RF24 trong folder Client, main trong folder Station rồi nhé. Bạn chạy lại coi lỗi gì nữa ko.
Mới sửa lại hết lỗi nhé. Bạn tải về chạy lại giùm mình. :D nãy mình sửa nhưng ko thử chạy, h mới thử xong, thấy ok rồi đó.

Hưng La
Guest

cảm ơn anh nhiều nhe!

Hưng La
Guest

anh ơi cho em hỏi có cách nào kiểm tra còn nrf24l01 xem nó hoạt động không ạ, e dùng ms430g2553 vs 1 con ms430g2452 em dùng phần mềm hercules đọc dữ liệu cổng COM nhưng ko thấy hiện tượng gì cả, có cách nào kiểm tra ko anh?

Trung Thành
Guest
Nếu hiện tại mà không thấy gì thì bạn thử các bước sau: 1. Kiểm tra UART chạy chưa bằng cách thử đẩy 1 chuỗi ví dụ nào đó lên xem có được không. Chú ý baudrate, config DCO. 2. Khi UART đã OK, kiểm tra kết nối wireless của nRF. (Chú ý dây nhợ, cắm chân thật chuẩn, kiểm tra kỹ chút) Sau khi cấu hình Address, chanel các loại trong hàm init_NRF24L01, sau đó thử gửi 1 chuỗi cố định qua coi sao. Đầu tiên là thử có kết nối hay ko bằng cách test bên station coi… Read more »
Hưng La
Guest

bjo nó nháy led nhận nhau rùi ạ, nhưng nhận được dữ liệu. để em vọc xem sao, cảm ơn anh nhiều :)

Trần Văn Kỳ
Guest

anh ơi
anh có thể cho em xin code của c# được không
mail tranvanky751994@gmail.com
cảm ơn anh nhé!

Trung Thành
Guest

rất tiếc là hồi cuối năm ngoái mình bị hỏng ổ cứng nên ko còn nữa bạn ạ

Dat Tran
Guest

Tại sao bạn lại thiết kế nút sơ đồ nút Reset như vậy ? Bạn có thể giải thích cho mình ý tưởng của bạn không!

wpDiscuz