Khảo sát tập lệnh AT Module Sim800L

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp và thuật toán điều khiển các thiết bị trong văn phòng (Trang 31)

Các lệnh AT viết tắt là Attention các hướng dẫn được sử dụng để điều khiển một module. Bắt đầu mỗi dòng lệnh là “AT” hay “at”. Vì vậy mà các lệnh trong module được gọi là lệnh AT.

Từ các lệnh “AT” này, người lập trình có thể làm một số bước sau: - Ban đầu đọc tin nhắn, viết tin nhắn và xóa tin nhắn.

- Thực hiện gửi tin nhắn SMS.

Kiểm tra toàn bộ chiều dài nội dung tin nhắn số lần gửi tin nhắn có thể thực hiện được trên một phút tương đối thấp, vào khoảng 6-10 tin nhắn trên một phút.

Trong khuôn khổ của luận văn này tôi chỉ tìm hiểu một số tập lệnh cơ bản phục vụ cho việc làm luận văn của mình.

Sau đây tôi xin giới thiệu một số tập lệnh cơ bản để cài đặt dùng cho dịch vụ SMS, bao gồm:

 Khởi tạo.

 Xử lý tin nhắn.

 Gửi tin nhắn đi. - Các thuật ngữ :

<CR> Carriage return (được dịch từ mã ASCII là $0D). : <LF> Line Feed (được dịch từ mã ASCII là 0x0A)

MT : Mobile Terminal – Thiết bị đầu cuối (ở đây là Module sim800L). TE : Terminal Equipment – Thiết bị đầu cuối (ở đây là máy tính giao tiếp được dùng để giao tiếp với Module Sim).

- Cú pháp lệnh AT

Lệnh khởi đầu : luôn là “AT” hoặc “at”

Lệnh kết thúc là : ký tự (trong Luận văn cần chuyển sang mã ASCII là $0D).

Thông thường sau mỗi lệnh AT là một đáp ứng, cấu trúc của đáp ứng này là : “<CR><LF><Respone><CR><LF>”

Cú pháp chính của lệnh AT có thể được phân chia thành 3 loại : cú pháp có cấu trúc cơ bản, cú pháp có cấu trúc tham số S, cú pháp có cấu trúc mở rộng.

Với các cú pháp nêu trên thì các lệnh có thể hoạt động ở nhiều chế độ khác nhau. Các chế độ này được thống kê ở bảng bên dưới như sau :

Bảng 2.4: Các lệnh AT của Sim800L

<Lệnh kiểm tra> AT+<x>=?

Thống kê lại các tham số trong câu lệnh và các giá trị có thể thiết lập cho tham số

<Lệnh đọc> AT+<x>? Đọc nội dung tin nhắn được gửi đến, kiểm tra giá trị tin nhắn về mặt dữ liệu. <Lệnh thiết lập> AT+<x>=<…..> Được sử dụng để thiết lập các giá trị

cho tham số.

<Lệnh thực thi> AT+<x> Thực thi nội dung tin nhắn được tiến hành bên trong của Module sim

Bảng 2.5: Tập lệnh AT điều khiển cuộc gọi

Lệnh Mô tả

AT+CLIP=1<CR><LF> Hiển thị thông tin cuộc gọi đến. ATD[số_điện_thoại];<CR><LF> Lệnh thực hiện cuộc gọi.

ATH<CR><LF> Lệnh thực hiện kết thúc cuộc gọi hoặc cúp máy khi có cuộc gọi đến.

ATA<CR><LF> Lệnh thực hiện chấp nhận khi có cuộc gọi đến.

Bảng 2.6: Tập lệnh AT điều kiển tin nhắn

Lệnh Mô tả

AT+CMGF=1<CR><LF>

Lệnh đưa SMS về chế độ Text, phải có lệnh này mới gửi tin nhắn dạng Text.

AT+CMGS=“Số_Điện_Thoại”<CR><LF> Đợi đến khi có kí tự ‘>’ được gửi về thì đánh nội dung tin nhắn.

Lệnh gửi tin nhắn.

AT+CMGR=x<CR><LF>

x là địa chỉ tin nhắn cần đọc. Đọc một tin nhắn vừa gửi đến, lệnh được trả về nội dung tin nhắn, thông tin người gửi, thời gian gửi. AT+CMGDA=“DEL ALL”<CR><LF>

