Giới thiệu tình hình nghiên cứu hiện nay
Hiện nay cùng với sự phát triển của xã hội, cuộc sống ngày càng được nâng cao thì việc áp dụng công nghệ khoa học kỹ thuật vào đời sống công việc ngày càng cần thiết Cùng với sự phát triển của các ngành khoa học kỹ thuật, công nghệ kỹ thuật điện tử mà trong đó đặc biệt là kỹ thuật điều khiển tự động đóng vai trò quan trọng trong mọi lĩnh vực khoa học kỹ thuật, quản lý, công nghiệp, nông nghiệp, đời sống, quản lý thông tin,
Cùng theo sự phát triển đó các thiết bị như PC, laptop, điện thoại di động, máy tính bảng là một thiết bị không thể thiếu trong cuộc sống và được hầu hết mọi người sử dụng Ngoài chức năng làm việc xử lý tính toán, lướt web, giải trí, nghe gọi, … thì những thiết bị này còn có thể giám sát từ khoảng cách xa các thiết bị trong nhà cũng như trong công nghiệp, trường học, thay vì muốn khởi động hay tắt một thiết bị nào đó ta phải đi đến nơi có công tắc của thiết bị thì ở đây ta ngồi một chỗ mà vẫn có thể làm điều đó giống như điều khiển tivi qua remote nhưng khoảng cách là khá ngắn thì ở đây chúng ta sẽ có thể điều khiển các thiết bị trong nhà thông qua những thiết bị hiện đại thông qua kết nối internet (3g/4g/wifi, )
Internet of Things(IoT) hiện nay đang là một xu hướng được các doanh nghiệp về công nghệ quan tâm hàng đầu để đầu tư và nghiên cứu Những gì IoT mang lại chắc chắn sẽ vượt xa trí tưởng tượng của chúng ta Nếu chúng ta biết tận dụng tốt những công nghệ mới này, cơ hội thành công sẽ là rất lớn Mô hình nhà thông minh sẽ giúp cho chủ nhà có thể kiểm soát và giám sát các hoạt động trong nhà, kiểm soát truy cập, bảo mật và tiết kiệm năng lượng Những thiết bị chuyên dụng sử dụng các công nghệ không dây: zigbee, lora, wifi,3g/4g,… dành cho những ngôi nhà thông minh đang ngày càng được cải tiến để cho chúng trở nên thông minh hơn, hiệu quả hơn và an toàn hơn Những thiết bị thông minh sẽ tạo nên sự tiện lợi thực sự cho cuộc sống theo cách tốt nhất
Ngoài ra việc kiểm tra thiết bị bằng cách tích hợp nhiều cảm biến cũng đang được loại bỏ dần thay vào đó bằng một camera giám sát có thể gửi hình ảnh trực tiếp từ thực tế nơi mình điều khiển để gửi hình ảnh về điện thoại để người dùng có thể kiểm tra cũng như theo dõi thiết bị có hoạt động đúng với mục đích nhu cầu của người sử dụng cũng đang là một xu thế mà thế giới cũng như Việt Nam ta hướng tới
Hình 1 1: Mô hình giám sát và điều khiển.
Tính cấp thiết của đề tài
Ở các nước phát triển thì công nghệ này không còn mới và đã được đem vào sử dụng, những năm gần đây công nghệ này cũng đã được ứng dụng ở Việt Nam và đem lại những lợi ích to lớn ví dụ: mô hình bật tắt máy bơm nước thông qua điện thoại, mô hình nhà thông minh nhằm tiết kiệm được thời gian, tiền bạc, đem lại một cuộc sống tiện nghi và thông minh hơn
Tuy nhiên việc sử dụng các cảm biến để đo hay kiểm tra thì vẫn chưa đáp ứng được nhu cầu hiện nay Với tốc độ phát triển hiện nay thì việc kiểm tra các dữ liệu hay thiết bị thông qua hình ảnh hoặc video là cực kì cần thiết.
Mục tiêu nghiên cứu
Từ những lợi ích thấy được như đã kể trên thì nhóm quyết định chọn đề tài “ ỨNG DỤNG IOT TRONG GIÁM SÁT VÀ ĐIỀU KHIỂN QUA HÌNH ẢNH” nhằm hiểu rõ hơn về cách thức hoạt động, nguyên lý, và muốn đem sản phẩm của nhóm để ứng dụng vào trong cuộc sống hằng ngày cũng như sự phát triển công nghệ của đất nước.
Nhiệm vụ nghiên cứu
Hiện tại, Internet of Things( IoT ] tập trung vào các dịch vụ sản phẩm trong nhà (Connected Home), tích hợp vào hệ thống công nghệ thông tin và công nghệ vận hành có sẵn (IT/OT Integration) để nâng cao chất lượng quản lý và năng suất lao động Mục tiêu số 1 của việc ứng dụng IoT là để tăng năng suất lao động IoT giúp giám sát, điều khiển, tối ưu hóa hoạt động vận hành, giúp cho mỗi người dân đều có thể sử dụng các thiết bị thông minh.
Đối tượng nghiên cứu
Đối tượng nghiên cứu là các loại IC, linh kiện diển tử, vi điều khiển,các giải pháp công nghệ hiện nay ,…
Phạm vi nghiên cứu
Nhóm sẽ nghiên cứu để điều khiển được thiết bị qua wifi/3g sử dụng app thứ 3 trên điện thoại, và kiểm tra thiết bị điều khiển bằng hình ảnh qua camera
Nhóm sinh viên thực hiện đã đưa ra những yêu cầu sau:
Thiết kế và hoàn thiện mạch
Điều khiển thiết bị qua wifi sử dụng vi xử lý kết hợp với cảm biến
Bật tắt thiết bị qua điện thoại, có nút nhấn để điều khiển thiết bị bằng tay và nút reset mạch điều khiển khi có sự cố xảy ra
Kiểm tra thiết bị bật tắt và giám sát sự hoạt động của thiết bị thông qua hình ảnh thực tế
Biết được trạng thái hoạt động của thiết bị thông qua màn hình lcd.
Bố cục đề tài
Đề tài sẽ được trình bày trong 6 chương:
Chương 2 : Cơ sở lý thuyết
Chương 3 : Thiết kế hệ thống và các khối
Chương 4 : Chương trình điều khiển
Chương 5 : Kết quả và thực nghiệm
Chương 6 : Kết luận và hướng phát triển
Truyền dữ liệu
Truyền dữ liệu là cách mà các thiết bị có thể giao tiếp, trao đổi thông tin với nhau Có hai cách để truyển dữ liệu đó là truyền dữ liệu nối tiếp và truyền dữ liệu song song Mặt dù chỉ có hai cách truyền dữ liệu nhưng lại có rất nhiều chuẩn truyền dữ liệu Một số chuẩn truyền dữ liệu phổ biến hiện nay đó là SPI, UART và I2C
SPI viết tắt của Serial Peripheral Interface, SPI bus – Giao diện ngoại vi nói tiếp, bus SPI Chuẩn SPI được phát triển bởi Motorola Đây là một chuẩn đồng bộ nối tiếp để truyền dữ liệu ở chế độ song công toàn phần (full- duplex) tức trong cùng một thời điểm có thể xảy ra đồng thời quá trình truyền và nhận Đôi khi SPI còn được gọi là chuẩn giao tiếp 4 dây (Four-wire)
SPI là giao diện đồng bộ, bất cứ quá trình truyền nào cũng được đồng bộ hóa với tín hiệu clock chung Tín hiệu này sinh ra bởi master
Hình 2 1: Truyền tín hiệu theo chuẩn SPI
Trong giao diện SPI có bốn tín hiệu số:
MOSI hay SI – cổng ra của bên Master ( Master Out Slave IN) Đây là chân dành cho việc truyền tín hiệu từ thiết bị chủ động đến thiết bị bị động
MISO hay SO – Công ra bên Slave (Master IN Slave Out) Đây là chân dành cho việc truyền dữ liệu từ Slave đến Master
SCLK hay SCK là tín hiệu clock đồng bộ (Serial Clock) Xung nhịp chỉ được tạo bởi Master
CS hay SS là tín hiệu chọn vi mạch ( Chip Select hoặc Slave Select) SS sẽ ở mức cao khi không làm việc Nếu Master kéo SS xuông thấp thì sẽ xảy ra quá trình giao tiếp Chỉ có một đường SS trên mỗi slave nhưng có thể có nhiều đường điều khiển SS trên master, tùy thuộc vào thiết kế của người dùng
I²C, viết tắt của từ tiếng Anh “Inter-Integrated Circuit”, là một loại bus nối tiếp được phát triển bởi hãng sản xuất linh kiện điện tử Philips Ban đầu, loại bus này chỉ được dùng trong các linh kiện điện tử của Philips Sau đó, do tính ưu việt và đơn giản của nó, I²C đã được chuẩn hóa và được dùng rộng rãi trong các moudle truyền thông nối tiếp của vi mạch tích hợp ngày nay
Cấu tạo và nguyên lý hoạt động:
I²C sử dụng hai đường truyền tín hiệu:
Một đường xung nhịp đồng hồ(SCL) chỉ do Master phát đi ( thông thường ở 100kHz và 400kHz Mức cao nhất là 1Mhz và 3.4MHz)
Một đường dữ liệu(SDA) theo 2 hướng Sơ đồ kết nối như hình 2-2
Hình 2 2: Truyền tín hiệu theo chuẩn I2C
UART là viết tắt của Universal Asynchronous Receiver – Transmitter Thường là một mạch tích hợp được sử dụng trong việc truyền dẫn dữ liệu nối tiếp giữa máy tính và các thiết bị ngoại vi Rất nhiều vi điều khiển hiện nay đã được tích hợp UART UART thường được dùng trong máy tính công nghiệp, truyền thông, vi điều khiển, hay một số các thiết bị truyền tin khác Mục đích của UART là để truyền tín hiệu qua lại lẫn nhau ( ví dụ truyền tín hiệu từ Laptop vào Modem hay ngược lại ) hay truyền từ vi điều khiển tới vi điều khiển, từ laptop tới vi điều khiển Ở kiểu truyền này thì có 1 đường phát dữ liệu và 1 đường nhận dữ liệu còn tín hiệu xung clock có cùng tần số và thường được gọi là tốc độ truyền dữ liệu (baund)
Hình 2 3: Truyền tín hiệu theo chuẩn UART.
Giao thức HTTP
HTTP - Hypertext Transfer Protocol (giao thức truyền dẫn siêu văn bản), là giao thức để truyền dữ liệu giữa các máy tính qua www (World Wide Web), với dữ liệu có thể là dạng text, file, ảnh, hoặc video
HTTP được thiết kế để trao đổi dữ liệu giữa Client và Server trên nền TCP/IP, nó vận hành theo cơ chế yêu cầu/trả lời, stateless - không lưu trữ trạng thái Trình duyệt Web chính là Client, và một máy chủ chứa Web Site là Server Client sẽ kết nối tới Server, gởi dữ liệu đến server bao gồm các thông tin header Server nhận được thông tin và căn cứ trên đó gởi phản hồi lại cho Client Đồng thời đóng kết nối
Trong giao thức HTTP, việc thiết lập kết nối chỉ có thể xuất phát từ phía client ( lúc này có thể gọi là HTTP Client ) Khi client gửi yêu cầu, cùng với URL và payload ( dữ liệu muốn lấy ) tới server Server ( HTTP Server ) lắng nghe mọi yêu cầu từ phía client và trả lời các yêu cầu ấy Khi trả lời xong kết nối được chấm dứt
Hình 2 4: Cách truyền nhận dữ liệu thông qua giao thức http
Với : URL được dùng để định dạng địa chỉ Website
JSON (JavaScript Object Notation) là 1 định dạng trao đổi dữ liệu để giúp việc đọc và viết dữ liệu trở nên dễ dàng hơn, máy tính cũng sẽ dễ phân tích và tạo ra JSON Chúng là cơ sở dựa trên tập hợp của ngôn ngữ lập trình JavaScript JSON là 1 định dạng kiểu text mà hoàn toàn độc lập với các ngôn ngữ hoàn chỉnh, thuộc họ hàng với các ngôn ngữ trong họ hàng của C, gồm có C, C++, C#, Java, JavaScript, Perl, Python, và nhiều ngôn ngữ khác Những đặc tính đó đã tạo nên JSON 1 ngôn ngữ hoán vị dữ liệu lý tưởng
"email" : "your-email@email.com",
Giới thiệu chung về cơ sở dữ liệu
Dữ liệu là các thông tin liên quan đến đối tượng (ví dụ như người, vật, sự việc, ) được lưu trữ trên máy tính Dữ liệu được mô tả dưới nhiều dạng khác nhau (như ký tự, ký hiệu, hình ảnh, , âm thanh ) Để có thể đưa được các dữ liệu hình ảnh, các giá trị thống số của một hệ thống ta cần phải sử dụng 1 cỡ sở dữ liệu có sẵn hoặc có thể tự tạo Nó có nhiệm vụ lưu trữ cũng như thay đổi để tiện cho việc sử dụng
Hiện nay có khá nhiều trang web hỗ trợ chúng ta đưa dữ liệu lên và lưu trữ nó trên internet được hỗ trợ miễn phí và có thể sử dụng ở mọi nơi vd: Firebase, Adafruit.io, Thing speed, bylnk,…nhưng để đưa được video, và hình ảnh cũng như database thì Firebase của Google đang hỗ trợ
Hình 2 5: Các ứng dụng trên Firebase
Google FireBase là gì: Đó là một dịch vụ cơ sở dữ liệu thời gian thực hoạt động trên nền tảng đám mây được cung cấp bởi Google nhằm giúp các lập trình phát triển nhanh các ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu
Google FireBase bao gồm việc:
- Lưu trữ dữ liệu thời gian thực:
Bạn đăng ký 1 tài khoản trên firebase, tạo một ứng dụng và bạn đã có 1 cơ sở dữ liệu thời gian thực
Dữ liệu trong cơ sở dữ liệu Firebase của bạn được lưu trữ dưới dạng JSON và đồng bộ realtime đến mọi kết nối client Khi bạn xây dựng những ứng dụng đa nền tảng như Android, IOS và JavaScrip SDKs, tất cả các client của bạn sẽ chia sẻ trên một cơ sở dữ liệu Firebase và tự động cập nhật với dữ liệu mới nhất
Với các ứng dụng đa nền tảng tất cả các client sẽ đề sử dụng chung 1 DB và luôn được tự động cập nhật dữ liệu mới nhất
Tất cả dữ liệu được truyền qua một kết nối an toàn SSL với một chứng nhận 2048-bit
Làm việc offline: Đừng lo nếu mất mạng bởi dữ liệu luôn được lưu trữ trước ở local mỗi khi có sự thay đổi nào sẽ được tự động cập nhật lên server của Firebase và ngược lại khi dữ liệu ở local là cũ hơn với server nó cũng sẽ được tự động cập nhật để dữ liệu luôn là mới nhất
Firebase đã xây dựng chức năng cho việc xác thực người dùng với Email, Facebook, Twitter, GitHub, Google, và xác thực nạc danh Nó giúp bạn nhiều trong việc xác thực người dùng
Firebase cung cấp các hosting và được phân phối qua SSL từ CDN sẽ giúp bạn tiết kiệm được rất nhiều thời gian trong việc xây dựng ứng dụng
Là dịch vụ được xây dựng cho mục đích lưu trữ và quản lý các nội dung mà người dùng ứng dụng tạo ra như ảnh, videos hay dữ liệu dạng file
Firebase Storage cung cấp các API cho việc uploads và download các file từ app của bạn một cách bảo mật và bạn không cần quan tâm đến chất lượng đường truyền mạng
Firebase Storage được xây dựng trên nền tảng Google Cloud Platform nên có nhiều lợi thế
Hình 2 6: Dữ liệu được gửi trên Firebase.
Thiết kế hệ thống
Theo như đề tài “ỨNG DỤNG IOT TRONG GIÁM SÁT VÀ ĐIỀU KHIỂN
QUA HÌNH ẢNH” các yêu cầu đề ra:
Có khả năng nhận tín hiệu từ các thiết bị ngoại vi và gửi tín hiệu điều khiển chúng
Kết nối internet đề điều khiển từ xa các thiết bị thông minh
Thu thập dữ liệu từ camera và cảm biến nhiệt độ và độ ẩm
KHỐI MẠCH NẠP HIỂN THỊ
Hình 3 1: Sơ đồ khối hệ thống
- Khối nguồn: có chức năng cấp nguồn cho toàn bộ mạch để hoạt động
- Khối xử lí: có chức năng nhận/xuất dữ liệu,xử lí và điều khiển
- Khối mạch nạp : có chức năng nạp chương trình cho cho khối xử lý
- Khối công suất: có chức năng kết nối với các thiết bị bên ngoài với vi khối điều khiển để điều khiển
- Khối cảm biến : thu thập dữ liệu từ bên ngoài để khối xử lý tính toán và trả về kết quả cho người dùng
- Nút nhấn : chọn chế độ nạp chương trình, điều on/off và reset lại thiết bị
- Khối camera : truyền hình ảnh về điện thoại để kiểm tra thiết bị
- Hiển thị : giúp hiện thị trạng thái hoạt động của thiết bị
Hệ thống sẽ nhận các tín hiệu từ các khối nút nhấn, khối cảm biến, từ điện thoại để kiểm tra xử lý thông qua khối xử lý, Sau khi xử lý xong, tiến hành đưa thông tin lên sever và gửi các tín hiệu điều khiển qua khối công suất để điều khiển các ngoại vi Để kiểm tra thiết bị có hoạt động đúng với mục đích đề ra, thông qua khối camera gửi dữ liệu hình ảnh hoặc video thực tế về điện thoại Khi không có điện thoại vẫn có thể biết được trạng thái hoạt động của thiết bị thông qua màn hình lcd.
Thiết kế các khối
Khối xử lí: có chức năng nhận các tín hiệu từ các chân I/O và tiến hành tính toán và xử lí cho hệ thống
Khối xử lý gồm 2 vi điều khiển giao tiếp với nhau một vi điều khiển có nhiệm vụ kết nối với mạng thông qua các kết nối internet, 1 vi điều khiển có nhiệm vụ xử lý điều khiển cũng như đo nhiệt độ
Có nhiều cách để điều khiển các thiết bị như điều khiển thông qua Bluetooth, SIM , RF,wifi … Mỗi cách đều có ưu nhược điểm khác nhau như:
Bluetooth tiêu thụ năng lượng ít tuy nhiên khoảng cách kết nối ngắn và độ bảo mật không cao
SIM có ưu điểm điều khiển được với khoảng cách xa nhưng khuyết điểm là nơi điều khiển phải có sóng và khá tốn kém
RF khá nhỏ gọn và tiện lợi, tiêu thụ năng lượng ít, nhưng khoảng cách điều khiển ngắn giá thành còn khá cao …
Với yêu cầu và giới hạn của đề tài, nhóm quyết định chọn phương pháp điều khiển thông qua wifi và sử dụng chip điều khiển ESP8266-12F, tốc độ xử lí nhanh,kích thước nhỏ gọn và giá thành khá hợp lí, phù hợp với tình hình phát triển hiện nay khi hầu hết mọi hộ gia đình điều có kết nối wifi
Flash : tối đa 16MB (thường là 512K)
Vi xử lý : Tensilica L106 32bit
Số kế nối TCP max :5
Chức năng từng chân của ESP8266EX:
Bảng 3 1: Chức năng từng chân của EPS8266
Phương thức để nạp cho ESP-12F qua 2 phương thức UART và FLASH BOOT:
Bảng 3 2: Chọn phương thức nạp cho ESP8266
Các điện trở treo R17, R14 có giá trị lần lượt là 10K và 4k7
2 điện trở R16, R18 có giá trị 1K
Tụ C15 có giá trị 10uF
Hình 3 3: Sơ đồ nguyên lý mạch ESP8266
Các điện trở có nhiệm vụ hạn dòng vào ESP-12F để trách trường hợp quá dòng gây hư hỏng về sau
Tụ có nhiệm vụ lọc nguồn giảm nhiễu
Với việc chân của ESP 8266 bị hạn chế số lượng chân và không có nhiều chức năng cần thiết và khó mở rộng sau này ta cần 1 vi xử lý giao tiếp với ESP8266 để gửi dữ liệu đồng bộ lên mạng
Có rất nhiều Vi điều khiển có thể kết nối được với ESP 8266 bằng các phương thức giao tiếp như đã được nói đến ở chương 2
Dòng STM32, PIC, ATMEGA,…điều hỗ trợ các chuẩn trên Nhưng ở đây nhóm chọn dòng ATMEGA vì nhu cầu cần thiết giá thành rẻ chức năng dễ dàng tiêp cận, hỗ trợ nhiều thư viện cũng như thiết kế
Có nhiều dòng ATMEGA như ATMEGA16, ATMEGA32, ATMEGA64,… do nhu cầu sử dụng để điều khiển và đo nhiệt độ cũng như giao tiếp với ESP8266 nên chọn dòng ATMEGA328 phù hợp với giá tiền, độ bền cao, được ứng dụng nhiều
Nhóm chọn chuẩn kết nối UART để giao tiếp giữa ESP với ATMEGA vì dễ sử dụng ứng dụng mở rộng có thể giao tiếp được với module sim, Bluetool…
Số phụ kiện nhà sản xuất: ATMEGA328P-AU
Mô tả: MCU AVR 32K FLASH 32TQFP
Chuẩn kết nối: I²C, SPI, UART/USART
Ngoại vi: Brown-out Detect/Reset, POR, PWM, WDT
Kích cỡ bộ nhớ chương trình: 32KB (16K x 16)
Kiểu bộ nhớ chương trình: FLASH
Bộ chuyển đổi dữ liệu: A/D 8x10b
Tần số hoạt động: 16MHZ
Dòng tiêu thụ: Khoảng 30mA
Dòng tối đa trên mỗi chân I/O: 30mA
Chức năng từng chân của Atmega328:
Hình 3 5: Chức năng các chân ATMEGA328
Điện trở treo R1 có giá trị 10K, thạch anh có tần số 16MHz
Hình 3 6: Sơ đồ nguyên lý mạch ATMEGA328
Nút nhấn reset khi thiết bị bị treo hoặc gặp sự cố xảy ra, các chân kết nối của “Atmega328” được lấy ra jum để dễ dàng cho gắp màn hình hiển thị hay cảm biến Cũng có thể mở rộng được sau này
2 chân TX và RX được giao tiếp với ESP-12F để giao tiếp UART
2 chân 5, 6 lần lượt giao tiếp với khối công suất để điều khiển thiết bị
2 chân 3, 4 giao tiếp lần lượt với 2 nút nhấn
Chân A0 giao tiếp với cảm biến
2 chân SDA và SDL giao tiếp với lcd
Khối công suất: các điện trở hạn dòng, opto cách ly quang dùng để bảo vệ khối xử lý với khối công suất khi có sự cố xảy ra Transistor dùng để đóng cắt dòng để điều khiển relay, 1 diode mắc song song với cuộn dây của relay để bảo vệ transistor , 1 relay dùng để đóng ngắt dòng điện và 1 domino 2 pin để kết nối với thiết bị bên ngoài
- Do điều khiển thiết bị sử dụng dòng lớn nên ta sử dụng :
Ta sử dụng relay 5VDC/10A
Nhiệt độ hoạt động: - 45 °C to 75 °C
Dòng kích cuộn dây : 90 mA
Công suất cuộn dây (coil) DC: 450 Mw
Điện áp điều khiển cuộn dây (coil): 5 V
Có nhiều loại opto như opto P521, HC11C2 là opto SCR… nhưng nhóm chọn opto PC817 là loại thông dụng phổ biến nhất trên thị trường hiện nay
Các thông số cơ bản:
Điện áp chuyển tiếp: khi IF mA thì VF=1.2V
Dòng IRuA khi VR=4V(áp ngược)
Công suất tiêu hao trên transistor 150mW
Transistor: có nhiều loại transistor và được phân loại là NPN và PNP ví dụ 2N3055, A564, C828, C1815
Do dòng điều khiển relay là 90mA nên ta chọn transistor có dòng Ic>90mA và chọn loại NPN để điều khiển mức ra của vi xử lý là 1 ta nên chọn C1815 có dòng Icmax= 150mA dễ mua và giá thành vừa phải
Thông số cơ bản như:
Dòng qua cực B,C: IBmaxPmA, ICmax0mA
Hệ số khuếch đại : Hfe0 khi Vce=6V, Ic0mA
Công suất tiêu tán cực C: PC@0W…
Diode: có rất nhiều loại diode như diode chỉnh lưu, diode schottky, diode ổn áp, … nhưng ở đây nhóm sử dụng diode chỉnh lưu và cụ thể là loại 1N4007 thông dụng và phổ biến trên thị trường
Các thông số cơ bản:
- Điện áp ngược tối đa: Vrmsp0V
- Công suất trên cực C: 400mW
- Ta hạn dòng qua led của opto và led xanh báo trạng thái bằng cách mắc thêm trở hạn dòng Với Vledopto=1.2V và Vledxanh= 2.2V Với dòng qua led(Iled) từ 10mA-20mA tổng Vled= 1.2V + 2.2V = 3.4V
10𝑚𝑎 = 160 vì dòng qua led (10ma-20ma) ta có thể chọn R110Ω
- Ta mắc transistor (C1815) để làm công tắc điều khiển relay: dẫn ở mức 1 và ngưng dẫn ở mức 0
- Vì để kích dẫn cho relay thì phải có dòng Ic ≥ 90mA
Ta chọn dòng Ic= Icmax= 150mA
- Điện trở R7 là điện trở kéo xuống để đảm bảo khi ở mức 0 thì không có dòng vào transistor nên ta chọn R12K
Hình 3 11: Sơ đồ nguyên lý mạch công suất
- Gồm 2 ngõ ra để điều khiển 2 thiết bị
- Ngõ ra của relay nối với domino để đóng cắt thiết bị sử dụng nguồn 220V/50HZ
- Khi ta kích mức 1 của Atmega328 có áp và dòng ngõ ra làm led trong opto sáng, opto dẫn kích transistor có dòng qua relay hút cuộn dây trong relay Relay đóng xuống có nguồn vào thiết bị ngoại vi làm thiết bị hoạt động
- Khi ta kích mức 0 của Atmega328 không có dòng và áp vào led opto không dẫn Thiết bị ngoại vi không có nguồn vào
Khối mạch nạp : truyền dẫn dữ liệu nối tiếp giữa máy tính với mạch điều khiển, hỗ trợ máy tính giao tiếp được với vi điều khiển thông qua chuẩn UART, giúp ta có thể giao tiếp truyền nhận dữ liệu và nạp chương trình cho vi điều khiển
Hiện nay trên thị trường có nhiều loại chip hỗ trợ chuyển USB sang TTL như FT232, CP2102, PL2303, CH340…Nhưng với yêu cầu về giá thành nhóm quyết định chọn CH340 với những ưu điểm của nó như dễ sử dụng, dễ mua và giá thành hợp lí Nhóm sử dụng cổng mini USB vì kích thước nhỏ gọn,dễ sử dụng
- Ta sử dụng thạch anh 12M theo khuyến cáo của nhà sản xuất.
- Sử dụng 2 transistor để chọn chế độ đóng cắt nạp chương trình vào ESP.Ở đây nhóm chọn C1815 vì giá thành rẻ và ổn định.
- Cổng nạp USB ta chọn cổng MiniUSB nhỏ gọn bền, giá thành rẻ.
- Dùng trở 10k để hạn dòng vào cực B của transistor, chọn tụ ổn áp cho nguồn, sử dụng thạch anh 12Mhz
Hình 3 14: Sơ đồ nguyên lý mạch nạp
- Muốn nạp được chương trình thì ta cần kéo chân GPIO0 xuống mức 0,vì vậy trên sơ đồ nguyên lí khi ta nhấn nạp thì ic hoạt động sẽ xuất tín hiệu kích cho
Sơ đồ toàn mạch
Giới thiệu
4.1.1 Phần mềm lập trình cho khối vi xử lý
Giới thiệu Được giới thiệu vào năm 2005, Những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên và giới chuyên nghiệp để tạo ra những thiết bị có khả năng tương tác với môi trường thông qua các cảm biến và các cơ cấu chấp hành Những ví dụ phổ biến cho những người yêu thích mới bắt đầu bao gồm các robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động Đi cùng với nó là một môi trường phát triển tích hợp (IDE) chạy trên các máy tính cá nhân thông thường và cho phép người dùng viết các chương trình cho Aduino bằng ngôn ngữ C hoặc C++
Môi trường phát triển tích hợp (IDE) của Arduino là một ứng dụng cross- platform (đa nền tảng) được viết bằng Java, và từ IDE này sẽ được sử dụng cho Ngôn ngữ lập trình xử lý (Processing programming language) và project Wiring Nó được thiết kế để dành cho những người mới tập làm quen với lĩnh vực phát triển phần mềm Nó bao gồm một chương trình code editor với các chức năng như đánh dấu cú pháp, tự động brace matching, và tự động canh lề, cũng như compile(biên dịch) và upload chương trình lên board chỉ với 1 cú nhấp chuột Một chương trình hoặc code viết cho Arduino được gọi là một sketch
Các chương trình Arduino được viết bằng C hoặc C++
Truy cập vào trang web: www.arduino.cc/en/Main/Software và tải về chương trình Arduino IDE
4.1.2 Phầm mềm lập trình cho khối camera
Giới thiệu Để có thể lập trình được trên raspberry pi 3 thì chúng ta phải cài hệ điều hành cho kit bằng thẻ nhớ gắn ngoài Tất cả các hệ điều hành này ta có thể download trực tiếp trên website chính thức tại địa chỉ : https://www.raspberrypi.org/downloads/
Một số hệ điều hành thông dụng cho Raspberry: Raspbian, Ubuntu Mate, Snappy Core Ubuntu, Windows 10 Iot core,…
Vì sử dụng trên hệ điều hành nên có nhiều phần mềm cũng như ứng dụng hộ trợ cho việc lập trình như Python, C#, C++, Java…
Nhóm chọn sử dụng hệ điều hành do nhà sản xuất cung cấp là Raspbian và lập trên nền tảng Python.
Lưu đồ
Lưu đồ chính cho ESP8266:
Bắt đầu Đăng nhập wifi set các biến giá trị về 0
Kiểm tra kết nối Firebase set các biến giá trị trên firebase
Nhận dữ liệu từ điện thoại Nhận dữ liệu từ
Dữ liệu đo nhiệt độ
Nhận dữ liệu từ ATMEGA Đ Đ Đ
Gửi trạng thái thiết bị và nhiệt độ lên điện thoại Đ
Dữ liệu trạng thái điều khiển Dữ liệu nhiệt độ Nhận dữ liệu từ điện thoại
Gửi dữ liệu điều khiển xuống ATMEGA Đ Đ Đ
Hình 4 2: Lưu đồ chính cho ESP8266
Sau khi cấp nguồn cho thiết bị ESP8266 sẽ bắt đầu tạo sever đăng nhập wifi thông qua lưu đồ con kết nối wifi Sau khi người dùng đăng nhập wifi thành công, tiến hành đưa tất cả các giá trị bằng 0, tiếp tới tiến hành kết nối với sever Fire Base để lưu trữ dữ liệu cũng như lấy các giá trị trên sever Bắt đầu kiểm tín hiệu điều khiển của điện thoại nếu là trạng thái điều khiển hoặc trạng thái do nhiệt độ thì tiến hành gửi xuống cho ATMEGA328 xử lí nếu không đúng thì tiến hành đọc trạng thái gửi qua UART từ ATMEGA328 để kiểm tra trạng thái của thiết bị gửi từ ATMEGA328 để đưa lên sever cập nhật trạng thái cho điện thoại
Lưu đồ kết nối wifi cho ESP8266:
Gửi yêu cầu kết nối đến wifi với mật khẩu được nhập vào
Kết nối đến wifi nhận được tắt web sever
Hoạt động ở chế độ bình thường
Hình 4 3: Lưu đồ kết nối wifi cho ESP8266
Sau khi cấp nguồn ESP khi kiểm tra chưa có kết nối sever thì tự động chuyển sang chế độ tự phát wifi tạo sever riêng có địa chỉ 192.168.4.1 người dùng tiến hành đăng nhập vào địa chỉ trên sau đó kết nối với mạng wifi.Sau khi kết nối được với mạng wifi ESP tự tắt chế độ phát wifi thay vào đó là sử dụng chế độ kết nối wifi Và hoạt động ở chế độ bình thương
Lưu đồ chính cho ATMEGA328:
Set trạng thái ban đầu, hiển thị lcd
Kiểm tra dữ liệu gửi từ ESP Đo nhiệt độ Kiểm tra nút
ESP và hiển thị trên lcd Đ
Gửi dữ liệu cho ESP và hiển thị trên lcd Đ S
Xuất trạng thái và hiển thị trên lcd Đ Đo nhiệt độ
Gửi dữ liệu cho ESP và hiển thị trên lcd Đ
Kết thúcHình 4 4: Lưu đồ chính cho ATMEGA328
Sau khi cấp nguồn các giá trị ban đầu bằng 0, sau đó bắt đầu hiển thị các giá trị nhiệt độ độ ẩm và trạng thái ban đầu của thiết bị, kiểm tra giá trị gửi xuống từ ESP nếu là giá trị do nhiệt độ, độ ẩm thì do và gửi lại lên cho ESP giá trị còn nếu là giá trị điều khiển thì điều khiển thiết bị và gửi lên lại giá trị cho ESP, sau đó cập nhật giá trị và hiển thị ra màn hình LCD Tiến hành kiểm tra nút nhấn nếu ESP không có tín hiệu gửi xuống và gửi lên ESP nếu có giá trị nút nhấn thay đổi
Lưu đồ con đo nhiệt độ:
Cập nhật nhiệt độ và độ ẩm
Hình 4 5: Lưu đồ con đo nhiệt độ
Giải thích lưu đồ: Đưa trạng thái timer của ATMEGA328 về 0 tiến hành cho timer chạy nếu timer bằng 2s cập nhật giá trị nhiệt độ và độ ẩm sau đó đưa timer về 0 tiến hành tiếp quá trình trên
Lưu đồ con nút nhấn:
Set trạng thái nút nhấn
Hình 4 6: Lưu đồ hàm con nút nhấn
Giải thích lưu đồ: Đưa các giá trị về 0, kiểm tra trạng thái nút nhấn nếu có nhấn nút thì đảo trạng thái hiện tại và xuất giá trị ngõ ra tương ứng sau đó gửi giá trị đó lên ESP để cập nhật cho điện thoại
Lưu đồ chính cho RASPBERRY PI 3:
Set camera và các biến giá trị
Kiểm tra kết nối camera
Báo trạng thái có kết nối thiết bị cho điện thoại Đ quay == 1
Gửi hình ảnh lên firebase
Hình 4 7: Lưu đồ chính kết nối camera
Set thông số camera trên raspberry pi 3 tiến hành kiểm tra kết nối với firebase sau đó báo trạng thái camera cho điện thoại nếu camera đã hoạt động tiến hành kiểm tra nếu điện thoại gửi giá trị chụp thì tiến hành chụp ảnh từ rasberry lên điện thoại còn nếu điện thoại gửi giá trị quay video thì tiến hành quay video từ raspberry sau đó đổi định dạng file video trên rasberry tiến hành gửi lên lại cho điện thoại.
Kết quả
Trong thời gian 3 tháng nhóm đã nghiên cứu và hoàn thiện sản phẩm và đạt được những mục tiêu như sau:
Nghiên cứu sâu hơn về vi điều khiển ATMEGA328 và các dòng tương tự…
Nghiên cứu sử dụng được kết nối được wifi từ ESP8266 và giao tiếp được với vi điều khiển và điện thoại
Tìm hiểu được các chuẩn truyền dữ liệu thông dụng hiện nay và các giao thức mạng để giao tiếp giữa điện thoại và vi điều khiển
Kết nối được camera để gửi hình ảnh cũng như video lên sever và đưa lên điện thoại
Tìm hiểu được thiết kế và sử dụng các linh kiện để hoàn thành mạch thực tế
Tìm hiểu và biết cách sử dụng Altium Designer, các phần mềm hỗ trợ lập trình cho vi điều khiển,…
Thiết kế trên phần mềm:
Hình 5 6: Mạch điều khiển thực tế
Giao diện điều khiển trên điện thoại:
Được chia làm 3 tab để dễ quản lí:
Tab đầu tiên: giao diện giám sát từ camera gồm 2 nút hiển thì như hình dưới khi nhấn hình camera ta sẽ chuyển sang giao diện chụp hình để chụp từ camera của raspberry khi nhấn vào hình quay video ta sẽ chuyển sang giao diện quay video trên rasberry khi có kết nối camera sẽ được báo trạng thái kết nối, mỗi video quay được có thời gian là 8s
Hình 5 8: Giao diện giám sát qua camera
Hình 5 9: Giao diện ảnh chụp từ camera
Hình 5 10: Giao điện quay video từ camera
Tab thứ 2 là giao diện điều khiển: giao diện điều khiển gồm 3 nút nhấn
2 nút nhấn kéo thả có nhiệm vụ điều khiển thiết bị và cũng như kiểm tra thiết bị khi không có kết nối nút còn lại có nhiệm vụ thay đổi wifi đăng nhập cho thiết bị bên dưới 2 hình ảnh bóng đèn để kiểm tra thiết bị dưới đã được bật hay tắt
Hình 5 11: Giao diện điều khiển thiết bị
Tab thứ 3 là giao diện hiển thị thông số đo được từ cảm biến: hiển thị các thông số đo được từ cảm biến, và nút nhấn nếu cần lấy nhiệt độ tại thời điểm hiện tại
Hình 5 12: Giao diện giám sát cảm biến.
Thực nghiệm
Kết quả thực nghiệm sau quá trình kiểm tra và test thử thiết bị sau vài ngày sử dụng:
Mạch thực tế vẫn còn sai số so với thiết kế ban đầu
Mạch chạy đúng với yêu cầu thiết kế ban đầu
Có thể điều khiển điện thoại hoặc điều khiển bằng tay khi không có kết nối internet của thiết bị hoặc điện thoại
Đưa được giá trị nhiệt độ, độ ẩm lên điện thoại để kiểm tra
Thay đổi được wifi nếu mất kết nối wifi trước đó mà không cần nạp lại chương trình
Theo dõi được hình ảnh thực tế qua camera của raspberry, thông qua điện thoại…
Mạch điều khiển ổn định được các thiết bị 220V có công suất nhỏ từ 40- 80W
Sau khi kết nối camera cũng như thiết bị điều khiển, ta thu thập được hình ảnh thực tế từ thiết bị
Hình 5 13: Kết nối thành công với camera
Hình 5 14: Chụp ảnh thành công từ camera
Hình 5 15: Quay video thành công từ camera
Hình 5 16: Giao diện kết nối wifi
Hình 5 17: Tìm wifi kết nối
Hình 5 18: Kết nối với thiết bị điều khiển
Hình 5 19: Thiết bị đã được điều khiển
Hình 5 20: Cập nhật nhiệt độ, độ ẩm từ mạch điều khiển
Hình 5 22: Mạch điều khiển đã kết nối
Tuy nhiên sau quá trình chạy thử nghiệm thì vẫn còn 1 số hạn chế như sau:
Phần cứng chưa tối ưu hoàn toàn Vẫn sai trong quá trình thiết kế
Công suất điều khiển vẫn còn hạn chế
Về khối camera chất lượng hiển thị hình ảnh vẫn chưa chi tiết do bị hạn chế số dữ liệu up lên firebase
Khối camera vẫn chưa tự kết nối lại mạng nếu Router bị reset
Khối camera còn khá đắt tiền và chưa tự thiết kế được
Thời gian bật tắt thiết bị còn lâu
Vẫn còn tình trạng mất trạng thái thiết bị.
Kết luận
Chương kết quả và thực nghiệm đã phản ánh sinh viên thực hiện được khoảng 85% so với mục tiêu đặt ra ở chương 1 Hệ thống hoạt động khá ổn định và có thể làm việc được trong một thời gian dài, nhóm đã tạo được sản phẩm để ứng dụng điều khiển cũng như giám sát được các thiết bị trong nhà, giao tiếp được các khối lại với nhau Tuy nhiên nhóm vẫn chưa thể tạo được một hệ thống ổn định do phần thiết kế tính toán và lúc thì công cũng như chương trình điều khiển còn nhiều sai sót
Trong quá trình làm và thực hiện đồ án đã rút ra được nhiều kinh nghiệm trong việc làm việc nhóm, phát triển, tìm hiểu,… để hoàn thiệt sản phẩm.
Hướng phát triển
Một số hướng để phát triển đề tài:
Hoàn thiện tích hợp camera trên mạch
Điều khiển được nhiều thiết bị hơn với công suất lớn hơn
Cải thiện tốc độ điều khiển và phản hồi cho thiết bị
Điều khiển thiết bị bằng trợ lý ảo
Có thể điều khiển qua Sim hoặc Bluetool ở khi mất kết nối mạng
[1] Tăng Quang Khải, “Báo cáo bài tập lớn lập tình nhúng cơ bản”, Trường Đại Học Công Nghiệp Hà Nội, 2014
[2] Nguyễn Văn Hiệp, Đinh Quang Hiệp, “Giáo trình lập trình Android cơ bản”, Trường Đại Học Quốc gia Tp Hồ Chí Minh, 2015
[3] Nguyễn Văn Hiệp, “Giáo trình lập trình Android trong ứng dụng điều khiển”, Trường Đại Học Sư Phạm Kĩ Thuật TP Hồ Chí Minh
[4] Trần Thu Hà, Trương Thị Bích Ngà, Nguyễn Thị Lưỡng, “Giáo trình điện tử cơ bản”, Tp Hồ Chí Minh: Đại học Quốc gia Tp HCM, 2013
[5] Willi Richert – Luis Pedro Coelho, “Building Machine Learning Systems with Python”
[6] Simon Monk, “Programming the Raspberry Pi Getting Stared with Python”,pp 100-120
[9] https://raspberrypi.vn/thu-thuat-raspberry-pi/su-dung-camera-tren-raspberry-pi-3-2736.pi.