Professional Documents
Culture Documents
- Kết nối ARDUNO nano + module LoRa + “Cảm biến” thành ba bộ thiết
bị Đọc - Xử lý - Phát (Gọi là: Bộ Cảm Biến).
- Kết nối ESP 8266 với LoRa tạo thành bộ Getaway.
- 3 bộ cảm biến sẽ giao tiếp với nhau tạo thành 1 mạng.
- Các cảm biến trong mạng sẽ đưa tín hiệu qua Lora đến bộ Getaway.
- Bộ Getaway sẽ có trách nhiệm đẩy tất cả thông tin thu được từ cảm biến
lên internet.
2. Cụ thể hóa yêu cầu của giáo viên bộ môn:
- Các thành phần thiết bị chính:
Mạch thu phát RF SPI Lora SX1278.
Arduino nano.
Cảm Biến Độ Ẩm, Nhiệt Độ HTU21 Temperature Humidity Sensor
- Ý tưởng và chức năng:
Thực hiện đọc giá trị nhiệt độ môi trường thông qua “cảm biến”.
Xử lý tín hiệu bằng arduino sau đó đóng gói tín hiệu.
Dùng module LoRa để gửi gói tín hiệu đến cho Getaway.
- Bộ Getaway bao gồm các thiết bị sau:
Kit RF Thu Phát Wifi ESP8266 NodeMCU Lua CP2102
Mạch thu phát RF SPI Lora SX1278.
- Mô tả hoạt động:
Thu được tín hiệu về nhiệt độ môi trường tại 3 khu vực đặt thiết bị
khác nhau.
THỰC TẬP VIỄN THÔNG VKT41
Dùng Arduino nano để xử lý thông tin thu được từ cảm biến gửi lên.
Dùng bộ thu sóng LoRa truyền gói tín đến thiết bị Central (ESP).
Dùng ESP giải gói tín hiệu từ Lora gửi về.
Bộ Getaway (ESP) sau khi có thông tin về nhiệt độ sẽ đưa lên trên
Cloud.
- Giao diện người dùng:
Cloud ( Dùng giao thức MQTT ).
Sau khi trên cloud có thông tin dùng điện thoại hoặc máy tính để
truy cập vào Cloud để kiểm tra thông tin thu nhận được.
II. QUÁ TRÌNH THỰC HIỆN DỰ ÁN:
1. Phân công công việc:
- Để có thể làm việc một cách tối ưu và đảm bảo tất cả các thành viên trong
nhóm đều tham gia thực hiện đề tài. Nên sẽ chia lớp thành 2 nhóm nhỏ
cùng thực hiện song song để đối chiếu kết quả, từ đó đảm bảo được tính
xác thực.
- Thời hạn và nội dung cần báo cáo lại cho nhóm trưởng ở giai đoạn 1 của dự
án sẽ được ghi trên bảng phân công công việc.
Nhóm 1:
Thành Viên Nhiệm Vụ Được Giao Thời Hạn Báo Cáo Nội dung cần báo cáo
- Viết biết báo cáo - Ngày 22/10 - Thực hiện lên ý tưởng
Lê Thị Tâm phần khung của báo
Phạm Khôi Nguyên cáo.
-Không cần số liệu.
- Thiết kế mạch trên - Ngày 25/10 -Bản thiết kế mạch
Nguyễn Thanh Lộc phần mềm Proteus. nguyên lý và PCB.
Nguyễn Cao Đức - Thực hiện gia công -Thiết kế mạch 1 lớp.
phần cứng
Ng. Phạm Quốc Việt - Viết chương trình -Ngày 25/10 -Báo cáo sơ qua về ý
cho thiết bị tưởng của chương
trình của “Bộ cảm
THỰC TẬP VIỄN THÔNG VKT41
Thành Viên Nhiệm Vụ Được Giao Thời Hạn Báo Cáo Chú Ý
- Viết biết báo cáo - Ngày 22/10 - Thực hiện lên ý tưởng
phần khung của báo
cáo.
- Không cần số liệu.
- Thiết kế mạch trên - Ngày 25/10 -Bản thiết kế mạch
phần mềm Proteus. nguyên lý và PCB.
- Thực hiện gia công -Thiết kế mạch 1 lớp.
phần cứng
- Viết chương trình -Ngày 25/10 -Báo cáo sơ qua về ý
cho thiết bị tưởng của chương
trình của “Bộ cảm
biến” và đã tiến hành
được bao nhiêu phần
trăm.
Lời cuối : Mong cả lớp làm việc nhiệt tình - vui vẻ - hòa đồng - năng động. Xem như
mình đang làm một dự án có thật của một Công Ty nào đó ở địa phận Lâm Đồng!!!
MÃ gửi
#include <Wire.h>
#include <SPI.h>
#include <LoRa_STM32.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#define NSS PA4
#define RST PB0
#define DI0 PA1
THỰC TẬP VIỄN THÔNG VKT41
#define TX_P 17
#define BAND 433E6
#define ENCRYPT 0x78
int counter = 0;
String LoRaMessage = "";
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme;
void setup()
{
Serial.begin(115200);
while (!Serial);
Serial.println(F("LoRa Sender"));
//LoRa.setTxPower(TX_P);
LoRa.setSyncWord(ENCRYPT);
LoRa.setPins(NSS, RST, DI0);
if (!LoRa.begin(BAND))
{
Serial.println(F("Starting LoRa failed!"));
while (1);
}
if (!bme.begin(0x76))
{
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
}
void loop()
{
float temperature = bme.readTemperature();
float pressure = bme.readPressure() / 100.0F;
float altitude = bme.readAltitude(SEALEVELPRESSURE_HPA);
float humidity = bme.readHumidity();
Serial.print(F("Sending packet: "));
Serial.println(counter);
Serial.print(F("Temperature = "));
Serial.print(temperature);
Serial.println(F("*C"));
Serial.print(F("Pressure = "));
Serial.print(pressure);
Serial.println(F("hPa"));
Serial.print(F("Approx. Altitude = "));
Serial.print(altitude);
Serial.println(F("m"));
Serial.print(F("Humidity = "));
Serial.print(humidity);
THỰC TẬP VIỄN THÔNG VKT41
Serial.println(F("%"));
Serial.println();
LoRaMessage = String(counter) + "/" + String(temperature) + "&" + String(pressure) + "#" +
String(altitude) + "@" + String(humidity);
// send packet
LoRa.beginPacket();
LoRa.print(LoRaMessage);
LoRa.endPacket();
counter++;
delay(3000);
}
Mã nhận
1 #include <SPI.h>
2 #include <LoRa_STM32.h>
3
4 #define SS PA4
5 #define RST PB0
6 #define DI0 PA1
7
8 #define TX_P 17
9 #define BAND 433E6
10 #define ENCRYPT 0x78
11
12 String counter;
13 String temperature;
14 String pressure;
15 String altitude;
16 String humidity;
17
18 void setup()
19 {
20 Serial.begin(115200);
21 while (!Serial);
22
23 Serial.println("LoRa Receiver");
24 //LoRa.setTxPower(TX_P);
25 LoRa.setSyncWord(ENCRYPT);
26
THỰC TẬP VIỄN THÔNG VKT41
69 Serial.print(F("Temperature = "));
70 Serial.print(temperature);
71 Serial.println(F("*C"));
72
73 Serial.print(F("Pressure = "));
74 Serial.print(pressure);
75 Serial.println(F("hPa"));
76
77 Serial.print(F("Approx. Altitude = "));
78 Serial.print(altitude);
79 Serial.println(F("m"));
80
81 Serial.print(F("Humidity = "));
82 Serial.print(humidity);
83 Serial.println(F("%"));
84 Serial.println();
85 }
86 }