Mục lục:

Giao tiếp không dây sử dụng mô-đun RF 433MHz giá rẻ và bộ vi điều khiển Pic. Phần 2: 4 bước (có hình ảnh)
Giao tiếp không dây sử dụng mô-đun RF 433MHz giá rẻ và bộ vi điều khiển Pic. Phần 2: 4 bước (có hình ảnh)

Video: Giao tiếp không dây sử dụng mô-đun RF 433MHz giá rẻ và bộ vi điều khiển Pic. Phần 2: 4 bước (có hình ảnh)

Video: Giao tiếp không dây sử dụng mô-đun RF 433MHz giá rẻ và bộ vi điều khiển Pic. Phần 2: 4 bước (có hình ảnh)
Video: Arduino | nRF24L01 - Mạch thu phát RF 2.4Ghz 1Km | PHẦN 1 2024, Tháng bảy
Anonim
Giao tiếp không dây sử dụng mô-đun RF 433MHz giá rẻ và bộ vi điều khiển Pic. Phần 2
Giao tiếp không dây sử dụng mô-đun RF 433MHz giá rẻ và bộ vi điều khiển Pic. Phần 2

Trong phần đầu tiên của tài liệu hướng dẫn này, tôi đã trình bày cách lập trình PIC12F1822 bằng trình biên dịch MPLAB IDE và XC8, để gửi một chuỗi đơn giản không dây bằng mô-đun TX / RX 433MHz giá rẻ.

Mô-đun bộ thu được kết nối qua bộ chuyển đổi cáp USB sang UART TTL với PC và dữ liệu nhận được được hiển thị trên RealTerm. Thông tin liên lạc được thực hiện ở 1200 baud và phạm vi tối đa đạt được là khoảng 20 mét xuyên qua các bức tường. Các thử nghiệm của tôi cho thấy rằng đối với các ứng dụng không cần tốc độ dữ liệu cao và phạm vi dài và để truyền liên tục, các mô-đun này hoạt động đặc biệt tốt.

Phần thứ hai của dự án này trình bày cách thêm vi điều khiển PIC16F887 và mô-đun LCD 16 × 2 ký tự trên bộ thu. Hơn nữa, trên máy phát, một giao thức đơn giản được tuân theo với việc bổ sung một vài byte mẫu trước. Những byte này là cần thiết để mô-đun RX điều chỉnh độ lợi của nó trước khi nhận được tải trọng thực tế. Ở phía máy thu, PIC chịu trách nhiệm lấy và xác thực dữ liệu được hiển thị trên màn hình LCD.

Bước 1: Sửa đổi máy phát

Sửa đổi máy phát
Sửa đổi máy phát
Sửa đổi máy phát
Sửa đổi máy phát
Sửa đổi máy phát
Sửa đổi máy phát

Ở phần đầu tiên, máy phát gửi một chuỗi đơn giản cứ sau vài mili giây sử dụng tám bit dữ liệu, một bit bắt đầu và một bit dừng với tốc độ 1200 bit mỗi giây. Vì quá trình truyền gần như liên tục, người nhận không gặp khó khăn gì khi điều chỉnh độ lợi của nó đối với dữ liệu nhận được. Ở phần thứ hai, phần sụn được sửa đổi để quá trình truyền được thực hiện cứ sau 2,3 giây. Điều này đạt được bằng cách sử dụng ngắt bộ định thời của cơ quan giám sát (đặt thành 2,3 giây) để đánh thức bộ vi điều khiển, được đặt ở chế độ nghỉ giữa mỗi lần truyền.

Để người nhận có thời gian tinh chỉnh độ lợi của nó, một vài byte mở đầu với thời gian LO ngắn "(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa)" sẽ được gửi trước dữ liệu thực. Trọng tải sau đó được biểu thị bằng byte bắt đầu '&' và dừng '*'.

Do đó, giao thức đơn giản được mô tả như sau:

(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa) & Hello InstWorld! *

Hơn nữa, một tụ điện tantali tách 10uF được thêm vào giữa V + của mô-đun RF và GND để loại bỏ gợn sóng do mô-đun nâng cấp dc-dc gây ra.

Tốc độ baud vẫn giữ nguyên, nhưng các thử nghiệm của tôi cho thấy rằng ở mức 2400 baud, việc truyền tải hiệu quả.

Bước 2: Sửa đổi đầu thu: Thêm PIC16F887 và HD44780 LCD

