Tải bản đầy đủ (.docx) (38 trang)

MẠNG cảm BIẾN RF để điều KHIỂN NÔNG TRẠI nấm DÙNG PIC16F877A (có code và sơ đồ mạch bên dưới)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.09 MB, 38 trang )

ĐỒ ÁN 3

MẠNG CẢM BIẾN RF ĐỂ ĐIỀU
KHIỂN NÔNG TRẠI NẤM

1


MỤC LỤC

2


DANH MỤC CÁC HÌNH VẼ

3


DANH MỤC CÁC TỪ VIẾT TẮT
MCU

Multipoint Control Unit

PIC

Programmable Intelligent Computer

4


ĐỒ ÁN 3


Trang 5/36

CHƯƠNG 1.

GIỚI THIỆU MẠNG CẢM BIẾN RF ĐỂ ĐIỀU KHIỂN
NÔNG TRẠI TRỒNG NẤM

1.1 Mục đích và ý nghĩa đề tài mạng cảm biến rf dùng để điều khiển nông
trại trồng nấm
1.1.1 Mục đích
Các loại điều khiển từ xa bằng tần số vô tuyến lại xuất hiện từ năm 1914. Cho
đến nay, phát minh này vẫn được tiếp tục dùng cho nhu cầu sống của mọi người,
các thiết bị điện tử hiện này hầu như đều cần thiết có điều khiển từ xa và đại đa số
ai cũng sử dụng hàng ngày trong cuộc sống. Vì vậy tôi đã chọn đề tài này để có thể
giúp mọi người hiểu rõ hơn về tín hiệu vô tuyến.
1.1.2 Ý nghĩa
Đề tài giúp mọi người hiểu rõ hơn về sóng vô tuyến, để có thể áp dụng nhiều
vào cuộc sống, cũng như phục vụ cho công việc của bản thân, giúp cho công việc
cuộc sống dễ dàng hơn khi biết áp dụng về sóng vô tuyến.
1.1 Nội dung chính của đề tài
1.1.3 Chức năng và công dụng của mạng cảm biến rf để điều khiển nông
trại nấm.
Mạng cảm biến rf để điều khiển nông trại nấm được thiết kế, nhằm phục vụ cho
công việc dễ dàng hơn, khi làm việc ta có thể kiểm tra các thông số về thời tiết, để
có thể điều chỉnh hợp lý, cho nấm phát triển tốt hơn, đạt hiệu suất tốt nhất cho
người trồng nấm.
1.1.4 Yêu cầu khi thực hiện đề tài
Thiết kế cảm biến NRF2401 kết nối với nhau, truyền và nhận dữ liệu, để có thể
gửi các thông số môi trường về màn hình LCD, sau đó, khi đã hiển thị lên, dựa vào
các thông số ta điều chỉnh lại các thông số thông qua các thiết bị ngoại vi như quạt,

đèn, máy bơm nước, để môi trường luôn ở điều kiện tốt nhất.
1.1.5 Mức độ quy mô của đề tài

Mạng cảm biến RF để điều khiển nông trại trồng nấm


ĐỒ ÁN 3
Trang 6/36

Mạng cảm biến RF để điều khiển nông trại trồng nấm có thể thực hiện quy mô
vửa và nhỏ trong hộ gia đình, nếu muốn phát triển mở rộng quy mô lớn, thì cần phải
tính toán thông số và đưa ra các giải pháp cho từng loại nấm cụ thể, để có thể phát
triển từng loại nấm tốt nhất.
1.2 Nguyên lý chung
Khi có dữ liệu từ các Module cảm biến, thì vi điều khiển sẽ nhận dữ liệu từ
Module cảm biến và truyền qua RF sau đó tín hiệu RF con sẽ truyền về RF mẹ và
hiển thị thông tin lên LCD. Và sau đó dựa vào các thông số mà tiến hành điều khiển
thiết bị theo ý muốn.
1.3 Công cụ mô phỏng và điều khiển
Trong đề tài, tôi đã sử dụng mô phỏng trên Proteus và Altium và sau đó thực
hiện mô phỏng để có thể xem kết quả mô phỏng. Đề tài có thực hiện phần cứng và
có thể kiểm tra bằng cách lắp đặt ở một mô hình nông trại nhỏ. Xem các kết quả ở
màn hình LCD, sau đó ta thực hiện điều chỉnh thông số qua máy tính theo điều kiện
cần thiết.