Xóa toàn bộ tin nhắn trong các hộp thư.

AT+CNMI=2,2<CR><LF>

Hiển thị nội dung tin nhắn ngay khi có tin nhắn đến.

Các lệnh chung

Lệnh:AT<CR><LF>

Mô tả: Kiểm tra đáp ứng của Module Sim800L, nếu trả về OK thì Module hoạt động

Lệnh:ATE[x]<CR><LF>

Mô tả: Chế độ echo là chế độ phản hồi dữ liệu truyền đến của module Sim800L,

x = 1 bật chế độ echo, x = 0 tắt chế độ echo (ta nên tắt chế độ này khi giao tiếp với vi điều khiển)

Lệnh:AT+IPR=[baud rate]<CR><LF>

Lệnh:AT&W<CR><LF>

Mô tả : lưu lại các lệnh đã cài đặt

Các lệnh điều khiển cuộc gọi

Lệnh:AT+CLIP=1<CR><LF>

Mô tả: Hiển thị thông tin cuộc gọi đến

Lệnh:ATD[Số_điện_thoại];<CR><LF>

Mô tả: Lệnh thực hiện cuộc gọi

Lệnh :ATH<CR><LF>

Mô tả: Lệnh thực hiện kết thúc cuộc gọi , hoặc cúp máy khi có cuộc gọi đến

Cảm biến

Tín hiệu đầu vào Tín hiệu đầu ra

Tín hiệu điện Tín hiệu vật lý

Lệnh:ATA<CR><LF>

Mô tả: Lệnh thực hiện chấp nhận khi có cuộc gọi đến

Các lệnh điều khiển tin nhắn

Lệnh:AT+CMGF=1<CR><LF>

Mô tả: Lệnh đưa SMS về chế độ Text, phải có lệnh này mới gửi nhận tin nhắn dạng Text

Lệnh: AT+CMGS=”Số_điện _thoại”<CR><LF>

Đợi đến khi có ký tự ‘>’ được gửi về.

Gửi mã Ctrl+Z hay 0x1A để kết thúc nội dung và gửi tin nhắn

Mô tả: Lệnh gửi tin nhắn

Lệnh:AT+CMGR=x<CR><LF>

x là địa chỉ tin nhắn cần đọc

Mô tả: Đọc một nhắn vừa gửi đến, lệnh được trả về nội dung tin nhắn, thông tin người gửi, thời gian gửi

Lệnh:AT+CMGDA="DEL ALL"<CR><LF>

Mô tả: Xóa toàn bộ tin nhắn trong các hộp thư

Lệnh:AT+CNMI=2,2<CR><LF>

Mô tả: Hiển thị nội dung tin nhắn ngay khi có tin nhắn đến

Chú ý:sau mỗi lệnh chúng ta thường thấy <CR><LF> thực chất nó là hai mã điều khiển <CR> tương ứng 0x0D(hexa) ,<LF> tương ứng 0x0A(hexa). Nếu ta test trên máy tính sau mỗi lệnh ta chỉ cần ấn phím Enter.

2.4. Giới thiệu về cảm biến

2.4.1. Khái niệm

Cảm biến là thiết bị dùng để cảm nhận biến đổi các đại lượng vật lý thành tín hiệu điện và có thể xử lý được.

Hình 2.7: Sơ đồ hoạt động của cảm biến

2.4.2. Cảm biến ánh sáng

Cảm biến ánh sáng tạo ra tín hiệu đầu ra biểu thị cường độ ánh sáng bằng cách đo năng lượng bức xạ tồn tại trong một dải tần số rất hẹp, cơ bản gọi là “ánh sáng”, và có tần số từ phổ ánh sáng “hồng ngoại” đến phổ ánh sáng “nhìn thấy” đến phổ ánh sáng “cực tím”.

Hình 2.8: Cảm biến ánh sáng

2.4.3. Cảm biến BH1750

Cảm biến cường độ sáng là một loại cảm biến thuộc về cảm biến quang, hoạt động cảm nhận ánh sáng dựa vào thiết bị cảm biến. Cảm biến cường độ ánh sáng BH1750 được sử dụng để đo cường độ ánh sáng theo đơn vị lux, cảm biến có ADC nội và bộ tiền xử lý nên giá trị được trả ra là giá trị trực tiếp cường độ ánh sáng lux mà không phải qua bất kỳ xử lý hay tính toán nào thông qua giao tiếp I2C.

