Mô hình mạng cảm nhận không dây WSN và ứng dụng trong hệ thống đo nhiệt độ tự động

MỤC LỤC

Đặc điểm chung của màn hình tinh thể lỏng LCD 1602A

Cơ chế hoạt động và điều khiển hiển thị trên LCD

Khi LCD được khởi động để sẵn sàng nhận dữ liệu hoặc lệnh cần thiết lập các đặc trưng của LCD như : độ dài giao diện, ghi mã lệnh (0x010) để tắt màn hình hiển thị, ghi mã lệnh (0x001) để xóa màn hình hiển thị, ghi mã lệnh hướng dịch chuyển của con trỏ, ghi mã lệnh cho phép hiển thị con trỏ ở trạng thái chờ, ghi mã lệnh (0x20) để cho phép chế độ 4bit làm việc.nếu nhận một ký tự nó sẽ ghi ký tự đó lên màn hình và di chuyển con trỏ sang phải một khoảng. Khi muốn viết một chuỗi ký tự, đầu tiên chúng ta cần thiết lập địa chỉ ban đầu thường là 0 sau đó hiển thị lên màn hình. Dữ liệu được đưa đến hiển thị trên màn hình LCD có độ dài 8 bit theo hai chế độ là 4bit và 8 bit.

Chế độ 4 bit chia byte thành hai phần 4bit cao gửi trước, 4 bit thấp gửi sau, đồng thời gửi xung kích hoạt chân (E).Sau khi LCD được khởi tạo ta có thể viết các lệnh hoặc dữ liệu lên mà hình LCD.Sau mỗi lần viết mã lệnh lên LCD thì lại phải đợi một khoảng thời gian nhất định để thực hiện lệnh (khoảng 5ms) trong suốt thời gian này vi điều khiển không thể truy cập vào LCD. Quá trình viết các kí tự giống như viết một byte điều khiển, chỉ khác về mức thế điều khiển trên RS. Nhờ việc lập bit RC qua lệnh di chuyển con trỏ / dịch chuyển màn hình trong quá trình khởi tạo, sau mỗi một kí tự được gửi đến màn hình LCD.

Nội dung con trỏ tăng một đơn vị, con trỏ dịch tới vị trí tiếp theo ( bên phải hoặc bên trái ).

Vi điều khiển CC1010

Dịch chuyển con trỏ tới vùng CGRAM để hiển thị A-Address đọc viết mã ASCII để hiển thị D-DATA.