Sửa đổi bộ thu: Thêm PIC16F887 và HD44780 LCD
Sửa đổi bộ thu: Thêm PIC16F887 và HD44780 LCD
Sửa đổi bộ thu: Thêm PIC16F887 và HD44780 LCD
Sửa đổi bộ thu: Thêm PIC16F887 và HD44780 LCD
Sửa đổi bộ thu: Thêm PIC16F887 và HD44780 LCD
Sửa đổi bộ thu: Thêm PIC16F887 và HD44780 LCD

Thiết kế bộ thu dựa trên PIC16F887, nhưng bạn có thể sử dụng một PIC khác với một chút sửa đổi. Đầu ra của mô-đun RF được kết nối với chân UART rx, trong khi màn hình LCD 16x2 ký tự (HD44780) được kết nối thông qua các chân PORTB b2-b7 để hiển thị dữ liệu đã nhận.

Như với Phần 1, dữ liệu nhận được cũng được hiển thị trên RealTerm. Điều này đạt được bằng cách sử dụng chân UART tx được kết nối qua bộ chuyển đổi cáp USB sang UART TTL với PC.

Nhìn vào phần sụn, khi một ngắt UART diễn ra, chương trình sẽ kiểm tra xem byte nhận được có phải là byte bắt đầu ('&') hay không. Nếu có, nó bắt đầu ghi các byte tiếp theo, cho đến khi bắt được một byte dừng ('*'). Ngay sau khi toàn bộ câu thu được, và nếu nó phù hợp với giao thức đơn giản được mô tả trước đó, nó sẽ được gửi đến màn hình LCD, cũng như cổng UART tx.

Trước khi nhận byte bắt đầu, người nhận đã điều chỉnh độ lợi của nó bằng cách sử dụng các byte mở đầu trước đó. Những điều này rất quan trọng đối với hoạt động trơn tru của máy thu. Một kiểm tra lỗi chạy quá tải và khung đơn giản được thực hiện, tuy nhiên đây chỉ là cách triển khai xử lý lỗi UART cơ bản.

Về phần cứng, bộ thu cần có một số bộ phận:

1 x PIC16F887

1 x HD44780

1 x mô-đun RF Rx 433Mhz

Tụ tantali 1 x 10 μF (tách rời)

Tông đơ 1 x 10 K (độ sáng phông chữ LCD)

1 x 220 Ω điện trở 1/4 W (đèn nền LCD)

1 x 1 KΩ 1/4 W

1 x Ăng-ten 433Mhz, 3dbi

Trong thực tế, thiết bị nhận được hoạt động đặc biệt tốt trong phạm vi lên đến 20 mét thông qua các bức tường.

Bước 3: Một vài tài liệu tham khảo…

Có rất nhiều blog trên web đưa ra lời khuyên về lập trình PIC và khắc phục sự cố bên cạnh trang web chính thức của Microschip. Tôi thấy những điều sau đây rất hữu ích:

www.romanblack.com/

0xee.net/

www.ibrahimlabs.com/

picforum.ric323.com/

Bước 4: Kết luận và công việc trong tương lai

Tôi hy vọng tài liệu hướng dẫn này đã giúp bạn hiểu cách sử dụng mô-đun RF và bộ vi điều khiển Pic. Bạn có thể điều chỉnh chương trình cơ sở theo nhu cầu của riêng mình và bao gồm CRC và mã hóa. Nếu bạn muốn làm cho thiết kế của mình tinh vi hơn nữa, bạn có thể sử dụng công nghệ Keeloq của Microschip. các mô-đun. Tuy nhiên, bằng cách sử dụng loại mô-đun 433MHz giá rẻ này, chỉ có thể thực hiện giao tiếp song công một nửa. Hơn nữa, để làm cho giao tiếp đáng tin cậy hơn, bạn cần phải có một số hình thức bắt tay giữa TX và RX.

Trong phần hướng dẫn tiếp theo, tôi sẽ chỉ cho bạn một ứng dụng thực tế trong đó một cảm biến môi trường với nhiệt độ, áp suất khí quyển và độ ẩm được thêm vào máy phát. Tại đây, dữ liệu được truyền đi sẽ bao gồm crc và sẽ có một mã hóa cơ bản.

Cảm biến sẽ sử dụng cổng i2c của PIC12F1822, trong khi việc triển khai cả bộ phát và bộ thu sẽ được hiển thị thông qua các tệp sơ đồ và pcb. Cảm ơn đã đọc cho tôi!

Đề xuất: