TRƢỜNG ĐH SPKT TP. HỒ CHÍ MINH
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y
SINH
CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT
NAM
ĐỘC LẬP - TỰ DO - HẠNH PHÖC
o0o-Tp. HCM, ngày 05 tháng 01 năm 2019
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ tên sinh viên:
Chuyên ngành:
Hệ đào tạo:
Khóa:
Nguyễn Tiến Hòa
Ngô Minh Hiệp
Kỹ thuật Điện - Điện tử
Đại học chính quy
2014
MSSV: 14141117
MSSV: 14141105
Mã ngành: 41
Mã hệ:
1
Lớp:
14141DT2A
I. TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG MÔ HÌNH XE THĂM DÕ MÔI
TRƢỜNG
II. NHIỆM VỤ
1. Các số liệu ban đầu:
kit RASPBERRY PI 3
ARDUINO UNO R3
MODULE L298N
SERVO SG90
MODULE DHT11
MODULE MPU-6050
CAMERA LOGITECH
2. Nội dung thực hiện:
Thiết kế giao diện web server điều khiển xe
Live camera trên webserver
Điều khiển camera
Gửi dữ liệu cảm biến lên web
III. NGÀY GIAO NHIỆM VỤ:
07/10/2018
IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 18/01/2019
V. HỌ VÀ TÊN CÁN BỘ HƢỚNG DẪN:
ThS. Nguyễn Trƣờng Duy
CÁN BỘ HƢỚNG DẪN
BM. ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
ii
TRƢỜNG ĐH SPKT TP. HỒ CHÍ MINH
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT
NAM
ĐỘC LẬP - TỰ DO - HẠNH PHÖC
o0o-Tp. HCM, ngày 7 tháng 10 năm 2018
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP
Họ tên sinh viên 1: Ngô Minh Hiệp
Lớp:14141DT1B
MSSV: 14141105
Họ tên sinh viên 2: Nguyễn Tiến Hòa
Lớp: 14141DT1C
MSSV: 14141117
Tên đề tài: THIẾT KẾ VÀ THI CÔNG MÔ HÌNH XE THĂM DÕ MÔI
TRƢỜNG
Tuần
Tuần/ngày
Nội dung
1
(01-07/10/2018)
Nhận đồ án, tìm hiểu đề tài, viết
đề cƣơng chi tiết cho đề tài.
2
(08-14/10/2018)
3
(15-21/10/2018)
4
(22/4 - 28/10/2018)
5, 6
(29/10 -11/11/2018)
7,8,9
(12/11 -02/12/2018)
Kết nối và viết code đẩy dữ liệu từ
raspberry sang arduino uno.
Kết nối và viết code đẩy dữ liệu
cảm biến DHT11, mpu6050 từ
arduino qua raspberry
Thiết kế giao diện web server
10
(03 -09/12/2018)
Lắp đặt phần cứng của xe
11,12
(10-23/12/2018)
Kết nối và hoàn thiện xe
13
(24/12 -30/12/2018)
14
01/01/2018
Xác nhận
GVHD
Tìm hiểu thông tin về thiết bị điều
khiển lập trình, cơ cấu chấp hành..
Kết nối và viết code đẩy video lên
web server
Viết báo cáo, kiểm tra các phần
cứng .
GVHD kiểm duyệt lại đề tài.
GV HƢỚNG DẪN
(Ký và ghi rõ họ và tên)
iii
LỜI CAM ĐOAN
Đề tài này là do tôi tự thực hiện dựa vào một số tài liệu trƣớc đó và không sao chép
từ tài liệu hay công trình đã có trƣớc đó.
Nhóm sinh viên thực hiện đề tài
Ngô Minh Hiệp – Nguyễn Tiến Hòa
iv
LỜI CẢM ƠN
Em xin gởi lời cảm ơn sâu sắc đến Thầy Nguyễn Trƣờng Duy _ Giảng viên
bộ môn Điện
...
...
digitalWrite(IN1, LOW)
digitalWrite(IN2, HIGH)
analogWrite(ENA, duty)
break
case 3:
digitalWrite(IN1, LOW)
digitalWrite(IN2, LOW)
analogWrite(ENA, duty)
break
}
}
**************
Motor B control
void motorB(int mode, int percent)
{
*****************
int duty = map(percent, 0, 100, 0, 255)
switch(mode)
{
case 0:
digitalWrite(ENB, LOW)
break
case 1:
digitalWrite(IN3, HIGH)
digitalWrite(IN4, LOW)
analogWrite(ENB, duty)
break
case 2:
digitalWrite(IN3, LOW)
digitalWrite(IN4, HIGH)
analogWrite(ENB, duty)
break
case 3:
digitalWrite(IN3, LOW)
digitalWrite(IN4, LOW)
analogWrite(ENB, duty)
break
}
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
70
PHỤ LỤC
}
void loop() {
// Move
if (Serial.available()0) {
rpi = Serial.read()
rpi = rpi - 48
Serial.println(rpi)
}
if(rpi ==49)
{
a=1
if(a==1)
{
digitalWrite(den, HIGH)
}
}
else if(rpi ==50)
{
a=0
if(a==0)
{
digitalWrite(den, LOW)
}
}
else if (rpi == 3)
{
goc1++
if(goc1 == 181)
{
goc1 = 180
}
servo1.write(goc1)
(5)
}
////////////////////////////////
else if (rpi == 1)
{
goc1
if(goc1 == -1)
{
goc1 = 0
}
servo1.write(goc1)
(5)
}
else if (rpi == 5)
{
goc2++
if(goc2 == 181)
{
goc2 = 180
}
servo2.write(goc2)
(5)
}
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
71
PHỤ LỤC
////////////////////////////////
else if (rpi == 7)
{
goc2
if(goc2 == -1)
{
goc2 = 0
}
servo2.write(goc2)
(5)
}
else if(rpi ==9)
{
goc1=goc1
goc2=goc2
}
else if (rpi==2) { //Tiến
motorA(2, 100)
motorB(2, 100)
} else {
if (rpi==4) { //trái
motorA(1, 100)
motorB(2, 100)
} else {
if (rpi==6) { //Phải
motorA(2, 100)
motorB(1, 100)
} else {
if (rpi==8) { //Lùi
motorA(1, 100)
motorB(1, 100)
} else {
if (rpi==0) { //Dừng
motorA(3, 100)
motorB(3, 100)
}
}
}
}
}
}
Code cảm biến DHT11
import sys
import RPi.GPIO as GPIO
from time import
import Adafruit_DHT
import urllib.request as urllib2
myAPI = PH03HXEQQQVL8ZN2
def getSensorData():
T, RH = Adafruit_DHT.read_retry(Adafruit_DHT.DHT11, 17)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
72
PHỤ LỤC
return (str(RH), str(T))
def main():
print (starting...)
baseURL = https://api.thingspeak.com/?api_key=%s % myAPI
while True:
try:
T, RH = getSensorData()
f = urllib2.urlopen(baseURL + &ampfield1=%s&ampfield2=%s % (T,
RH))
print (f.read())
f.close()
(2) #uploads DHT22 sensor values every 5 minutes
except:
print (exiting.)
break
# call main
if __name__ == __main__:
main()
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
73