Hình 2.9: Module cảm biến cường độ ánh sáng BH1750

Thiết bị chuyển tương tự sang số (ADC)

Năng lượng bức xạ

Thông số kỹ thuật

- Dải đo: 1 – 65535 (Lux).

- Nguồn cung cấp: 3 VDC – 5 VDC. - Độ phân giải ADC: 16 bit.

- Sự ảnh hưởng của tia hồng ngoại rất nhỏ. - Đầu ra: I2C.

- Kích cỡ: 21x16x3.3mm.

Bảng 2.7: Điều khiển vận hành

Tham số Đại lượng đặc trưng MIN TYP MAX Đơn vị

Điện áp Vcc Vcc 2.4 3.0 5 V

Điện áp tham chiếu I2C Vdvi 1.65 - Vcc V

Ghép nối BH1750 với vi điểu khiển

Do BH1750 giao tiếp chuẩn I2C nên việc giao tiếp nối nó với vi điểu khiển khá đơn giản và theo datasheet đưa ra sơ đồ như sau:

Hình 2.10 : Chép nối BH1750 với Arduino Nano

BH1750 chỉ giao tiếp với vi điểu khiển với 2 đường truyền SCL và SDA nên do đó trên vi xử lý cần phải xác định chân nào trên vi xử lý có SCL và SDA để nối với BH1750.

Hình 2.11: Độ rọi – Kết quả đo lường

Chức năng các chân của module

- Chân VCC: chân cực dương.

- Chân GND: chân cực âm.

- Chân SCL và SDA: chân giao tiếp I2C.

Cách thức hoạt động

Hình 2.12: Sơ đồ khối module BH1750

Mô tả sơ đồ khối:

PD: hình ảnh diode với phản ứng mắt xấp xỉ con người.

 ADC: chuyển đổi AD cho tiếp nhận dữ liệu kỹ thuật 16 bit.

 Logic + giao diện I2C: Tính toán ánh sáng môi trường xung quanh và giao

diện BUS I2C.

 OSC: Máy dao động nội bộ (loại 320kHz).

Kiến trúc tập lệnh :

Bảng 2.8: Kiến trúc tập lệnh

Hướng dẫn Mã lệnh Chú thích

Tắt nguồn 0000_0000 Không có hoạt động

Bật nguồn 0000_0001 Chờ lệnh đo

Reset 0000_0111

Đặt lại giá trị thanh ghi dữ liệu.

Thiết lập lại lệnh là không thể chấp nhận được trong chế độ tắt nguồn.

Giải quyết chế độ cao

liên tục 0001_0000

Bắt đầu đo ở độ phân giải 1lux. Thời gian đo thường là 120ms. Giải quyết chế độ cao

liên tục 2 0001_0001

Bắt đầu đo ở độ phân giải 0.5lux. Thời gian đo thường là 120ms. Giải quyết chế độ

thấp liên tục 0001_0011

Bắt đầu đo ở độ phân giải 4lux. Thời gian đo thường là 16ms. Giải quyết chế độ ở 1

mức thời gian cao 0010_0000

Bắt đầu đo ở chế độ phân giải 1lux Thời gian đo thường là 120ms. Nó tự động cài đặt chế độ tắt nguồn sau khi đo. Giải quyết chế độ ở 1

mức thời gian cao 2 0010_0001

Bắt đầu đo ở chế độ phân giải 0.5lux Thời gian đo thường là 120ms.

Bảng 2.9: Giải thích chế độ đo lường

Chế độ đo Thời gian đo Độ phân giải

Giải quyết chế độ cao 2 Typ.120ms 0.5lux

Giải quyết chế độ cao Typ.120ms 1lux

Giải quyết chế độ thấp Typ.16ms 4lux

Một số ví dụ về độ rọi của ánh sáng:

 Vào buổi tối : 0.001 - 0.02 Lux

 Ánh trăng : 0.02 - 0.3 lux

 Trời nhiều mây trong nhà : 5 - 50 lux

 Trời nhiều mây ngoài trời : 50 - 500 lux

 Trời nắng trong nhà : 100 - 1000 lux

 Ánh sáng cần thiết để đọc sách: 50 - 60 lux

2.4.4. Bộ cảm biến nhiệt độ và độ ẩm không khí (module DHT22)

Hình 2.13: Cảm biến Nhiệt độ và Độ ẩm không khí

Cảm biến này đọc nhiệt độ và độ ẩm không khí bên trong văn phòng bằng một màng đối với nhiệt độ và một ẩm kế - là một bộ cảm biến đo độ ẩm không khí loại điện trở. Đầu đọc này đọc giá trị điện trở của bộ cảm biến đáp ứng với thay đổi độ ẩm. Các thay đổi được ghi chép bằng hai thiết bị này được gửi đến một hệ

Tín hiệu ra dạng số Nhiệt kế Thiết bị chuyển tương

tự sang số (ADC) Ẩm kế

thống ADC chung để chuyển đổi dạng dữ liệu dạng tương tự thành dạng kỹ thuật số để dễ dàng giải mã và dễ hiểu bằng máy chủ. Đối với hệ thống của tôi, bộ cảm biến DHT 22 được sử dụng là một bộ cảm biến phức hợp gồm một đầu ra tín hiệu kỹ thuật số lấy chuẩn của nhiệt độ và độ ẩm không khí. Bộ cảm biến này hoạt động trên đầu ra công suất thấp và tin cậy cao vì bộ cảm biến này có thể được vận hành trong nhiệt độ lên đến 50oC và độ ẩm lên đến 80% RH.

Bộ cảm biến DHT22 được sử dụng để đo lường nhiệt độ và độ ẩm không khí tại một vị trí nhất định, kích cỡ nhỏ, mức tiêu thụ điện thấp và khoảng cách truyền dữ liệu dài (20m). Tôi chọn bộ cảm biến này vì các ưu điểm như chất lượng tốt, sai số thấp, đáp ứng nhanh, khả năng chống nhiễu, chi phí thấp và các ưu điểm khác so với bộ cảm biến loại khác.

Hình 2.14: Sơ đồ chân DHT22

Bảng 2.10: Đặc tính kỹ thuật của bộ cảm biến DHT22

Model DHT22

Nguồn sử dụng 2-5V DC

Tín hiệu đầu ra tín hiệu số qua bus đơn

Yếu tố cảm biến Tụ polymer

Đo tốt ở độ ẩm độ ẩm 0-100%RH;với sai số 2-5%. Đo tốt ở nhiệt độ -40 to 80°C sai số ±0.5°C.

Tần số lấy mẫu tối đa 0.5Hz (2 giây 1 lần)

Đặc tính kỹ thuật vận hành

Điện áp công suất và điện áp công suất PIN là 3 - 5V DC. Khi cấp điện cho bộ cảm biến, không gửi bất kỳ hướng dẫn cho bộ cảm biến trong vòng một giây để truyền trạng thái ổn định. Một tụ điện 100nF có thể được bổ sung giữa VDD và GND để lọc sóng.

Dữ liệu thanh cái đơn truyền thông và tín hiệu được sử dụng để truyền thông giữa MCU và DHT22, có giá trị 5mS đối với truyền thông thời gian đơn lẻ. Dữ liệu gồm bộ phận tích phân và thập phân, sau đây là công thức đối với dữ liệu.

Đầu tiên, DHT22 gửi dữ bit dữ liệu cao hơn! DATA = dữ liệu RH tích phân 8 bit + dữ liệu RH thập phân 8 bit + dữ liệu T tích phân 8 bit + dữ liệu T thập phân 8 bit + tổng kiểm tra 8 bit. Nếu việc truyền dữ liệu là đúng, tổng kiểm tra phải là 8 bit cuối cùng của " dữ liệu RH tích phân 8 bit + dữ liệu RH thập phân 8 bit + dữ liệu T tích phân 8 bit + dữ liệu T thập phân 8 bit ".