CHƯƠNG 2.

THIẾT KẾ MẠNG CẢM BIẾN RF ĐỂ ĐIỀU KHIỂN
NÔNG TRẠI TRỒNG NẤM


1.4 Sơ đồ khối của mạch
Khối nguồn

Khối điều khiển các thiết bị

CPU

Khối module cảm biến Khối vi điều khiển truyền dữ liệu
Khối vi điều khiển nhận dữ liệu
Khối LCD hiển thị dữ liệu

Hình 2-1: Sơ đồ khối của mạch

Chức năng từng khối:

Mạng cảm biến RF để điều khiển nông trại trồng nấm


ĐỒ ÁN 3
Trang 7/36

• Khối nguồn: cung cấp nguồn cho mạch hoạt động với mức điện áp là 5 Vdc
và 3.3 Vdc.
• Khối vi điều khiển truyền dữ liệu: truyền dữ liệu module về LCD, trong
Đồ Án 3 dùng tín hiệu truyền với tần số 2.4 GHz.
• Khối vi điều khiển truyền dữ liệu: nhận tín hiệu từ khối truyền dữ liệu và
hiển thị lên LCD.
• Khối module cảm biến: đọc các giá trị cảm biến như để truyền về LCD.
• Khối LCD hiển thị dữ liệu: hiển thị các giá trị module cảm biến truyền về.
• CPU: điều khiển các thiết bị như quạt, đèn để thực hiện đúng theo trạng thái

cảm biến.
• Khối điều khiển các thiết bị: nhận lệnh từ CPU và thực hiện các tùy chỉnh
theo yêu cầu.

1.1.6 Khối nguồn
Nguồn được lấy từ nguồn U = 220 Vac từ lưới điện, dùng biến áp hạ áp
xuống 12 Vac, khi qua cầu chỉnh lưu được điện áp 12 Vdc, sau đó ta dùng IC 7805
cung cấp 2 mức điệp áp cho toàn mạch là +5 Vdc cho toàn mạch.

Hình 2-2: Mạch nguồn

1.1.7 Khối module cảm biến
Cảm biến nhiệt độ, độ ẩm ứng dụng trong đo nhiệt độ độ ẩm với độ chính xác
cao, cung cấp chất lượng tốt, khả năng chống nhiễu tốt

Mạng cảm biến RF để điều khiển nông trại trồng nấm


ĐỒ ÁN 3
Trang 8/36

Hình 2-3: Module cảm biến nhiệt độ độ ẩm DHT11 [6]

Cảm biến độ ẩm đất thường được dùng trong các hệ thống tưới cây tự động,
trạng thái ra là mức thấp (0 Vdc), khi đất thiếu nước thì đầu ra sẽ là mức cao (5
Vdc), trên module có biến trở, để có thể điều chỉnh độ nhạy của module.

Hình 2-4: Module cảm biến độ ẩm đất [10]

1.1.8 Khối vi điều khiển truyền và nhận dữ liệu

Pic 16f877a là dòng Pic phổ biến hiện nay, được sử dụng nhiều, đáp ứng được
các ứng dụng thông thường và tiết kiệm năng lượng

Mạng cảm biến RF để điều khiển nông trại trồng nấm


ĐỒ ÁN 3
Trang 9/36

Hình 2-5: Sơ đồ chân vi điều khiển Pic16f877a HC-05 [1]

Trong khối truyền và nhận dữ liệu, ta sử dụng module nrf24l01, module thu phát
không dây nRF24L01 hoạt động theo giao thức SPI, SPI là chuẩn truyền thông nối
tiếp tốc độ cao. Đây là kiểu truyền thông Master-Slave, trong đó có 1 chip Master
điều phối quá trình tuyền thông và các chip Slaves được điều khiển bởi Master vì
thế truyền thông chỉ xảy ra giữa Master và Slave.

Hình 2-6: Sơ đồ chân vi module nrf24l01 [2]

