Tải bản đầy đủ - 0 (trang)
4 Đưa ứng dụng lên Heroku

4 Đưa ứng dụng lên Heroku

Tải bản đầy đủ - 0trang

Đồ án chun ngành



SVTH: Phạm Văn Cơng



Khi hồn tất truy cập vào địa chỉ https://cambien.herokuapp.com/ sẽ có giao diện

như hình dưới



Hình 3.6 Giao diện trang Web.



29



Đồ án chuyên ngành



SVTH: Phạm Văn Công



Kết luận

Qua đề tài Đo giá trị độ rọi sáng và đưa dữ liệu lên internet, em đã thu được một số

kết quả: Đọc dữ liệu bằng chuẩn giao tiếp I2C, thiết kế một web server hiển thị giá

trị đo được. Tuy nhiên trong việc thiết kế webserver của em còn nhiều việc phải làm

để hồn thiện hơn đề tài nay. Trong quá trình thực hiện đề tài em xin cảm ơn thầy

PGS.TS Nguyễn Quốc Cường đã hướng dẫn em thực hiện đề tài.



Danh mục tài liệu tham khảo

[1] Giáo trình cảm biến- Nguyễn Hữu Cường, 2007.



30



Đồ án chuyên ngành



SVTH: Phạm Văn Cơng



Phụ Lục

 Thuật tốn nạp cho Arduino.

// Khai báo thu viện

#include

#include

const byte RX = 3;

const byte TX = 2;

SoftwareSerial mySerial = SoftwareSerial(RX, TX);

char serial_command_buffer_[32];

float c,d;

void setup()

{c=0;

mySerial.begin(115200);// đặt tốc đọ bộ UART là 115200

Int();

}

void loop()

{

start();

// Hàm gửi tín hiệu Start

write_i(0x46);

// Hàm gửi 1 byte

write_i(0x10);

// Hàm gửi 1 byte

stop_i();

// gửi tín hiệu Stop

start();

// Hàm gửi tín hiệu Start

write_i(0x47);

// Hàm gửi 1 byte

c= read_ack();

// Hàm đọc byte cao

d= read_i();

// Hàm đọc byte cao

stop_i();

// gửi tín hiệu Stop

d=(c*256+d)/1.2;

mySerial.println(d); // gửi dữ liệu sang NodeMCU

delay(200);

}

//Hàm thiết lập tốc độ của bộ I2C

void Int(){

TWBR=32;

}

// Hàm gửi tín hiệu Start

void start(){

TWCR = (1<
while (!(TWCR & (1<
}



31



Đồ án chuyên ngành



SVTH: Phạm Văn Công



// Hàm gửi 1 byte dữ liệu lên cảm biến BH1750

void write_i(unsigned char byt) {

TWDR=byt;

TWCR = (1<
while (!(TWCR & (1<
}

// Hàm đọc byte thấp

unsigned char read_i() {

TWCR = (1<
while (!(TWCR & (1<
return TWDR;

}

// Hàm đọc byte cao

unsigned char read_ack() {

TWCR = (1<
while (!(TWCR & (1<
return TWDR;

}

// gửi tín hiệu Stop

void stop_i() {

TWCR = (1<
}



 Thuật toán nạp cho NodeMCU

//Khai báo thư viện

#include

#include

#include

#include

ESP8266WebServer sv(80);

const byte RX = D1;

const byte TX = D2;

SoftwareSerial mySerial = SoftwareSerial(RX, TX, false, 256);

char serial_command_buffer_[32];

SocketIOClient client;

String ssid = "";

//Tên mạng Wifi mà Socket server của bạn đang kết nối

String password = ""; //Pass mạng wifi mình với.

char host[] = "cambien.herokuapp.com";

unsigned long previousMillis = 0;

long interval = 2000;

int data;

int timeout;



32



Đồ án chuyên ngành



SVTH: Phạm Văn Công



void setup()

{

data=0;

WiFi.mode(WIFI_AP_STA);

WiFi.softAP("ESP8266");

Serial.begin(115200);

mySerial.begin(115200);

delay(10);

//Kết nối vào mạng Wifi

WiFi.begin(ssid, password);

//Chờ đến khi đã được kết nối

while (WiFi.status() != WL_CONNECTED) { //Thốt ra khỏi vòng

delay(500);

Serial.print('.');

if(timeout>10){

break;

}

timeout=timeout+1;

}

// đoạn mã html được trả về khi truy cập vào trang 192.268.4.1

sv.on("/",[]{

sv.send(200,"text/html",

""

""

""

""<br /><br />"Untitled Document"<br /><br />""

""

""

""

"
"

"
"

"
"

"Đăng nhập wifi "

"
"

"
"

"
"

"Tên đăng nhập "

""

"
"

"
"

"
"

"Mật Khẩu "

""

"
"

"
"

"
"

""

"
"

""

"");

});

//========================================

sv.on("/gui",[]{

Serial.println("aa");

ssid=sv.arg("wifi");

password=sv.arg("pass");

Serial.println(ssid);

Serial.println(password);

sv.send(200,"text/html",

""

""

""

""<br /><br />"Untitled Document"<br /><br />""



34



Đồ án chuyên ngành



SVTH: Phạm Văn Công



""

""

""

"
"

"
"

"
"

"Đăng nhập wifi "

"
"

"
"

"
"

"Tên đăng nhập "

""

"
"

"
"

"
"

"Mật Khẩu "

""

"
"

"
"

"
"

""

""



35



Đồ án chuyên ngành



SVTH: Phạm Văn Công



""

"đã kết nối"

"
"

""

""

"");

WiFi.disconnect(true);

});

sv.begin();

sei();

}

void loop()

{

sv.handleClient();

if(WiFi.isConnected()==1){

if (!client.connected()) {

client.reconnect(host);

}

int x=mySerial.available();

if (x>3)

{

char x00=mySerial.read();

String x0=mySerial.readStringUntil('\r');

client.send("guidata", "message",(String)x0);

}

}

else{

timeout=0;

WiFi.begin(ssid, password);

WiFi.reconnect();

timeout=0;

while (WiFi.status() != WL_CONNECTED)

{

delay(500);

timeout=timeout+1;

if(timeout>20){

break;

}

}



36



Đồ án chuyên ngành



SVTH: Phạm Văn Cơng



 Code server



File có tên là index.js

var express=require("express");

var app=express();

app.use(express.static("public"));

app.set("view engine", "ejs");

app.set("views", "./view");

var server=require("http").Server(app)

var io=require("socket.io")(server);

var port=Number( process.env.PORT||3000);

console.log(process.env.NODE_PORT);

server.listen(port);

io.on("connection",function(socket){

socket.on("guidata",function(data){

console.log(data);

io.sockets.emit("data_gui_lai",data);

});

});

app.get("/",function(req, res){

res.render("TT");

});



37



Đồ án chuyên ngành



SVTH: Phạm Văn Công



 Code file TT.ejs : Đoạn code dùng để render giao diện trang web



https://cambien.herokuapp.com/

















Cảm biến ánh sáng





CẢM BIẾN ÁNH SÁNG



















39