ماژول CJMCU MAX30205
این ماژول دمای بدن را اندازهگیری کرده و خروجی آن به وسیله یک مبدل ADC تعبیه شده روی آن به دیجیتال تبدیل شده و با استفاده از پروتکل ارتباطی I2C ارسال میگردد. برای خواندن دمای حسگر یک رجیستر داخلی وجود دارد. در زمان خواندن از این رجیستر، تغییرات دما تا پایان خوانش نادیده گرفته میشود (تا زمانی که مقدار رجیستر کامل خوانده نشود، تغییرات دمایی جدید روی رجیستر ثبت نمیشود).
با توجه به جدول زیر و با استفاده از پایههای A0، A1 و A2 میتوانید آدرس این ماژول را تغییر دهید [1].
مشخصات الکتریکی ماژول:
ولتاژ کاری : 2.7 تا 3.3 ولت
جریان کاری : 600µA
ADC : 16 بیت
دقت اندازهگیری : 0.1 سلسیوس (در بازه دمایی 37 تا 39 درجه)
باس ارتباطی : I2C
نحوه اتصال به برد :
این ماژول از پروتکل ارتباطی I2C استفاده مینماید. برای اتصال به برد Wemos Lolin32 مطابق جدول زیر عمل میکنیم :
پایههای ماژول MAX30205 |
پایههای Wemos Lolin32 (OLED) |
SDA |
5 |
SCL |
4 |
VCC |
5 V |
GND |
GND |
در شکل زیر میتوانید نحوه اتصال به برد را مشاهده نمایید.
نصب کتابخانه MAX30205 :
از منوی Sketch ← Include Library ← Manage Libraries پنجره Library Manager را باز و عبارت MAX30205 را جستجو نمایید. سپس کتابخانه ProtoCentral را نصب نمایید.
کد تست خوانش دما :
از منوی File ← Examples ← ProtoCentral MAX30205 Body Temperature Sensor Library ← Basic_Temperature_Reading را انتخاب نمایید. در بخش Setup دستور Wire.begin (5,4) را اضافه نمایید (برای اطلاعات بیشتر به این پست مراجعه نمایید).
کد تست خوانش دما
//////////////////////////////////////////////////////////////////////////////////////////
//
// Arduino example for the MAX30205 body temperature sensor breakout board
//
// Author: Ashwin Whitchurch
// Copyright (c) 2020 ProtoCentral
//
// This software is licensed under the MIT License(http://opensource.org/licenses/MIT).
//
// THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
// NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// For information on how to use, visit https://github.com/protocentral/ProtoCentral_MAX30205
/////////////////////////////////////////////////////////////////////////////////////////
/*
This program Print temperature on terminal
Hardware Connections (Breakoutboard to Arduino):
Vin – 5V (3.3V is allowed)
GND – GND
SDA – A4 (or SDA)
SCL – A5 (or SCL)
*/
#include <Wire.h>
#include “Protocentral_MAX30205.h”
MAX30205 tempSensor;
void setup() {
Serial.begin(9600);
Wire.begin(5,4);
//scan for temperature in every 30 sec untill a sensor is found. Scan for both addresses 0x48 and 0x49
while(!tempSensor.scanAvailableSensors()){
Serial.println(“Couldn’t find the temperature sensor, please connect the sensor.” );
delay(30000);
}
tempSensor.begin(); // set continuos mode, active mode
}
void loop() {
float temp = tempSensor.getTemperature(); // read temperature for every 100ms
Serial.print(temp ,2);
Serial.println(“‘c” );
delay(1000);
}
حال با باز کردن پنجره Serial Monitor از منوی Tools میتوانید دمای خوانده شده از حسگر را مشاهده نمایید.
همانطور که مشاهده مینماید با استفاده از کلاس MAX30205 و متد ()getTemperature مقدار دمای حسگر را میخوانیم.
منابع
[1] “MAX30205 Human Body Temperature Sensor,” [Online]. Available: https://www.maximintegrated.com/en/products/interface/sensor-interface/MAX30205.html. [Accessed 19 04 2021].