1.1.9 Khối LCD hiển thị dữ liệu

Mạng cảm biến RF để điều khiển nông trại trồng nấm


ĐỒ ÁN 3
Trang 10/36

Màn hình text LCD1602 xanh lá sử dụng driver HD44780, có khả năng hiển thị
2 dòng với mỗi dòng ký tự, mành hình có độ bền cao, rất phổ biến, cho người mới
học và làm dự án


Hình 2-7: Cấu tạo LCD [3]

1.1.10 Khối điều khiển các thiết bị
Rơle (relay) là một chuyển mạch hoạt động bằng điện. Dòng điện chạy qua cuộn
dây của rơle tạo ra một từ trường hút lõi sắt non làm thay đổi công tắc chuyển
mạch. Dòng điện qua cuộn dây có thể được bật hoặc tắt vì thế rơle có hai vị trí
chuyển mạch qua lại.

Hình 2-8: Hình minh họa về một relay điện [4]

Mạng cảm biến RF để điều khiển nông trại trồng nấm


ĐỒ ÁN 3
Trang 11/36

1.1.11 Khối CPU
Để có thể kết nối với các thiết bị điều khiển với CPU, ta sứng dụng kết nối qua
cổng nối tiếp RS232, ghép nối qua cổng nối tiếp RS232 là một trong những kỹ thuật
được sử dụng rộng rãi để ghép nối các thiết bị ngoại vi với máy tính. Đây là một
chuẩn giao tiếp nối tiếp dùng định dạng không đồng bộ, kết nối nhiều nhất là 2 thiết
bị , tốc độ 20kbit/s đôi khi là tốc độ 115kbit/s với một số thiết bị đặc biệt.

Hình 2-9: Hình dạng cổng RS232 [7]

1.5 Nguyên lý hoạt động mạng cảm biến RF để điều khiển nông trại trồng
nấm
Các module cảm biến nhận dữ liệu từ nông trại trồng nấm, sau đó gửi về Pic
nhận dữ liệu, từ Pic truyền về nrf24l01 con, thông qua tín hiệu vô tuyến RF, gửi về

nrf24l01 mẹ. Gửi về Pic hiển thị lên LCD. Sau đó xác định trạng thái của nông trại,
thực hiện điều khiển các thiết bị như quạt, máy bơm nước, phun sương… để nhiệt
ổn định hệ thống nông trại trồng nấm. Các tín hiệu gửi về liên tục và sẽ báo trạng
thái đã đạt theo trạng thái mình muốn hay không.
1.6 Thiết kế điều khiển trên CPU
Sử dụng phần mềm Visual Studio để có thể kết nối và điều khiển thiết bị ngoại
vi trên CPU

Mạng cảm biến RF để điều khiển nông trại trồng nấm


ĐỒ ÁN 3
Trang 12/36

Bắt đầu

Hình 2-10: Chương trình điều khiển các thiết bị ngoại vi

Kiểm cảm
tra kếtbiến
nối RF để điều khiển nông trại trồng nấm
1.7 Sơ đồ giải thuật của mạng
 Khối nhận dữ liệu từ mạng cảm biến RF

Đã kết nối hai
thiết bị

 Khối điều khiển các thiết bị ngoại vi

Đ


Nhận dữ liệu từ module truyền về MCU chính

Nhận dữ liệu từ khối MCU con

Hiển thị dữ liệu lên LCD

Mạng cảm biến RF để điều khiển nông trại trồng nấm

S


ĐỒ ÁN 3
Trang 13/36

Đ

Bật phun sương

Mạng cảm biến RF để điều khiển nông trại trồng nấm


ĐỒ ÁN 3
Trang 14/36

CHƯƠNG 3.

KẾT QUẢ MÔ PHỎNG MẠNG CẢM BIẾN RF ĐỂ ĐIỀU
KHIỂN NÔNG TRẠI TRỒNG NẤM


1.2 Mô phỏng mạch điều khiển thiết bị ngoại vi

Hình 3-1: Sơ đồ kết nối mạch điều khiển thiết bị ngoại vi

