- Giải thích làm việc:
- Các thành phần bắt buộc:
- Sơ đồ mạch:
- Làm việc với nRF24L01 + Mô-đun thu phát không dây:
- Lập trình Arduinos:
- Chương trình xử lý:
- Thử nghiệm:
Tạo một Mạng cục bộ để chia sẻ nhân sự và dữ liệu bí mật đã trở nên gần như không thể đối với một người bình thường trong thế giới hiện đại của chúng ta. Điều này chủ yếu là do tất cả các phương thức trò chuyện phổ biến như Whatsapp, Facebook, Hangout và hầu hết mọi thứ đều liên quan đến kết nối internet.
Điều gì sẽ xảy ra nếu, chúng ta có thể chia sẻ dữ liệu mà không có phương tiện Internet ?
Thật tuyệt biết bao nếu bạn có thể giao tiếp với mọi người trong nhà hoặc nơi làm việc của mình mà không cần gói mạng hoặc Kết nối Internet?
Điều gì sẽ xảy ra nếu chúng ta có thể tùy chỉnh màn hình trò chuyện bằng trí tưởng tượng của riêng mình?
Tất cả điều này có thể thực hiện được với bộ vi điều khiển và phương tiện truyền dẫn Không dây. Đây Arduino Chat Room sử dụng Dự án nRF24L01 sẽ hướng dẫn bạn về việc thành lập một chi phí thấp Chat Room trong khu vực địa phương của bạn.
Vì vậy, chúng ta hãy nhảy vào và xem nó hoạt động như thế nào.
Giải thích làm việc:
Về cơ bản để làm cho điều này hoạt động, chúng tôi sẽ cần một cặp bảng Arduino và mô-đun không dây giá rẻ. Các mô-đun không dây mà chúng tôi sẽ sử dụng ở đây là nRF24L01. Lý do chọn các mô-đun này là vì đây là những mô-đun kế thừa của Zigbee và dễ làm việc với một kết nối đã thiết lập. Ngoài ra, các mô-đun này hoạt động trên 2,4 GHz (băng tần ISM) với trải phổ nhảy tần và các tùy chọn bùng nổ xung kích giúp chúng tôi cảm thấy thoải mái trước các vấn đề về nhiễu.
Arduino và NRF24L01 của chúng tôi được kết nối với nhau để thiết lập giao tiếp nối tiếp để chúng có thể nói chuyện với nhau. NRF24L01 là mô-đun thu phát song công, do đó chúng có thể gửi và nhận dữ liệu. Dữ liệu được thu thập từ người dùng và truyền dữ liệu này có thể được nhận bởi bất kỳ (hoặc một mô-đun cụ thể) nào và hiển thị nó trên màn hình của họ.
Nhưng!!!!! Chúng ta sẽ trò chuyện bằng cách sử dụng màn hình Gỡ lỗi của Arduino? Dĩ nhiên là không. Chúng tôi sẽ xây dựng và tùy chỉnh màn hình trò chuyện của riêng mình với sự trợ giúp của 'Xử lý'. Xử lý là một phần mềm có khả năng giao tiếp với Arduino bằng UART. Chúng tôi sẽ tạo tệp.exe với ngôn ngữ Xử lý, tệp này có thể chạy trên bất kỳ máy tính nào có Java Runtime. Để Trò chuyện, chúng ta chỉ cần cắm Arduino và mở tệp.exe này và Booooom !! chúng tôi đang ở trong Phòng trò chuyện hoàn toàn miễn phí được Tư nhân hóa của riêng mình.
Dự án này được giới hạn ở việc chỉ thêm hai thành viên vào phòng Trò chuyện, Nhưng nRF24L01 có 6 Đường ống và vì vậy có thể có tối đa 6 thành viên trong phòng trò chuyện của chúng tôi. Phòng điện tử này có thể hoạt động trong phạm vi 100 mét tùy thuộc vào Mô-đun nRF24L01.
Vậy chúng ta cùng đi mua sắm nào !!!!
Các thành phần bắt buộc:
- Arduino (bất kỳ phiên bản hoặc mô hình nào) - 2Nos
- nRF24L01 + Mô-đun thu phát không dây - 2Nos
- 3.3 Bộ điều chỉnh điện áp - 2Nos. (Không bắt buộc)
- Kết nối dây
- Lãi suất (Lolz)
Sơ đồ mạch:
Arduino Mega với nRF24L01:
Arduino Nano với nRF24L01:
Dự án của chúng tôi không liên quan đến bất kỳ kết nối phức tạp nào. Tôi đã sử dụng Arduino Mega và Arduino Nano và kết nối của chúng với nRF24L01 được hiển thị ở trên. Bạn có thể sử dụng bất kỳ Mô hình Arduino nào.
Làm việc với nRF24L01 + Mô-đun thu phát không dây:
Tuy nhiên, để làm cho nRF24L01 của chúng tôi hoạt động không bị ồn, chúng tôi có thể muốn xem xét những điều sau. Tôi đã làm việc trên nRF24L01 + này trong một thời gian dài và học được những điểm sau đây có thể giúp bạn không bị va vào tường.
1. Hầu hết các mô-đun nRF24L01 + trên thị trường là giả mạo. Những thứ giá rẻ mà chúng ta có thể tìm thấy trên Ebay và Amazon là tệ nhất (Đừng lo lắng, với một vài chỉnh sửa, chúng tôi có thể làm cho chúng hoạt động)
2. Vấn đề chính là nguồn điện không phải mã của bạn. Hầu hết các mã trực tuyến sẽ hoạt động bình thường, bản thân tôi có một mã hoạt động mà tôi đã tự mình kiểm tra, Hãy cho tôi biết nếu bạn cần chúng.
3. Hãy chú ý vì các mô-đun được in là NRF24L01 + thực sự là Si24Ri (Có một sản phẩm của Trung Quốc).
4. Các mô-đun nhái và giả sẽ tiêu thụ nhiều điện năng hơn, do đó không phát triển mạch nguồn của bạn dựa trên biểu dữ liệu nRF24L01 +, vì Si24Ri sẽ có mức tiêu thụ hiện tại cao khoảng 250mA.
5. Cẩn thận với gợn sóng điện áp và dòng điện dâng cao, các mô-đun này rất nhạy cảm và có thể dễ dàng bị cháy. (;-(đã tăng 2 mô-đun cho đến nay)
6. Thêm một vài tụ điện (10uF và 0,1uF) trên Vcc và Gnd của mô-đun giúp làm cho nguồn cung cấp của bạn trở nên tinh khiết và điều này hoạt động đối với hầu hết các mô-đun.
Vẫn nếu bạn có vấn đề, hãy báo cáo trên phần bình luận hoặc đọc qua phần này.
Lập trình Arduinos:
Chương trình cho cả Arduino Nano và Mega sẽ tương tự đối với sự thay đổi trong các chân CE và CS. Tôi sẽ giải thích chương trình bằng cách chia nó thành các phân đoạn nhỏ.
Vì Arduino và nRF24L01 giao tiếp thông qua SPI, chúng tôi đã gọi thư viện SPI. Chúng tôi cũng đã bao gồm lib Maniacbug RF24 của chúng tôi để các mô-đun RF của chúng tôi hoạt động. Tải xuống tệp từ đây và thêm chúng vào IDE của bạn.
#include
Các mô-đun NRF của chúng tôi được kết nối với chân 8 và 10 tương ứng với CE và CS.
RF24 myRadio (8, 10);
Chúng tôi tạo một gói dữ liệu có cấu trúc được gọi là gói . Văn bản biến sẽ được sử dụng để truyền dữ liệu trực tuyến.
gói struct {char text; // Văn bản cần truyền trên không}; typedef struct package Package; Gói dữ liệu;
Trong hàm void setup () , chúng tôi khởi tạo tốc độ truyền thành 9600 và thiết lập các mô-đun của chúng tôi thành 115 với mức tiêu thụ điện năng MIN và tốc độ 250KBPS. Bạn có thể tìm hiểu các giá trị này sau.
void setup () {Serial.begin (9600); chậm trễ (1000); //Serial.print("Setup Initialized "); myRadio.begin (); myRadio.setChannel (115); // Băng tần 115 phía trên tín hiệu WIFI myRadio.setPALevel (RF24_PA_MIN); // MIN công suất thấp cơn thịnh nộ myRadio.setDataRate (RF24_250KBPS); // Tốc độ tối thiểu}
Mô-đun được thiết kế để hoạt động ở chế độ truyền nếu Dữ liệu được nhận qua bộ đệm nối tiếp, nếu không, mô-đun sẽ ở chế độ nhận tìm kiếm dữ liệu trực tuyến. Dữ liệu từ người dùng được lưu trữ trong Mảng char và được gửi đến WriteData () để truyền chúng.
void loop () {while (Serial.available ()> 0) // Lấy giá trị từ user {val = Serial.peek (); if (index <19) // Một nhỏ hơn kích thước của mảng {inChar = Serial.read (); // Đọc một ký tự inData = inChar; // Lưu trữ nó chỉ mục ++; // Phần tăng dần nơi viết tiếp theo inData = '\ 0'; // Null kết thúc chuỗi} if (val == '#') {strcpy (data.text, inData); WriteData (); // Đặt mô-đun ở chế độ Truyền while (index! = 0) {inData = ''; mục lục--; }}} ReadData (); // Đặt chế độ nhận mô-đun}
Hàm void WriteData () ghi dữ liệu trên địa chỉ 0xF0F0F0F0AA, địa chỉ này được sử dụng làm đường dẫn ghi trên mô-đun khác.
void WriteData () {myRadio.stopListening (); // Ngừng nhận và khởi động transminitng myRadio.openWritingPipe (0xF0F0F0F066); // Gửi dữ liệu trên địa chỉ 40 bit này myRadio.write (& data, sizeof (data)); chậm trễ (300); }
Hàm void ReadData () ghi dữ liệu trên 0xF0F0F0F066 địa chỉ này, địa chỉ này được sử dụng làm đường dẫn đọc trên mô-đun khác.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Đọc đường ống nào, 40 bit Địa chỉ myRadio.startListening (); // Dừng Transminting và bắt đầu hiển thị if (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.println (data.text); }}
Vậy là xong, phần lập trình của chúng ta đã kết thúc. Nếu bạn không thể hiểu một số điều ở đây, hãy kiểm tra hai chương trình cho cả Arduinos, được đưa ra trong phần Mã bên dưới, tôi đã thêm các dòng bình luận để giải thích mọi thứ tốt hơn nhiều.
Chương trình xử lý:
'Xử lý' là phần mềm mã nguồn mở được các nghệ sĩ sử dụng để thiết kế đồ họa. Phần mềm này được sử dụng để phát triển phần mềm và ứng dụng Android. Nó khá dễ phát triển và rất giống với IDE phát triển Android. Do đó tôi đã rút ngắn lời giải thích.
Mã xử lý cho cả hai Màn hình trò chuyện được cung cấp tại đây:
- Màn hình trò chuyện 1 Mã xử lý
- Mã xử lý màn hình trò chuyện 2
Nhấp chuột phải vào chúng và nhấp vào 'Lưu liên kết dưới dạng..' để tải xuống và mở chúng trong máy tính của bạn sau khi thiết lập Arduinos. Bạn cần cài đặt phần mềm 'Xử lý' để mở các tệp *.pde này và sau đó 'Chạy' chúng để mở Hộp trò chuyện. Phần bình luận được mở cho các truy vấn. Bản phác thảo Xử lý cho mô-đun Máy phát và Máy thu giống hệt nhau.
Trong phần mã bên dưới, "port = new Serial (this, Serial.list (), 9600); // Đọc PORT thứ 4 ở tốc độ 9600 baudrate" rất quan trọng vì nó quyết định từ cổng nào đến dữ liệu.
void setup () {size (510,500); port = new Serial (this, Serial.list (), 9600); // Đọc CỔNG thứ 4 tại 9600 baudrate println (Serial.list ()); nền (0); }
Ở đây tôi đã đọc dữ liệu từ cổng thứ 4 từ Arduino của mình.
Vì vậy, ví dụ nếu bạn có COM COM COM COM COM
Sau đó, đoạn mã trên sẽ đọc dữ liệu từ COM.
Thử nghiệm:
Bây giờ vì bản phác thảo Xử lý và Arduino của chúng tôi đã sẵn sàng, chỉ cần tải chương trình lên Arduino và để nó cắm vào Máy tính xách tay của bạn. Mở bản phác thảo Xử lý của bạn và bắt đầu nhập và nhấn "Enter" thông điệp của bạn sẽ được truyền đến Arduino khác sẽ hiển thị văn bản đã nhận trên một ứng dụng Xử lý khác được kết nối với máy tính khác. Kiểm tra thêm Video bên dưới để có minh chứng đầy đủ.
Vì vậy, đây là cách bạn có thể nói chuyện với bạn bè và gia đình trong khu vực địa phương của mình mà không cần bất kỳ kết nối Internet nào, bằng cách sử dụng Phòng trò chuyện Arduino rẻ tiền này.