Cảm biến siêu âm sẽ truyền dữ liệu cho vi điều khiển, sau đó dữ liệu sẽ được truyền lên khối module WiFi ESP8266 và cập nhật vị trí của thùng rác thông qua khối GPS để gửi lên trên khối
Trang 1HỆ THỐNG GIÁM SÁT TÌNH TRẠNG RÁC THẢI TRONG KHUÔN VIÊN
TRƯỜNG HỌC
Trang 2DANH MỤC CÁC TỪ VIẾT TẮT
1 GPS Global Positioning System
2 EEPROM Electronically Erasable Programmable Read-Only Memory
3 CPU Central Processing Unit
4 I/O Input/output
5 BODS Biological Oxygen Demand
6 AVR Automatic Volume Recognition
7 MSTR Massena Terminal Railroad Company
8 USART Universal Synchronous Asynchronous Receiver
Trang 3CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI1.1 Mục đích
Trong xã hội hiện nay, tình trạng rác thải đang trong tình trạng cảnh báo cao.Tốc độ dân số tăng nhanh, kéo theo lượng rác thải sinh hoạt ngày càng nhiều đanggây nên tình trạng quá tải cho các bãi rác ở các thành phố lớn Sau khi hết diện tíchchôn lấp, việc tìm giải pháp để xử lý rác thải trong thời gian tới vẫn còn là một bàitoán nan giải
Để thu gom rác thải trong các hẻm, quận, huyện trong thành phố phải huyđộng rất nhiều công nhân sử dụng các công cụ thô sơ vào tận sâu trong các hẻm,quận, huyện để vận chuyển ra ngoài đường
Đề tài này có tên là hệ thống giám sát tình trạng rác thải Ở đây tôi sử dụngcảm biến cảnh báo đó là cảm biến siêu âm, dùng để đo độ đầy của thùng rác Giámsát tình trạng và định vị thùng rác, tôi sử dụng vi điều khiển Atmega328P, dữ liệu sẽđược gửi lên trên web thông qua module WiFi để giám sát từ xa GPS sẽ được dùng
để định vị toạ độ của thùng rác thông qua bản đồ
1.2 Yêu cầu đề tài
Đề tài yêu cầu thiết kế một hệ thống giám sát tình trạng rác thải, có thể sửdụng PIC hay ATmega Linh kiện đo khoảng cách được phép sử dụng là cảm biếnsiêu âm hay cảm biến hồng ngoại Chúng ta sẽ xây dựng hệ thống giám sát tìnhtrạng rác thải trong khuôn viên trường, để liên tục theo dõi và thông báo tình trạngrác thải tại nhiều nơi và hiển thị thông số đó lên trên Web server Tuỳ vào tình trạngcủa thùng rác, chúng ta sẽ có một màu hiển thị khác nhau Ví dụ như: màu đỏ( thùng rác đã đầy, cần được dọn ngay), màu vàng (thùng rác gần đầy), và màu xanh
lá (thùng rác còn ít)
1.3 Phương pháp thực hiện
Đầu tiên chúng ta sẽ thiết lập sơ đồ khối hệ thống rồi đưa ra quy trình hoạtđộng,hiểu rõ về nguyên lý hoạt động Sau đó, chúng ta sẽ tìm hiểu và lựa chọn
Trang 4các linh kiện phù hợp, các bước lập trình để đưa ra những thuật toán phù hợp đểgiải quyết bài toán
Tôi sẽ chọn cảm biến siêu âm để đo độ đầy của thùng rác, vì đây là linh kiệnphổ biến và giá thành tương đối ổn Chúng ta có 2 Module có sử dụng Uartnhưng ở các chợ chuyên bán linh kiện như Nhật Tảo cũng không có những loạiPIC có thể sử dụng được 2 Uart, nên tôi sẽ chọn sử dụng Adruino, đặc biệt làATmega328P để sử dụng Vì đây là loại vi điều khiển phổ biến và phù hợp vớinhững yêu cầu của đề tài
Về việc hiển thị các thông số trên một Web server, tôi chọn dùngWampserver, tạo ra một máy tính ảo để hiển thị các giá trị của cảm biến gửi lên,
và giúp cho người dùng nhận biết được tình trạng của thùng rác hiện tại Và tôi
sẽ nhờ sự hỗ trợ của Google Map để định vị toạ độ của thùng rác thông quaModule GPS
Một hệ thống giám sát hệ thống rác thải tốn khá nhiều phí nên hiện tại tôi chỉ
có thể làm một mô hình hệ thống
Trang 5CHƯƠNG 2 THIẾT KẾ HỆ THỐNG2.1 Sơ đồ khối hệ thống
Hình 2-1: Sơ đồ khối hệ thống
Sơ đồ khối hệ thống giám sát đồ đầy của thùng rác sẽ được kết nối như bên trên Đầu tiên cấp nguồn cho tất cả các khối Cảm biến siêu âm sẽ truyền dữ liệu cho vi điều khiển, sau đó dữ liệu sẽ được truyền lên khối module WiFi ESP8266 và cập nhật vị trí của thùng rác thông qua khối GPS để gửi lên trên khối Web server, cho phép người dùng có thể giám sát thùng rác trực tiếp trên Web
1.1 Sơ đồ nguyên lý của hệ thống
Sensor
Web server
Khối định vị GPS Khối WiFi ESP8266
Trang 6Hình 2-2: Sơ đồ nguyên lý
Đầu tiên cảm biến sẽ lấy số liệu và được nối với ATmega328 để xử lý số liệu gửi lên Webserver thông qua Module WiFi esp8266 để giám sát Khi thấy thùngrác có báo hiệu đầy thì có thể biết được toạ độ của thùng rác đó ngay thông qua GPS
2.2 Chức năng của các khối
2.2.1 Sensor: Cảm biến siêu âm SRF05
Trang 7Hình 2-3: Cảm biến siêu âm SRF05
Module cảm biến siêu âm SRF05 dùng để đo khoảng cách từ vật bằng sóngsiêu âm SRF05 có 2 đầu là đầu thu và đầu phát, đo khoảng cách bằng cách một đầuphát sóng siêu âm đến vật và một đầu thu sóng siêu âm lại
Sử dụng bằng cách truyền 1 xung vào chân trigger của module, sau đó chờ 1xung trả về trên chân echo, độ dài của xung phản hồi tương ứng với thời gian củasóng siêu âm truyền trong không khí, từ đó tính ra được khoảng cách đến vật thểchắn
Nguyên lý hoạt động: để đo khoảng cách ta sẽ phát ra một xung từ chânTrig Sau đó cảm biến sẽ tạo ra một xung High từ chân Echo để thu lại xung vừaphát ra Khoảng cách đo được là thời gian từ khi phát một xung từ chân Trig chođến khi chân Echo thu được xung đó Cảm biên siêu âm SRF05 hoạt động theo haichế độ
Chế độ 1 - Trigger và Echo riêng: chế độ này sử dụng chân Trigger vàEcho, đây là những chế độ cơ bản của SRF04 Để sử dụng chế độ này chỉ cần khôngkích hoạt chân pin của SRF05 thì điện trở trong SRF05 sẽ kéo lên
Trang 82-4: Chế độ 1 của cảm biến SRF05
Chế độ 2 – Pin đơn cho cả Echo và Trigger: chế độ này sử dụng một chânpin duy nhất Echo, để điều khiển chân này hãy kết nối chân pin với đất Tín hiệu dộilại sẽ xuất hiện trên cùng một pin với tín hiệu Trigger SFR05 sẽ không tăng dòngEcho cho đến 700us cho đến khi tín hiệu Trigger kết thúc Và bạn sẽ có thời gian đểxoay chuyển dòng kích hoạt
Hình 2-5: Chế độ 2 của SRF05
Tốc độ trong không khí của âm thanh là 340 (m/s) tương đương với29,412 microSeconds/cm Đặt DC là thông số mà cảm biến đo được Khi đo đượcthông số giữa vật cản đến cảm biến ta sẽ tính theo công thức:
Khoảng cách= DC/2/29,412
Trang 92.2.2 Khối vi điều khiển: ATmega328P
Hình 2-6: ATmega328P
Atmega328P là một vi điều khiển đơn chip được tạo bởi Atmel trong gia đìnhmegaAVR Hoạt động hoàn toàn tĩnh, phần mã khởi động tuỳ chọn với bit khoá độclập, lập trình trong hệ thống bằng chương trình khởi động trên chip
Trang 10Bảng 2.1: Các thông số chính của Atmega328P
Sơ đồ chân của Atmega328P:
2TWC
1USART
1ADC
10-bitKênh ADC
88-Bit Timer/Counter
216-Bit Timer/Counter
1
Trang 11Hình 2-7: Sơ đồ chân của Atmega328P
bộ nhớ dữ liệu và không gian bộ nhớ chương trình Ngoài ra thiết bị có thêm tínhnăng EEPROM để lưu trữ dữ liệu Tất cả không gian bộ nhớ là tuyến tính vàthường xuyên
ATmega328P chứa một 1K bytes bộ nhớ ELEPROM dữ liệu Nó được tổchức dưới dạng dữ liệu riêng biệt không gian Trong đó các bytes đơn được ghi vàđọc ELEPROM có độ bền ít nhát 100.000 chu kỳ viết/xoá Quyền truy cập củaELEPROM và CPU đươc mô tả bằng cách chỉ định các thanh ghi địa chỉELEPROM, thanh dữ liệu ELEPROM và điều khiển ghi nhận ELEPROM
Để ngăn chặn việc ghi EEPROM không chủ ý, phải tuân thủ quy trình ghi
cụ thể Kiểm soát EEPROM để biết điều này Khi đọc EEPROM, CPU bị dừngtrong bốn chu kỳ xung nhịp trước lệnh thực thi Khi EEPROM được viết, CPU bịdừng trong hai chu kỳ xung nhịp trước khi tới lệnh thực thi
Bảng 2.2 Chế độ mode của EEPROM
Trang 12Trong khi đặt lại, tất cả thanh ghi I/O được đặt thành giá trị ban đầu củachúng và chương trình bắt đầu thực thi từ việc đặc lại vector Lệnh tự đặt lại vector
là lệnh nhảy tuyệt đối để xử lý thiết lập lại cho Nếu chương trình không bao giờkết hợp nguồn ngắt không được sử dụng và mã chương trình thông thường có thểđặt lại các vị trí Đây là trường hợp nếu thiết lập lại vector nằm trong ứng dụng khivector ngắt nằm trong phần khởi động hoặc ngược lại Các sơ đồ mạch trong phầntiếp theo được diễn lặp lại
Các cổng I/O của AVR ngay lập tức được đặt lại ngay về trạng thái ban đầukhi nguồn đặt lại khởi động Cái này không yêu cầu các nguồn hoạt động trở lại
Ngắt là phần được mô tả cụ thể về xử lý của linh kiện Để giải thích chung về
xử lý ngắt AVR, tham khảo về đặt lại và xử lý ngắt Mỗi ngắt chiếm hai từ chỉ dẫn
và đặt lại bởi cầu chỉ Bootrst và địa chỉ ngẳt
Bảng 2.3: Reset và ngắt Vector trong ATmega328P
Trang 13Khi đánh địa chỉ các thanh ghi I/O dưới dạng không gian dữ liệu bằng các lệnh LD và ST, phần bù được cung cấp phải là đã sử dụng Khi sử dụng các lệnh
cụ thể I/O và IN OUT, phần dẫn phải hướng đến một địa chỉ khác
Bit BOD phải được ghi vào ‘1’ để tắt BOD trong khi ngủ Viết vào bit BODS là được điều khiển bởi chuỗi thời gian và bit cho phép BODSE Để vô hiệu hoá BOD trong các chế độ ngủ liên quan, cả hai BODS và BODSE trước tiên phải đươc viết thành 1và BODSE phải được viết bằng không trong vòng bốn chu kỳ đồng hồ
Bit BODS hoạt động trong ba chu kỳ xung nhịp sau khi được đặt Một lệnh ngủ phải được thực thi trong khi BODS đang hoạt động để tắt BOD cho chế độngủ thực tế Bit BODS tự động xoá sau ba chu kỳ
Tất cả các chức năng AVR đều có chức năng đọc, sửa đổi, ghi khi được
sử dụng làm cổng I/O kỹ thuật số chung Điều này có nghĩa làm hướng của một chân cổng có thể thay đổi mà không thay đổi hướng của bất kỳ pin nào khác với hướng dẫn SBI và CBI Áp dụng tương tự khi thay ổ đĩa hoặc bật các điện trở kéo lên Mỗi bộ đệm đầu ra điều có đặc tính ổ đĩa đối xứng với khả năng chìm và nguồn cao Khả năng điều khiển PIN mạnh mẽ đủ khả năng để điều khiển màn hình LED trực tiếp Tất cả các chân có điện trở kéo lên đều có thể tự chọn một nguồn cung cấp bất biến
Trang 14Hình 2-8: Sơ
đồ tương đuơng của I/O
Khi chuyển đổi giữa ba trạng thái ({DDxn, PORTxn} = 0b00) và đầu racao ({DDxn, PORTxn} = 0b11), trạng thái trung gian với tính năng kéo lên đượckích hoạt {DDxn, PORTxn} = 0b01) hoặc đầu ra thấp ({DDxn, PORTxn} = 0b10)phải xảy ra Thông thường, trạng thái kích hoạt kéo lên là hoàn toàn có thể chấpnhận được, vì môi trường độ cao sẽ không nhận thấy sự khác biệt giữa trình điềukhiển cao mạnh mẽ và kéo lên Nếu đây là không phải vậy, bit PUD trong Thanhghi MCUCR có thể được đặt để vô hiệu hóa tất cả các pull-up trong tất cả các cổng.Chuyển đổi giữa đầu vào với kéo lên và đầu ra thấp tạo ra cùng một vấn đề Ngườidùng phải sử dụng hoặc trạng thái ba ({DDxn, PORTxn} = 0b00) hoặc trạng tháicao đầu ra ({DDxn, PORTxn} = 0b11) là một bước trung gian
Bảng 2-9: Cấu hình cổng PIN
Trang 15Bộ 8 bit Timer/Counter0 with PWM gồm có hai đơn vị so sánh đầu ra độclập, bộ đệm so sánh đầu ra so sánh các thanh ghi, xóa bộ đếm thời gian trên So sánh
so sánh (Tự động tải lại), trục trặc miễn phí, điều chỉnh độ rộng xung (PWM) đúngpha, thời gian biến đổi PWM, máy phát tần số, ba nguồn ngắt độc lập (TOV0,OCF0A và OCF0B)
Timer / Counter0 (TC0) là mô đun Timer / Counter 8 bit có mục đíchchung, với hai đầu ra độc lập so sánh các đơn vị, và hỗ trợ PWM Nó cho phép thờigian thực hiện chương trình chính xác (quản lý sự kiện) và tạo sóng
Sơ đồ khối đơn giản hóa của Timer / Counter 8 bit được hiển thị bêndưới Các thanh ghi I / O có thể truy cập CPU, bao gồm các bit I / O và chân I / O,được in đậm Thanh ghi I / O và vị trí bit dành riêng cho thiết bị là được liệt kêtrong Mô tả Đăng ký Để biết vị trí thực tế của các chân I / O, hãy tham khảo sơ đồchân TC0 được kích hoạt bằng cách ghi bit PRTIM0 trong Mức tối thiểu hóa mứctiêu thụ năng lượng của máy tính thành '0' TC0 được bật khi bit PRTIM0 trongThanh ghi giảm công suất (PRR.PRTIM0) được ghi vào '1'
Trong chế độ Xóa hẹn giờ trên chế độ So sánh hoặc CTC (WGM0 [2: 0]
= 0x2), Thanh ghi OCR0A được sử dụng để thao tác độ phân giải của bộ đếm: bộđếm bị xóa thành ZERO khi giá trị bộ đếm (TCNT0) khớp với OCR0A OCR0Axác định giá trị hàng đầu cho bộ đếm, do đó cũng là độ phân giải của nó Chế độnày cho phép kiểm soát tốt hơn tần số đầu ra so sánh phù hợp Nó cũng đơn giảnhóa việc đếm các sự kiện bên ngoài
Sơ đồ thời gian cho chế độ CTC được hiển thị bên dưới Giá trị bộ đếm(TCNT0) tăng cho đến khi so sánh khớp xảy ra giữa TCNT0 và OCR0A, và sau đó
bộ đếm (TCNT0) bị xóa
Hình 2-10: Sơ đồ thời gian, chế độ CTC
Timer / Counter là một thiết kế đồng bộ và do đó đồng hồ hẹn giờ (clkT0)được hiển thị dưới dạng đồng hồ cho phép tín hiệu trong các hình dưới đây Nếu
Trang 16phiên bản đã cho của TC0 hỗ trợ chế độ không đồng bộ, clkI / O nên được thay thếbằng đồng hồ dao động TC Các số liệu bao gồm thông tin về thời điểm cờ ngắtđược đặt Hình đầu tiên bên dưới minh họa thời gian dữ liệu cho hoạt động Timer /Counter cơ bản gần với giá trị MAX trong tất cả các chế độ khác ngoài PhaseCorrect chế độ PWM.
Hình 2-11: Bộ đếm thời gian, sơ đồ hẹn giờ
Bit trong phần này được viết ở dạng chung: n = 1 đại diện cho số Timer / Counter và x = A, B đại diện cho Đơn vị so sánh đầu ra A hoặc B
Tuy nhiên, khi sử dụng thanh ghi hoặc định nghĩa bit trong chương trình, phải sử dụng biểu mẫu chính xác, tức là, TCNT1 để truy cập giá trị bộ đếm Timer /
Counter1
Các định nghĩa sau đây được sử dụng trong suốt phần:Timer / Counter 16 bit cho phép thời gian thực hiện chương trình chính xác (quản lý sự kiện), đo thời gian tín hiệu
Bottom
Bộ đếm đạt tới BOTTOM khi nó trở thành số không (0x00 cho
bộ đếm 8 bit hoặc 0x0000 cho bộ đếm 16 bit)
Max
Bộ đếm đạt đến Mức tối đa khi trở thành 0xFF (số thập phân
255, cho bộ đếm 8 bit) hoặc 0xFFFF (số thập phân 65535, cho
bộ đếm 16 bit)
đếmtrình tự Giá trị TOP có thể được chỉ định là giá trị cố địnhMAX hoặc giá trị được lưu trữ trong Đăng ký OCR1A Việcchuyển nhượng phụ thuộc vào phương thức hoạt động
Trang 17Bảng 2-5: Mô tả của 16-bit Timer/Counter
Timer / Counter2 (TC2) là mục đích chung, kênh, mô-đun Timer / Counter
8 bit Sơ đồ khối đơn giản hóa của Timer / Counter 8 bit được hiển thị bên dưới Các thanh ghi I / O có thể truy cập CPU, bao gồm các bit I / O và chân I / O, được
in đậm Thanh ghi I / O và vị trí bit dành riêng cho thiết bị là được liệt kê trong Mô
tả Đăng ký sau Để biết vị trí thực tế của các chân I / O, hãy tham khảo sơ đồ chân
sơ đồ TC2 được bật khi bit PRTIM2 trong Thanh ghi giảm công suất
(PRR.PRTIM2) được ghi vào '1'
Bảng 2-6: Mô tả của 16-bit Timer/Counter2
Chế độ Slave: khi SPI được cấu hình là Slave, chân Slave Chọn (SS) luônđược nhập Khi SS được giữ ở mức thấp, SPI được kích hoạt và MISO trở thànhđầu ra nếu được người dùng cấu hình Tất cả các chân khác là đầu vào Khi SS đượcđiều khiển ở mức cao, tất cả các chân là đầu vào và SPI bị động, điều đó có nghĩa là
nó sẽ không nhận được dữ liệu đến Logic SPI sẽ được đặt lại sau khi chân SS đượcđiều khiển ở mức cao Chân SS rất hữu ích cho việc đồng bộ hóa gói / byte để giữcho bộ đếm bit tớ đồng bộ với máy phát điện đồng hồ chủ Khi chân SS được điềukhiển ở mức cao, nô lệ SPI sẽ ngay lập tức đặt lại gửi và nhận logic và thả bất kỳ dữliệu nào nhận được vào Thanh ghi Shift
Chế độ chính: khi SPI được cấu hình là Master (MSTR trong SPCR đượcđặt), người dùng có thể xác định hướng của chân SS Nếu SS được cấu hình làmđầu ra, chân là chân đầu ra chung không ảnh hưởng đến hệ thống SPI Thôngthường, pin sẽ lái pin SS của SPI Slave Nếu SS được cấu hình làm đầu vào, nó phảiđược giữ ở mức cao để đảm bảo hoạt động của SPI chính Nếu chân SS được điều
Trang 18khiển thấp bởi mạch ngoại vi khi SPI được cấu hình là Master với chân SS được xácđịnh là đầu vào,
Hệ thống SPI diễn giải điều này như một bậc thầy khác chọn SPI làm nô lệ và bắtđầu gửi dữ liệu tới nó
Để tránh tranh chấp, hệ thống SPI thực hiện các hành động sau: bit MSTRtrong SPCR bị xóa và hệ thống SPI trở thành Slave Là kết quả của SPI trở thànhSlave, các chân MOSI và SCK trở thành đầu vào Cờ SPIF trong SPSR được đặt vànếu ngắt SPI được bật và bit I trong SREG được đặt, thói quen ngắt sẽ được thựchiện Do đó, khi truyền SPI điều khiển ngắt được sử dụng trong chế độ Master, và
có khả năng tồn tại SS được điều khiển ở mức thấp, ngắt luôn phải kiểm tra xem bitMSTR vẫn được đặt Nếu bit MSTR đã được bị xóa bởi một lựa chọn nô lệ, nó phảiđược người dùng đặt để bật lại chế độ SPI Master
Chế độ dữ liệu: có bốn kết hợp pha SCK và cực tính đối với dữ liệu nốitiếp, được xác định bằng các bit điều khiển CPHA và CPOL Các bit dữ liệu đượcchuyển ra và chốt ở các cạnh đối diện của SCK tín hiệu, đảm bảo đủ thời gian chotín hiệu dữ liệu ổn định
Block Diagram: các thanh ghi I / O có thể truy cập CPU và các chân I / Ođược hiển thị in đậm Các các hộp nét đứt trong sơ đồ khối tách ba phần chính củaUSART (được liệt kê từ trên cùng): Máy phát đồng hồ, máy phát và máy thu Đăng
ký kiểm soát được chia sẻ bởi tất cả các đơn vị Đồng hồ logic thế hệ bao gồm logicđồng bộ hóa cho đầu vào đồng hồ bên ngoài được sử dụng bởi nô lệ đồng bộ hoạtđộng, và máy phát tốc độ baud Đồng hồ chuyển chỉ được sử dụng bởi đồng bộ chế
độ chuyển Bộ phát bao gồm một bộ đệm ghi đơn, thanh ghi shift nối tiếp, bộ tạochẵn lẻ, và control logic để xử lý các định dạng khung nối tiếp khác nhau Bộ đệmghi cho phép chuyển liên tục dữ liệu mà không có bất kỳ độ trễ giữa các khung Bộthu là phần phức tạp nhất của mô-đun USART do các đơn vị phục hồi dữ liệu vàđồng hồ của nó
Clock Generation tạo ra đồng hồ cơ sở cho máy phát và máy thu USART
hỗ trợ bốn chế độ hoạt động của đồng hồ: Bình thường không đồng bộ, Tốc độkhông đồng bộ kép, Master chế độ đồng bộ và Slave đồng bộ Chế độ USART Chọnbit 0 trong Điều khiển USART và thanh ghi trạng thái n C (UCSRnC.UMSELn0)chọn giữa hoạt động không đồng bộ và hoạt động đồng bộ Tốc độ gấp đôi (chỉ chế
độ không đồng bộ) được điều khiển bởi U2Xn được tìm thấy trong Thanh ghiUCSRnA Khi nào sử dụng chế độ đồng bộ
Trang 19USART Initialization phải được khởi tạo trước khi bất kỳ giao tiếp nào cóthể diễn ra Quá trình khởi tạo thông thường bao gồm cài đặt tốc độ truyền, cài đặtđịnh dạng khung và bật máy phát hoặc nhận tùy thuộc vào cách sử dụng Đối vớihoạt động USART điều khiển ngắt, cờ ngắt toàn cầu nên bị xóa (và ngắt toàn cầu bị
vô hiệu hóa) khi thực hiện khởi tạo Trước khi thực hiện khởi tạo lại với tốc độtruyền hoặc định dạng khung đã thay đổi, hãy chắc chắn rằng không có gì đang diễn
ra truyền trong khoảng thời gian các thanh ghi được thay đổi Cờ TXC có thể được
sử dụng để kiểm tra xem Máy phát đã hoàn thành tất cả các lần chuyển chưa và CờRXC có thể được sử dụng để kiểm tra xem không có dữ liệu chưa đọc trong bộ đệmnhận
Usart Transmitter có hai cờ biểu thị trạng thái của nó: Đăng ký dữ liệuUSART trống (UDRE) và truyền hoàn thành (TXC) Cả hai cờ có thể được sử dụng
để tạo ra các ngắt Cờ trống đăng ký dữ liệu (UDRE) cho biết liệu bộ đệm truyền cósẵn sàng nhận dữ liệu mới hay không Bit này được đặt khi bộ đệm truyền trống và
bị xóa khi bộ đệm truyền chứa dữ liệu truyền mà chưa được chuyển vào Đăng kýthay đổi Để tương thích với các thiết bị trong tương lai, luôn luôn viết bit này về 0khi viết thanh ghi UCSRnA Khi bit Kích hoạt ngắt đăng ký dữ liệu (UDRIE) trongUCSRnB được ghi vào '1' Đăng ký Ngắt trống sẽ được thực thi miễn là UDREđược đặt (miễn là các ngắt toàn cục là kích hoạt) UDRE bị xóa bằng cách viếtUDRn Khi truyền dữ liệu theo hướng gián đoạn được sử dụng, dữ liệu đăng kýThường trình ngắt phải ghi dữ liệu mới vào UDRn để xóa UDRE hoặc tắt
2.2.3 Khối Module WiFi
Module ESP8266, khi ở Mode AP, có thể kết nối với 5 Client cùng 1 lúc.Thiết bị di động điều khiển module thông qua WiFi của ESP8266:Khoảng cách kết nối khoảng 400m
Thiết bị di động và Module WiFi cùng kết nối với Router: Khoảng cáchkết nối tùy thuộc vào cường độ tín hiệu của router phát ra
Với khả năng kết nối mạng Wi-Fi hoàn chỉnh và khép kín, ESP8266EX
có thể thực hiện như một ứng dụng độc lập hoặc là nô lệ của MCU máy chủ Khinào ESP8266EX lưu trữ ứng dụng, nó nhanh chóng khởi động từ đèn flash Bộ nhớcache tốc độ cao tích hợp giúp tăng hiệu năng hệ thống và tối ưu hóa bộ nhớ hệthống
Ngoài ra, ESP8266 có thể được áp dụng cho bất kỳ thiết kế bộ điều khiển
vi mô nào dưới dạng bộ điều hợp Wi-Fi thông qua Giao diện SPI / SDIO hoặc I2C /UART ESP8266EX tích hợp các công tắc ăng-ten, balun RF, bộ khuếch đại công
Trang 20suất, thu nhiễu thấp bộ khuếch đại, bộ lọc và các mô-đun quản lý năng lượng Thiết
kế nhỏ gọn giảm thiểu PCB kích thước và yêu cầu mạch ngoài tối thiểu
Bên cạnh các chức năng Wi-Fi, ESP8266EX cũng tích hợp phiên bản nângcao của Bộ vi xử lý 32-bit Tensilica sườn L106 Diamond và SRAM trên chip Nó cóthể được giao thoa với các cảm biến bên ngoài và các thiết bị khác thông qua GPIO
Bộ phát triển phần mềm (SDK) cung cấp mã mẫu cho các ứng dụng khác nhau Nềntảng kết nối thông minh (ESCP) của Espressif Systems cho phép các tính năng tinh
vi bao gồm chuyển đổi nhanh giữa chế độ ngủ và thức dậy cho mục đích tiết kiệmnăng lượng, xu hướng vô tuyến thích ứng cho hoạt động năng lượng thấp, xử lý tínhiệu trước, thúc đẩy hủy bỏ và cơ chế đồng tồn tại radio cho di động chung,Bluetooth, DDR, LVDS, giảm thiểu nhiễu nhiễu LCD
Hình 2-12: Module WiFi ESP8266
Relay: có thể kết nối ở 5V/10A, 250V AC.10A Có thể đóng ngắt lên đến
100 lần Module được bảo vệ thông qua Opto, và có thời gian đáp ứng nhanh chóng
Đồng hồ tần số cao trên ESP8266EX được sử dụng để điều khiển cả bộtrộn truyền và nhận.Đồng hồ này được tạo ra từ bộ dao động tinh thể bên trong vàtinh thể bên ngoài Pha lê dải tần từ 26 MHz đến 52 MHz Hiệu chuẩn bên trong bộtạo dao động tinh thể đảm bảo rằng một loạt các tinh thể có thể được sử dụng, tuynhiên chất lượng của tinh thể vẫn là một yếu tố cần xem xét để có tiếng ồn pha hợp
lý và độ nhạy Wi-Fi tốt
Hình 2-13: Sơ đồ của ESP8266
Trang 21CPU: ESP8266EX tích hợp bộ điều khiển vi mô 32 bit Tensilica L106
(MCU) và công suất cực thấp RSIC 16 bit Tốc độ xung nhịp của CPU là 80 MHz
Nó cũng có thể đạt giá trị tối đa 160MHz Hệ thống vận hành thời gian thực (RTOS)được bật Hiện tại, chỉ có 20% MIPS có đã bị chiếm giữ bởi ngăn xếp Wi-Fi, phầncòn lại đều có thể được sử dụng cho ứng dụng người dùng lập trình và phát triển
Memory: ESP8266EX So-Fi SoC tích hợp bộ điều khiển bộ nhớ và
các đơn vị bộ nhớ bao gồm SRAM và ROM MCU có thể truy cập các đơn vị bộnhớ thông qua các giao diện iBus, dBus và AHB Tất cả các đơn vị bộ nhớ có thểđược truy cập theo yêu cầu, trong khi một trọng tài bộ nhớ sẽ quyết định chuỗi chạytheo thời gian khi những yêu cầu này được nhận bởi bộ xử lý
Đèn flash ngoài: ESP8266EX sử dụng flash SPI bên ngoài để lưu trữ
các chương trình người dùng và hỗ trợ lên đến 16 Mbyte dung lượng bộ nhớ về mặt
lý thuyết
WiFi: ESP8266EX triển khai TCP / IP, giao thức WLAN MAC
802.11 b / g / n / e / i đầy đủ Đặc điểm kỹ thuật trực tiếp Nó không chỉ hỗ trợ cáchoạt động của bộ dịch vụ cơ bản (BSS) trong chức năng điều khiển phân tán (DCF)nhưng cũng hoạt động nhóm P2P tuân thủ mới nhất Giao thức Wi-Fi P2P Các chứcnăng giao thức cấp thấp được xử lý tự động bởi ESP8266EX
2.2.4 Khối định vị GPS
Mô-đun SIM808 là mô-đun GSM / GPRS Quad-Band hoàn chỉnh kết hợpcông nghệ GPS để điều hướng vệ tinh Thiết kế nhỏ gọn tích hợp GPRS và GPStrong gói SMT sẽ tiết kiệm đáng kể cả thời gian và chi phí cho khách hàng để pháttriển các ứng dụng hỗ trợ GPS Với giao diện tiêu chuẩn công nghiệp và chức năng