Trong hình sơ đồ kết nối điều khiển thiết bị, sử dụng mô phỏng Proteus, sử dụng
Pic16f77a và relay để điều khiển các thiết bị.

Hình 3-2: Sơ đồ kết nối dây mạch điều khiển thiết bị ngoại vi

Mạch in layout của điều khiển thiết bị ngoại vi, sử dụng proteus đề vẽ và kết nối
dây

Mạng cảm biến RF để điều khiển nông trại trồng nấm


ĐỒ ÁN 3
Trang 15/36

Hình 3-3: Sơ đồ kết nối mạch truyền nhận dữ liệu module

Hình được vẽ từ Altium, để biểu diễn kết nối nrf24l01 với MCU là Pic16f877a
để truyền và nhận dữ liệu.

1.8 Hình ảnh thực tế của mạch điều khiển thiết bị ngoại vi

Hình 3-4: Đèn bật sáng

Mạng cảm biến RF để điều khiển nông trại trồng nấm



ĐỒ ÁN 3
Trang 16/36

Khi nhiệt độ nông trại trồng nấm thấp, hay cần làm việc trong môi trường về
đêm, thì bật đèn lên để có thể giữ ấm và có thể sáng thấy rõ đường

Hình 3-5: Quạt xoay

Khi nhiệt độ tăng cao, và bị nóng, thì phải bật quạt để thông gió cho nông trại,
và làm giảm bớt độ nóng tại nông trại

CHƯƠNG 4. NHẬN XÉT ƯU VÀ NHƯỢC ĐIỂM MẠNG CẢM BIẾN
RF ĐỂ ĐIỀU KHIỂN NÔNG TRẠI TRỒNG NẤM
1.9 Ưu điểm
• Chi phí thi công rẻ, làm được trong hộ gia đình, nếu xé trong mức giá thị
trường hiện nay thì có thể thi công chi phí không cao, có thể giảm chi phí
cho các thiết bị đắt tiền khác
• Dùng nguồn công suất thấp, ít tốn năng lượng, chỉ sử dụng nguồn từ 5Vdc
đến 12 Vdc nên chỉ tiêu hao vài chục W, có thể tiết kiệm hơn khi sử dụng
lưới điện 220 Vac
1.10 Hạn chế đề tài, sửa lỗi ngoài mong muốn

Mạng cảm biến RF để điều khiển nông trại trồng nấm


ĐỒ ÁN 3
Trang 17/36

• Module dễ hỏng nếu thời tiết xấu, sóng có thể không ổn định, khó thực hiên
nếu dự án lớn

• Có thể bị nhiễu, đứt dây, mất kết nối, thì ta cần kiểm tra lại đường dây, lắp
thêm tụ hoặc thiết bị phụ vào để có thể chống nhiễu, kiểm tra các thiết bị
xem có bị ngắn mạch hay sụt áp hay không

TÀI LIỆU THAM KHẢO
Tiếng Việt:
[1]

Admin (2009), CHỦ ĐỀ TUẦN 1: GIỚI THIỆU PIC 16F877A, Ngày
12/6/2009, />
[2]

Linh kiện 69 (2016), Linh kiện điện tử Module nRF24l01 2.4 Ghz – Cách
Giao Tiếp VớI VĐK Cortex-M3, Ngày 17/06/2016, />
[3]

Tôi yêu Arduino (2015),Điều khiển LCD bằng Arduino UNO, Ngày 10/11/
2015, />
[4]

Hồ Sỹ Hùng (2016), Hướng dẫn cách sử dụng rơle, Ngày 28/02/2016,
/>
[5]

Quocbao (2014), Mạch cầu H và điều khiển động cơ với SN754410, Ngày
10/11/2016, />
[6]

Quocbao (2014), Đọc nhiệt độ - độ ẩm và xuất ra màn hình LCD, Ngày
27/05/2014, />

[7]

Biendt (2010), Cơ bản và ghép nối chuẩn giao tiếp RS232, Ngày 07/08/2010,
/>Web tham khảo Tiếng Việt:

Mạng cảm biến RF để điều khiển nông trại trồng nấm


ĐỒ ÁN 3
Trang 18/36

[8]

/>
[9]

/>
[10]



PHỤ LỤC MẠNG CẢM BIẾN RF ĐỂ ĐIỀU KHIỂN NÔNG TRẠI
TRỒNG NẤM


Code điều khiển thiết bị

using System.IO;
using System.IO.Ports;
using System.Linq;

using System.Text;
using System.Windows.Forms;
namespace GiaoDienMayTinh
{
public partial class frmMain : Form
{
#region Quan ly bien
public struct _str_Main
{
public static SerialPort SerialPort = new SerialPort();
public static string Data = "";
WindowsMediaPlayer();
public static string FileNhac = "";
}
private WaveOutPlayer m_Player;
private WaveFormat m_Format;
private Stream m_AudioStream;
private System.Media.SoundPlayer sp;
#endregion
#region Quan ly ham
private void _ReadCom()
{
try
{
cbxTenCom.Items.Clear();
var coms = SerialPort.GetPortNames();

Mạng cảm biến RF để điều khiển nông trại trồng nấm



ĐỒ ÁN 3
Trang 19/36

foreach (var item in coms)
{
cbxTenCom.Items.Add(item);
}
//if (cbxTenCom.Items.Count > 0)
//{
// cbxTenCom.SelectedIndex = 0;
//}
cbxTenCom.Text = _str_Config.TenCom;
//cbxTocDoBaud.SelectedIndex = 2;
cbxTocDoBaud.Text = _str_Config.TocDoBaud;
}
catch (Exception)
{
}
}
private void _DaKetNoi()
{
btnKetNoi.Enabled = false;
btnNgatKetNoi.Enabled = true;
cbxTenCom.Enabled = false;
cbxTocDoBaud.Enabled = false;
btnBat_1.Enabled = true;
btnBat_2.Enabled = true;
btnBat_3.Enabled = true;
btnBat_4.Enabled = true;
btnBatHet.Enabled = true;

btnTatHet.Enabled = true;
}
private void _NgatKetNoi()
{
btnKetNoi.Enabled = true;
btnNgatKetNoi.Enabled = false;
cbxTenCom.Enabled = true;
cbxTocDoBaud.Enabled = true;

Mạng cảm biến RF để điều khiển nông trại trồng nấm


ĐỒ ÁN 3
Trang 20/36

btnBat_1.Enabled = false;
btnBat_2.Enabled = false;
btnBat_3.Enabled = false;
btnBat_4.Enabled = false;
btnBatHet.Enabled = false;
btnTatHet.Enabled = false;
}
private void_NhanDuLieu(object sender, SerialDataReceivedEventArgs args)
{
_str_Main.Data = _str_Main.SerialPort.ReadExisting();
_str_Main.Data = _str_Main.Data.Replace("\n", "");
}
private void _DieuKhienThietBi(int TenThietBi, bool TrangThai)
{
try

{
switch (TenThietBi)
{
case 1:
{
if (TrangThai == false)
{
pbxThietBi_1.Image =
global::GiaoDienMayTinh.Properties.Resources.chocolate_ball_icon;
}
else
{
pbxThietBi_1.Image =
global::GiaoDienMayTinh.Properties.Resources.Status_weather_clear_icon__1_;
}
break;
}
case 2:
{
if (TrangThai == false)
{
pbxThietBi_2.Image =
global::GiaoDienMayTinh.Properties.Resources.chocolate_ball_icon;
}
else

Mạng cảm biến RF để điều khiển nông trại trồng nấm


ĐỒ ÁN 3

Trang 21/36

{
pbxThietBi_2.Image
global::GiaoDienMayTinh.Properties.Resources.Status_weather_clear_icon__1_;
}
break;
}
case 3:
{
if (TrangThai == false)
{
pbxThietBi_3.Image
global::GiaoDienMayTinh.Properties.Resources.chocolate_ball_icon;
}
else
{
pbxThietBi_3.Image
global::GiaoDienMayTinh.Properties.Resources.Status_weather_clear_icon__1_;
}
break;
}
case 4:
{
if (TrangThai == false)
{
pbxThietBi_4.Image
global::GiaoDienMayTinh.Properties.Resources.chocolate_ball_icon;
}
else

{
pbxThietBi_4.Image
global::GiaoDienMayTinh.Properties.Resources.Status_weather_clear_icon__1_;
}
break;
}
//case 5:
// {
//
if (TrangThai == false)
//
{
//
pbxThietBi_5.Image
global::GiaoDienMayTinh.Properties.Resources.chocolate_ball_icon;
//
}
//
else
//
{

Mạng cảm biến RF để điều khiển nông trại trồng nấm

=

=

=


=

=

=


ĐỒ ÁN 3
Trang 22/36

//
pbxThietBi_5.Image =
global::GiaoDienMayTinh.Properties.Resources.Status_weather_clear_icon__1_;
//
}
//
break;
// }
}
}
catch (Exception)
{
}
}
private void _BatHetThietBi()
{
for (int i = 1; i < 5; i++)
{
_DieuKhienThietBi(i, true);
}

}
private void _TatHetThietBi()
{
for (int i = 1; i < 5; i++)
{
_DieuKhienThietBi(i, false);
}
}
#region Xu ly am thanh nen
private void Filler(IntPtr data, int size)
{
try
{
byte[] b = new byte[size];
if (m_AudioStream != null)
{
int pos = 0;
while (pos < size)
{
int toget = size - pos;
int got = m_AudioStream.Read(b, pos, toget);
if (got < toget)
{

Mạng cảm biến RF để điều khiển nông trại trồng nấm


ĐỒ ÁN 3
Trang 23/36


//m_AudioStream.Position = 0; // loop if the file ends
break;
}
pos += got;
}
}
else
{
for (int i = 0; i < b.Length; i++)
b[i] = 0;
}
System.Runtime.InteropServices.Marshal.Copy(b, 0, data, size);
}
catch (Exception)
{
}
}
private void Stop()
{
try
{
if (m_Player != null)
try
{
m_Player.Dispose();
}
finally
{
m_Player = null;
}

}
catch (Exception)
{
}
}
private void Play()
{
try

Mạng cảm biến RF để điều khiển nông trại trồng nấm


ĐỒ ÁN 3
Trang 24/36

{
Stop();
OpenFile();
if (m_AudioStream != null)
{
m_AudioStream.Position = 0;
//m_Player = new WaveOutPlayer(-1, m_Format, 16384, 3, new
BufferFillEventHandler(Filler));
m_Player = new WaveOutPlayer(-1, m_Format, 16384, 3, new
BufferFillEventHandler(Filler));
}
//Stop();
}
catch (Exception)
{

}
}
private void CloseFile()
{
try
{
Stop();
if (m_AudioStream != null)
try
{
m_AudioStream.Close();
}
finally
{
m_AudioStream = null;
}
}
catch (Exception)
{
}
}
private void OpenFile()
{
CloseFile();

Mạng cảm biến RF để điều khiển nông trại trồng nấm


ĐỒ ÁN 3
Trang 25/36


try
{
//WaveStream S = new WaveStream(_str_Main.FileNhac);
WaveStream S = new
WaveStream(GiaoDienMayTinh.Properties.Resources.click);
if (S.Length <= 0)
throw new Exception("Invalid WAV file");
m_Format = S.Format;
if (m_Format.wFormatTag != (short)WaveFormats.Pcm &&
m_Format.wFormatTag != (short)WaveFormats.Float)
throw new Exception("Olny PCM files are supported");
m_AudioStream = S;
}
catch (Exception e)
{
CloseFile();
MessageBox.Show(e.Message);
}
}
#endregion
#endregion
#region Quan ly form
public frmMain()
{
InitializeComponent();
}
private void frmMain_Load(object sender, EventArgs e)
{
try

{
_cl_Keviconfig._ReadConfig();
Control.CheckForIllegalCrossThreadCalls = false;
_ReadCom();
_NgatKetNoi();
//_BatHetThietBi();
_TatHetThietBi();
_str_Main.SerialPort.DataReceived += new
SerialDataReceivedEventHandler(_SuKienNhanDuLieu);
//OpenFile();
sp = new System.Media.SoundPlayer(Properties.Resources.click);

Mạng cảm biến RF để điều khiển nông trại trồng nấm


×