Đặc điểm chung của vi điều khiển CC1010

    Khi sử dụng các lệnh ghi - đọc dữ liệu thì giá trị của thanh ghi xuất dữ liệu sẽ bị thay đổi bất chấp việc thiết lập các bit hướng trong PxDIR. Trong chế độ xung nhịp 1 khi POWER.PMODE được thiết lập thì đồng hồ 32 kHz được đưa trực tiếp vào bộ biến đổi ADC. Trong chế độ xung nhịp 0, xung nhịp đầu vào của ADC lấy từ bộ dao động chính bằng cách sử dụng bộ chia được lựa.

    Cờ ngắt EXIF.ADIF và ADCON2.ADCIF được đặt bởi phần cứng nếu 8 bit của giá trị mẫu sau cùng lớn hơn hoặc bằng giá trị được lưu trữ trong thanh ghi ADTRH. Tất cả lần chuyển đổi sẽ ngừng lại khi xóa bit ADCON.ADCRUN sau đó ADC sẽ bỏ qua các tiến trình và ngừng hoạt động. Chế độ này thường được sử dụng cùng với chế độ Stop Mode của 8051 và bộ dao động 32 kHz để tiết kiệm điện năng.

    Trong chương 3 đã giới thiệu một số các kiến thức cơ bản về vi điều khiển CC1010, các đặc điểm chính, các thành phần mà ta sẽ tiến hành làm việc trực tiếp đó là lập trình cho nó, một nội dung quan trọng nữa là các kiến thức về loại màn hình được chọn để hiển thị kế quả của nút gốc sau khi nhận được dữ liệu từ các nút cơ sở đó là loại màn hình tinh thể lỏng – LCD 1602A, cơ chế hiển thị và cách thức làm việc của nó.

    Hình 3.1:  Các cổng vào / ra chung  3.3.3.  Các bộ định thời:
    Hình 3.1: Các cổng vào / ra chung 3.3.3. Các bộ định thời:

    PHẦN MỀM NHÚNG CHO HỆ ĐO NHIỆT ĐỘ TỰ ĐỘNG 4.1. Tổng quan về phần mềm nhúng

    Các bước để xây dựng một phần mềm nhúng

    Việc xây dựng một phần mềm nhúng cũng tuân theo trình tự các bước như trên. Ngoài ra, phần mềm nhúng còn có đặc trưng là làm việc trực tiếp với phần cứng. Do đó để kiểm soát quá trình làm việc với các thành phần chấp hành có đúng đắn không là điều kiện rất quan trọng.

    Phần mềm nhúng viết cho vi điều khiển CC1010

    • Thiết kế phần mềm nhúng

      Nút trung gian được tạo ra bằng cách dùng một phần mềm điều khiển khác nạp cho nút mạng bình thường để biến một nút cảm nhận đó thành một nút trung gian. CC1010IDE bao gồm nhiều các file nguồn để hỗ trợ và đơn giản hoá công việc lập trình phát triển chương trình. Hardware Abstraction Library (HAL): Thư viện này bao gồm nhiều các macro và các hàm nhằm làm đơn giản hoá việc truy cập vào phần cứng của CC1010.Thông qua việc gọi các macro và hàm này người sử dụng có thể truy cập vào các thành phần vi điều khiển một cách dễ dàng mà không cần phải tìm hiểu một cách chi tiết về phần cứng.

      Muốn thu dữ liệu từ nút đơn nào ta chỉ việc kiểm tra địa chỉ nút đó, nếu đúng địa chỉ thì sẽ tiến hành xử lý dữ liệu để hiển thị. Cài đặt cho nút mạng (bộ truyền), đảm bảo rằng khi nút mạng nhận được tín hiệu từ cảm biến thì sẽ thực hiện số hóa tín hiệu, điều chế và đưa lên Anten phát. Phần mềm này cũng phải đảm bảo rằng nút mạng có khả năng hoạt động độc lập, có chế độ ngủ đông để tiết kiệm pin.

      Cài đặt cho nút gốc (bộ nhận ), đảm bảo rằng khi nút gốc nhận được tín hiệu vô tuyến của các nút mạng thì sẽ tiến hành phân tích, kiểm tra địa chỉ, sau đó lọc ra thông tin nhiệt độ, điều khiển hiển thị lên màn hình LCD. Phần mềm 2 này còn phải bao gồm cả việc điều khiển phân tích dữ liệu và đưa ra các phán đoán xử lý kịp thời, hay đơn giản là hiển thị dữ liệu cho quan sát viên ở trung tâm xử lý có thể nhận biết được. Trong khi viết các phần mềm này, có thể sử dụng một vài hàm trong thư viện hàm mà nhà sản xuất cung cấp.

      Nút mạng thực hiện việc cảm nhận, số hóa và truyền tín hiệu nhiệt độ đã số hóa đến nút gốc. Theo cấu trúc phần cứng của CC1010, để tiết kiệm nguồn nuôi, sau mỗi lần phát tín hiệu, ta sẽ đặt nút mạng vào trạng thái Hibernate (ngủ đông). Điểm quan trọng nhất của phần mềm này là viết hàm nhận dữ liệu và viết hàm để hiển thị lên màn hình LCD làm việc ở chế độ 4bit.

      Nhận tín hiệu, kiểm tra địa chỉ nếu, nếu tín hiệu thu được là của nút 1 thì sẽ tiến hành đem dữ liệu đó truyền tiếp. Về cơ bản nút trung gian có cấu trúc giống hệt nút 1 nhưng được cài đặt bằng phần mềm khác để chỉ đóng vai trò vận chuyển mà không có vai trò cảm nhận.

      Hình 4.2:  Thư viện Chipcon
      Hình 4.2: Thư viện Chipcon

      CÀI ĐẶT THỬ NGHIỆM TRÊN HỆ THỐNG, CÁC KẾT QUẢ ĐÃ ĐẠT ĐƯỢC

        Tiến hành thử nghiệm truyền đơn bước với hệ thống trên bao gồm có 2 nút truyền, 1 nút nhận và hiển thị kết quả.

        Hình 5.1:  Sơ đồ bố trí thí nghiệm truyền đơn bước.
        Hình 5.1: Sơ đồ bố trí thí nghiệm truyền đơn bước.

        Đánh giá

        Thực nghiệm đo hiệu suất truyền / nhận của mạng cảm nhận (gồm 2 nút mạng, 1 nút truyền và 1 nút nhận )

        Việc chuẩn bị thực nghiệm gồm có: 2 nút mạng, 1 nút cảm nhận đóng vai trò truyền dữ liệu và 1 nút làm trạm gốc đóng vai trò nhận dữ liệu. Ta tiến hành đo việc truyền - nhận tín hiệu của nút cảm nhận truyền về trạm gốc trong 1 khoảng thời gian là 120 giây. Như vậy trong khoảng thời gian 120 giây thì ta có 20 lần tín hiệu được truyền từ nút cảm nhận về nút gốc, khi đó ta thực hiện ghi lại kết quả đo và tính hiệu suất cho hệ thống.

        Việc đánh giá hiệu suất hệ thống khá đơn giản, nếu trong khoảng 20 lần đó mà trạm gốc thu được 20 lần thì hiệu suất nhận là 100%. Như vậy dựa vào bảng kết quả trên ta sẽ tiến hành tính hiệu suất và vẽ đồ thị biểu diễn tương ứng với 3 lần đo và hiệu suất chung cho cả 3 lần đo. Ta tiến hành vẽ đồ thị của lần đo thứ 1 với kết quả ở bảng trên, đồ thị gồm có cột biểu diễn lần truyền tín hiệu (tương ứng với thời điểm truyền tín hiệu) và cột biểu diễn giá trị nhiệt độ tương ứng.

        Như vậy hiệu suất nhận dữ liệu là không đều nhau và tương đối thấp, hiệu suất trong các lần đo là khác nhau. Sở dĩ như vậy là do phần mềm nhúng trên nút mạng chưa được cải tiến tốt để thuận tăng khả năng nhận của trạm gốc. Phần sau sẽ thực hiện đo thử nghiệm 3 lần và thay đổi khoảng cách truyền (tiến hành đo ở khoảng cách 10 và 30m).

        Thật vậy trong phần thực nghiệm trên khi ta thực hiện đặt nút cảm nhận cách nút gốc 10m và tiến hành đo 3 lần thì hiệu suất trung bình đạt 65. Điều nghiên cứu này hoàn toàn đúng với thực tế vì khoảng cách càng xa thì tín hiệu càng yếu, khi đó việc nhận tín hiệu trở lên khó khăn hơn. - Dễ gây ra hiện tượng tắc nghẽn mạng, khi số nút mạng trong hệ thống thu thập lớn thì sẽ gây ra tắc nghẽn mạng vì các nút đều phát và đều có thể thu nên hay gây xung đột và nút gốc không nhận được dữ liệu.

        - Làm giảm băng thông trong mạng, khi có số nút mạng lớn thì băng thông mạng giảm đi đáng kể vì các nút đều phát tín hiệu quảng bá. Như vậy, qua việc nghiên cứu thực nghiệm vấn đề thì em thấy rằng việc cải tiến giao thức truyền cho phần mềm nhúng trên nút mạng có vai trò hết sức quan trọng trong việc quyết định hiệu suất của mạng.

        Đồ thị biểu diễn tương ứng:
        Đồ thị biểu diễn tương ứng: