- Thành phần bắt buộc
- Giao diện MLX90614 với Raspberry Pi
- Giao diện Camera Pi với Raspberry Pi
- Thiết lập Email SMTP với Raspberry Pi
- Mã Python cho Pi để đọc nhiệt độ từ MLX90614 và gửi email kèm hình ảnh
- Đo nhiệt độ và gửi thư cảnh báo với PI
Kể từ khi bùng phát corona, rất khó xác định những ai bị ảnh hưởng bởi virus hay không. Để giải quyết vấn đề này, người ta thường sử dụng các thiết bị đo nhiệt độ để đo nhiệt độ cơ thể. Các thiết bị này có cảm biến nhiệt độ IR không tiếp xúc có thể đo nhiệt độ cơ thể mà không cần tiếp xúc vật lý.
Có rất nhiều súng đo nhiệt độ có sẵn trên thị trường, nhưng không có loại nào đưa ra cảnh báo hoặc thông báo qua email cho cơ quan cấp cao hơn để có hành động thích hợp khi nhiệt độ vượt quá một giới hạn cụ thể. Trong dự án này, chúng tôi sẽ giao diện một cảm biến nhiệt độ IR và gửi cảnh báo qua email với hình ảnh của người nếu nhiệt độ của bất kỳ người cụ thể nào vượt quá giá trị cài đặt.
Trong thế giới ngày nay, Internet of Things đang cách mạng hóa cuộc sống của chúng ta bằng cách phát triển một số hệ thống có thể được giám sát và điều khiển từ xa. Trong dự án này, chúng tôi sẽ tận dụng sức mạnh của IoT và chúng tôi sẽ xây dựng một thiết bị Giám sát nhiệt độ với cảnh báo qua Email sử dụng Raspberry Pi, MLX90614 và PiCamera.
Trước đây chúng tôi cũng đã từng chế tạo các loại nhiệt kế tương tự khác để đo nhiệt độ cơ thể, bạn có thể tìm thấy chúng tại đây.
- Nhiệt kế kỹ thuật số dựa trên Arduino sử dụng MAX30205
- Kiểm tra nhiệt độ cơ thể không tiếp xúc bằng RFID và Arduino với MLX90614
- Súng nhiệt kế hồng ngoại không tiếp xúc sử dụng Arduino
- Nhiệt kế không tiếp xúc treo tường sử dụng Arduino
- Nhiệt kế thông minh sử dụng Arduino với ứng dụng Android
Thành phần bắt buộc
Ở đây chúng tôi đang sử dụng hệ điều hành Raspbian Raspberry Pi 3. Tất cả các yêu cầu cơ bản về Phần cứng và Phần mềm đã được thảo luận trước đây, bạn có thể tra cứu nó trong phần Giới thiệu Raspberry Pi và Nhấp nháy đèn LED Raspberry PI để bắt đầu, ngoài những điều chúng tôi cần:
- Raspberry Pi 3 (bất kỳ phiên bản nào cũng được).
- Máy ảnh Pi.
- MLX90614 - Cảm biến nhiệt độ hồng ngoại.
- Kết nối dây.
- Bảng mạch.
- Nguồn điện (5V, 2A / 3A)
Dự án này đơn giản nếu chúng ta chia dự án thành nhiều phần.
- Hiểu & Giao tiếp MLX90614 với Raspberry pi.
- Bắt đầu với Pi Camera.
- Thiết lập Email SMTP với Raspberry pi.
- Phát triển và hiểu mã cuối cùng.
Raspberry Pi: Raspberry Pi là một máy tính cỡ thẻ tín dụng được thiết kế cho mục đích giáo dục. Do giá cả và các thông số kỹ thuật đáng kinh ngạc như wifi tích hợp, Bluetooth và tiêu đề GPIO có thể lập trình và số lượng các tùy chọn có thể có để tạo ứng dụng, nó đã được các nhà phát triển và những người yêu thích thiết bị điện tử áp dụng. Bạn có thể tra cứu nó trong phần Giới thiệu Raspberry Pi và Đèn LED nhấp nháy Raspberry PI để bắt đầu quá trình khởi động.
Cảm biến nhiệt độ hồng ngoại MLX90614: Có rất nhiều cảm biến có sẵn trên thị trường có thể cung cấp cho chúng ta nhiệt độ và độ ẩm. Điều làm cho cảm biến này khác với tất cả các cảm biến khác là nó có thể cung cấp cho chúng ta nhiệt độ vật thể và các cảm biến khác cung cấp nhiệt độ môi trường xung quanh. Chúng tôi đã sử dụng rộng rãi Cảm biến DHT11 và LM35 cho nhiều ứng dụng cần đo độ ẩm hoặc nhiệt độ khí quyển.
Nhưng ở đây để chế tạo súng đo nhiệt độ không cần tiếp xúc vật lý và có thể đo nhiệt độ vật thể thay vì nhiệt độ môi trường, chúng tôi sử dụng MLX90614 dựa trên IR. Để tìm hiểu thêm về mạch cảm biến Hồng ngoại và IR, hãy theo liên kết.
Cảm biến MLX90614 được sản xuất bởi Melexis Microelectronics Integrated systems, nó hoạt động trên nguyên lý của cảm biến nhiệt hồng ngoại dùng để đo nhiệt độ. Các cảm biến này bao gồm hai đơn vị được nhúng bên trong để cung cấp đầu ra nhiệt độ. Thiết bị đầu tiên là thiết bị cảm biến có đầu dò hồng ngoại, tiếp theo là thiết bị thứ hai thực hiện tính toán dữ liệu với xử lý tín hiệu kỹ thuật số (DSP). Cảm biến này hoạt động dựa trên định luật Stefan-Boltzmann giải thích sức mạnh do vật đen tỏa ra theo nhiệt độ của nó. Nói một cách dễ hiểu, bất kỳ vật thể nào cũng phát ra năng lượng IR và cường độ của năng lượng đó sẽ tỷ lệ thuận với nhiệt độ của vật thể đó. Cảm biến MLX90614 chuyển đổi giá trị tính toán thành ADC 17 bitvà có thể được truy cập bằng giao thức truyền thông I2C. Các cảm biến này đo nhiệt độ môi trường cũng như nhiệt độ vật thể với hiệu chuẩn độ phân giải 0,02 ° C. Để biết thêm về các tính năng của cảm biến MLX90614, hãy tham khảo Biểu dữ liệu MLX90614.
Các tính năng của MLX90614:
- Điện áp hoạt động: 3.6V đến 5V
- Phạm vi nhiệt độ môi trường: -40 ° C đến 125 ° C
- Phạm vi nhiệt độ đối tượng: -70 ° C đến -382,2 ° C
- Độ phân giải / Hiệu chuẩn: 0,02 ° C
- ADC 17 bit.
- Giao tiếp I2C.
Giao diện MLX90614 với Raspberry Pi
Đầu tiên, chúng tôi sẽ tải xuống thư viện và các gói cần thiết để giao diện thành công MLX90614.
Bước 1: Bật I2C từ cài đặt Raspberry Pi.
Gõ sudo raspi-config và sau đó đi đến lựa chọn interfacing.
Chuyển đến tùy chọn I2C và kích hoạt nó.
Bước 2: Tải xuống gói / thư viện của MLX90614 bằng cách truy cập, sau đó nhấp chuột phải và sao chép địa chỉ liên kết.
Đi tới thiết bị đầu cuối RPI và gõ wget và dán liên kết được sao chép như bên dưới.
Bỏ qua
Nó sẽ tải xuống thư viện ở tên tệp zip 'PyMLX90614-0.0.3.tar.gz' . sau đó giải nén thư mục có phần mở rộng là tên tệp tar -xf hoặc sử dụng lệnh dưới đây để thực hiện tương tự.
tar -xf PyMLX90614-0.0.3.tar.gz
Sau đó, chúng ta cần cài đặt một số gói bắt buộc bằng các lệnh dưới đây.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-tools
Sau đó, chuyển đến thư mục đã giải nén bằng cd PyMLX90614-0.0.3 / và chạy lệnh.
sudo python setup.py cài đặt
Khi bạn đã thực hiện xong các bước, chỉ cần giao tiếp cảm biến MLX90614 với Raspberry pi bằng cách sử dụng mạch bên dưới. Mạch Raspberry Pi MLX90614 dưới đây được thiết kế bằng cách sử dụng fritzing.
Nếu các kết nối và cài đặt được thực hiện đúng cách, chúng ta có thể kiểm tra xem chúng ta có nhận được giá trị địa chỉ cảm biến trên bus I2C hay không bằng cách sử dụng lệnh i2cdetect -y 1 .
Nếu mọi thứ hoạt động như mong đợi, chúng ta có thể thấy đầu ra bên dưới trên thiết bị đầu cuối của mình.
0x5A đại diện cho địa chỉ của cảm biến như được đề cập trong biểu dữ liệu. Đoạn mã biểu dữ liệu hiển thị giống nhau được đưa ra bên dưới.
Bây giờ, chúng ta sẽ chạy tạo một tên tệp mới mlxread.py và viết một chương trình mẫu để kiểm tra dữ liệu từ cảm biến. Mã cho cùng một được đưa ra dưới đây.
từ smbus2 nhập SMBus từ mlx90614 nhập MLX90614 bus = SMBus (1) sensor = MLX90614 (bus, address = 0x5A) print "Ambient Temperature:", sensor.get_ambient () print "Object Temperature:", sensor.get_object_1 () bus. đóng()
Sau khi tệp được tạo, chúng tôi sẽ chạy nó với phần mở rộng python là python mlxread.py. Đầu ra tôi nhận được hiển thị bên dưới. Tôi đã chạy chương trình nhiều lần để kiểm tra xem các giá trị có thay đổi khi tôi di chuyển bàn tay của mình trên nó hay không.
Woah, chúng tôi đã giao tiếp thành công MLX90614 với Raspberry Pi của chúng tôi như bạn có thể xác nhận từ hình ảnh trên.
Giao diện Camera Pi với Raspberry Pi
Bước 1: Bật Máy ảnh từ cài đặt Raspberry Pi.
Gõ sudo raspi-config và sau đó đi đến lựa chọn interfacing.
Đi tới Máy ảnh và bật máy ảnh.
Bây giờ, kết nối mô-đun máy ảnh như hình dưới đây.
Bước 2: Để kiểm tra xem máy ảnh có được kết nối đúng cách hay không, chúng tôi chụp ảnh kiểm tra và lưu ảnh đó vào Desktop (chúng tôi đang sử dụng phiên bản HĐH Raspbian đầy đủ GUI)
raspistill -o Desktop / image.jpg
Thao tác này sẽ cho phép máy ảnh của bạn nhấp vào ảnh có tên và lưu trữ ảnh đó trên Màn hình của bạn.
Thiết lập Email SMTP với Raspberry Pi
Trong phần này, chúng ta sẽ hiểu cách chúng ta có thể đặt tài khoản GMAIL của mình để gửi thư cảnh báo khi nhiệt độ vượt quá giá trị cài đặt được xác định trước.
SMTP là một Giao thức Truyền Thư Đơn giản, là một giao thức lớp ứng dụng chịu trách nhiệm về dịch vụ email sử dụng TCP / IP. Nó cung cấp khả năng gửi và nhận tin nhắn e-mail và được quản lý bởi Lực lượng Đặc nhiệm Kỹ thuật Internet (IETF).
Hướng dẫn này chỉ hoạt động với tài khoản GMAIL và để tránh mọi lỗi có thể xảy ra, bạn nên sử dụng tài khoản Gmail mới nếu sử dụng tài khoản Gmail mới.
Theo mặc định, Google không cho phép người dùng gửi email bằng tập lệnh python. Để làm cho điều này hoạt động, chúng tôi phải bật một số ứng dụng kém an toàn hơn bằng cách chuyển đến cài đặt tài khoản.
Bước 1: Chuyển đến góc bên phải và nhấp vào Quản lý tài khoản Google của bạn.
Bước 2: Nhấp vào Bảo mật và cuộn xuống “Quyền truy cập ứng dụng kém an toàn hơn”.
Bước 3: Bật ứng dụng kém an toàn hơn.
Bước 4: Lặp lại với id email khác để gửi / nhận email từ tập lệnh python.
Bước 5: Tải xuống các gói yêu cầu.
sudo apt-get install ssmtp sudo apt-get install mailutils
Nếu bạn gặp lỗi khi chạy lệnh bằng cách sao chép-dán, thì hãy nhập lệnh theo cách thủ công.
Bước 6: Sau khi cài đặt xong tất cả các thư viện, chúng ta cần thực hiện các thay đổi trong tệp ssmtp.conf , nơi chúng ta phải nhập chi tiết email của người gửi
Tới sudo nano /etc/ssmtp/ssmtp.conf
Cuộn xuống cuối và dán cái này, mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UseSTARTTLS = YES UseTLS = YES
Tôi cũng đã chia sẻ ảnh chụp màn hình các thiết bị đầu cuối của mình để bạn tham khảo.
Tôi chỉ sử dụng một breadboard để tạo kết nối, thiết lập phần cứng của tôi trông giống như thiết lập của tôi khi MLX90614 và máy ảnh được kết nối.
Mã Python cho Pi để đọc nhiệt độ từ MLX90614 và gửi email kèm hình ảnh
Chương trình python thực hiện tất cả các thao tác cần thiết để đọc dữ liệu cảm biến, so sánh nó với giá trị ngưỡng, ủy quyền email, sau đó gửi email có đính kèm hình ảnh. Lúc đầu, chúng tôi sẽ yêu cầu khai báo thư viện, người gửi và người nhận email. Email có thể được gửi bằng smtplib, nhưng chúng tôi chỉ muốn email được tổ chức với chủ đề, nội dung và tệp đính kèm khác, điều này được thực hiện với sự trợ giúp của Tiện ích mở rộng thư Internet đa năng (MIME). Bạn có thể tìm thấy mã hoàn chỉnh ở cuối trang này.
nhập RPi.GPIO dưới dạng gpio nhập thời gian nhập picamera nhập smtplib từ email.MIMEMultipart nhập MIMEMultipart từ email.MIMEText nhập MIMEText từ email.MIMEBase nhập MIMEBase từ bộ mã hóa nhập email từ email.mime.image nhập MIMEImage từ smbus2 nhập SMBus từ mlx90614 nhập MLX90614
Sau đó, chúng tôi xác định địa chỉ email người gửi, địa chỉ email người nhận, chủ đề của email, nội dung và thư đính kèm.
fromaddr = "[email protected]" # thay đổi địa chỉ email cho phù hợp cócdr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail =adsdr mail = "Giá trị nhiệt độ vượt quá cảnh báo" body = "Vui lòng tìm tài liệu đính kèm hình ảnh "
Sau đó, chúng tôi tạo một hàm mà chúng tôi có thể gửi E-mail.
def sendMail (data): mail.attach (MIMEText (body, 'pure')) print data dat = '% s.jpg'% data print dat attachment = open (dat, 'rb') image = MIMEImage (attachment.read ()) attachment.close () mail.attach (hình ảnh) server = smtplib.SMTP ('smtp.gmail.com', 587) server.starttls () server.login (fromaddr, "test12345 @") text = mail. as_string () server.sendmail (fromaddr,adsdr, text) server.quit ()
Sau đó, chúng tôi tạo một chức năng để chụp ảnh được gửi qua email và cũng lưu trữ hình ảnh với dữ liệu và thời gian.
def capture_image (): data = time.strftime ("% d_% b_% Y-% H:% M:% S") camera.start_preview () time.sleep (5) print data camera.capture ('% s. jpg '% data) camera.stop_preview () time.sleep (1) sendMail (dữ liệu)
Sau đó, chúng tôi thực hiện một số cài đặt với PiCamera.
camera = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
Và cuối cùng, chúng ta có một vòng lặp while (1) sẽ chạy vô hạn. Nó sẽ đọc dữ liệu từ cảm biến nhiệt độ MLX90614 và nếu nhiệt độ vượt quá giá trị cài đặt, thì hàm capture_image () được gọi, sau đó gọi hàm sendMail (dữ liệu) để gửi ảnh chụp qua email.
Đo nhiệt độ và gửi thư cảnh báo với PI
Khi phần cứng và phần mềm đã sẵn sàng, chỉ cần chạy mã python (cung cấp bên dưới) trên pi của bạn. Nó sẽ in giá trị nhiệt độ đọc được từ cảm biến như hình bên dưới.
Nếu nhiệt độ của vật thể vượt quá nhiệt độ ngưỡng, thì chương trình python của chúng tôi sẽ lấy hình ảnh từ máy ảnh, lưu nó trên raspberry pi và cũng có thể chia sẻ nó qua E-mail. Dưới đây là một E-mail mẫu được gửi từ raspberry Pi.
Hoạt động hoàn chỉnh của dự án cũng có thể được tìm thấy trong video được liên kết bên dưới. Hy vọng bạn thích bài viết, nếu bạn có bất kỳ câu hỏi nào, vui lòng để lại trong phần bình luận bên dưới hoặc bạn cũng có thể sử dụng diễn đàn của chúng tôi để gửi câu hỏi của bạn và liên hệ với cộng đồng.