Khi MCU gửi tín hiệu bắt đầu, DHT22 thay đổi từ chế độ tiêu thụ điện năng thấp sang chế độ chạy. Khi MCU hoàn thành gửi tín hiệu bắt đầu, DHT22 sẽ gửi tín hiệu phản hồi của dữ liệu 40 bit để phản ánh thông tin về độ ẩm và nhiệt độ tương đối cho MCU. Nếu không có tín hiệu bắt đầu từ MCU, DHT22 sẽ không đưa ra tín hiệu phản hồi cho MCU. Tín hiệu bắt đầu đối với dữ liệu phản hồi của một lần phản ánh thông tin về độ ẩm và nhiệt độ tương đối từ DHT22. DHT22 thay đổi thành chế độ tiêu thụ điện năng thấp dữ liệu được thu thập nếu DHT22 không nhận lại tín hiệu bắt đầu tư MCU.

2.4.5. Cảm biến tiệm cận hồng ngoại E18-D80NK

Cảm biến tiệm cận hồng ngoại E18-D80NK dùng ánh sáng hồng ngoại để xác định khoảng cách tới tiệm cận cho độ phản hồi nhanh và rất ít nhiễu do sử dụng mắt nhận và phát tia hồng ngoại theo tần số riêng biệt. Cảm biến có thể chỉnh khoảng cách báo mong muốn thông qua biến trở, ngõ ra cảm biến ở dạng cực thu hở nên cần thêm một trở treo lên nguồn ở chân tín hiệu khi sử dụng.

Thông số kỹ thuật:

 Khoảng cách phát hiện: 3 ~ 80cm.

 Có thể điều chỉnh khoảng cách qua biến trở.

 Dòng kích ngõ ra: 300mA.

 Ngõ ra dạng NPN cực thu hở giúp tùy biến được điện áp ngõ ra, trở treo lên áp bao nhiêu sẽ tạo thành điện áp ngõ ra bấy nhiêu.

 Chất liệu sản phẩm: nhựa.

 Có led hiển thị ngõ ra màu đỏ.

 Kích thước: 1.8cm (D) x 7.0cm (L).

Hình 2.15: Sơ đồ cảm biến tiệm cận hồng ngoại E18-D80NK

Sơ đồ chân:

1. Màu nâu: VCC, nguồn dương 5VDC. 2. Màu xanh dương: GND, nguồn âm 0VDC

3. Màu đen: Chân tín hiệu ngõ ra cực thu hở NPN, cần phải có trở kéo để tạo thành mức cao.

Lưu ý: Tín hiệu ra có dòng rất nhỏ nên không được kích trực tiếp vào relay (rơ le) sẽ gây cháy cảm biến, có thể tham khảo các module rơ le đã được thiết kế bảo vệ.

2.5. Giới thiệu về rơ le

Trước khi tiến hành mạch để điều khiển rơ le ta phải xem xét hai thông số quan trọng của rơ le. Thông số đầu tiên là điện áp khởi động, đây là điện áp cần thiết để bật rơ le và thay đổi tiếp xúc từ Com->NC to Com->NO. Rơ le có điện áp

khởi động 5V, nhưng ta cũng có thể tìm rơ le có điện áp 3V, 6V và thậm chí 12V; vì vậy chọn một rơ le dựa vào điện áp sẵn có. Thông số khác là điện áp phụ tải và dòng điện phụ tải, đây là điện áp hoặc dòng điện mà thiết bị đầu cuối NC, NO hoặc Com của rơ le có thể chịu được, trong trường hợp đối với DC này, điện áp và dòng điện tối đa là 12V và 1A. Đảm bảo phụ tải đang sử dụng nằm trong khoảng này.

Hình 2.16: Mạch nguyên lý của rơ le

Mạch trên là nguyên lý tối thiểu về vận hành rơ le. Vì rơ le có điện áp khởi động 5V thì chúng ta sử dụng một nguồn điện +12DC vào một đầu cuộn cảm và một đầu tiếp đất thông qua một công tắc. Công tắc này có thể từ một tranzito nhỏ đến một bộ vi điều khiển hoặc một bộ vi xử lý để có thể vận hành chuyển mạch. Chúng ta cũng có thể sử dụng nối diode qua cuộn cảm của rơ le, diode này được gọi là Diode quét ngược.

Mục đích của diode là bảo vệ công tắc không tăng vọt điện áp do cuộn cảm

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp và thuật toán điều khiển các thiết bị trong văn phòng (Trang 31)

Tải bản đầy đủ (PDF)

(76 trang)