આર્ડુઇનો કોડ અને આઓસોંગ AM2320 ડિજિટલ તાપમાન અને ભેજ સેન્સર માટેનો વિડિઓ
આ ટ્યુટોરિયલમાં, આપણે Aosong AM2320 ડિજિટલ તાપમાન અને ભેજ સેન્સરને Arduino સાથે કેવી રીતે ઉપયોગ કરવું તે શોધીશું. આ સેન્સર I2C પર સંચાર કરે છે અને આપણને તાપમાન સેલ્સિયસ અથવા ફેરનહીટમાં અને ભેજ ટકાવારીમાં વાંચવાની મંજૂરી આપે છે. આ ટ્યુટોરિયલના અંત સુધીમાં, તમે એક સરળ પ્રોજેક્ટ બનાવી શકશો જે આ રીડિંગ્સને સીરિયલ મોનિટર પર દર્શાવે છે.

AM2320 સેન્સર કોમ્પેક્ટ છે અને તાપમાન અને ભેજ બંને માટે વિશ્વસનીય ડેટા પ્રદાન કરે છે. તેમાં તાપમાન માટે 0.1°C નું રિઝોલ્યુશન અને 0-99% ની ભેજ શ્રેણી છે. સેટઅપ પ્રક્રિયામાં સેન્સરને Arduino સાથે વાયરિંગ કરવું અને સેન્સર મૂલ્યો વાંચવા અને દર્શાવવા માટે કોડની થોડી લીટીઓ લખવાનો સમાવેશ થાય છે. આ વિડિયો ટ્યુટોરિયલ વાયરિંગ અને કોડિંગ ઉદાહરણો સહિત પગલું-દર-પગલાં માર્ગદર્શિકા પ્રદાન કરે છે (વિડિયોમાં 00:00 પર).
હાર્ડવેર સમજાવ્યું
આ પ્રોજેક્ટનો મુખ્ય ઘટક Aosong AM2320 સેન્સર છે. તે I2C સંચારનો ઉપયોગ કરીને કાર્ય કરે છે, જે કનેક્શન પ્રક્રિયાને સરળ બનાવે છે કારણ કે તેને પાવર અને ગ્રાઉન્ડ સાથે ફક્ત બે ડેટા લાઇન (SDA અને SCL) ની જરૂર પડે છે. સેન્સર -40°C થી +80°C ની રેન્જમાં ±0.5°C ની ચોકસાઈ સાથે તાપમાન અને સમાન ચોકસાઈ સાથે 0% થી 99% સુધી ભેજ માપે છે. સેન્સર ખૂબ જ ઓછી શક્તિ માટે ડિઝાઇન કરવામાં આવ્યું છે, જે તેને બેટરી-સંચાલિત ઉપકરણો માટે યોગ્ય બનાવે છે.
વધુમાં, AM2320 મોડ્યુલમાં પુલ-અપ રેઝિસ્ટર શામેલ છે જે I2C સંચાર માટે જરૂરી છે, જે SDA અને SCL લાઇન પર સિગ્નલોને સ્થિર કરવામાં મદદ કરે છે. આ સુવિધા વાયરિંગ પ્રક્રિયાને સરળ બનાવે છે, કારણ કે તમારે બાહ્ય પુલ-અપ રેઝિસ્ટર ઉમેરવાની જરૂર રહેશે નહીં.
ડેટાશીટ વિગતો
| ઉત્પાદક | Aosong |
|---|---|
| ભાગ નંબર | AM2320 |
| લોજિક/IO વોલ્ટેજ | 3.1 થી 5.5 V |
| સપ્લાય વોલ્ટેજ | 3.1 થી 5.5 V |
| તાપમાન શ્રેણી | -40 થી +80 °C |
| ભેજ શ્રેણી | 0 થી 99 % |
| રિઝોલ્યુશન (તાપમાન) | 0.1 °C |
| રિઝોલ્યુશન (ભેજ) | 0.1 % |
| ચોકસાઈ (તાપમાન) | ±0.5 °C |
| ચોકસાઈ (ભેજ) | ±3 % |
| પેકેજ | મોડ્યુલ |
- યોગ્ય વોલ્ટેજ સપ્લાય (3.1 થી 5.5 V) સુનિશ્ચિત કરો.
- SDA અને SCL લાઇન માટે પુલ-અપ રેઝિસ્ટર (સામાન્ય રીતે 4.7 kΩ) નો ઉપયોગ કરો.
- નુકસાન ટાળવા માટે તાપમાન શ્રેણી -40°C થી +80°C ની અંદર રાખો.
- ભેજ રીડિંગ્સ 0% થી 99% શ્રેણીમાં ચોક્કસ છે.
- રીડિંગ્સ દરમિયાન ભૂલ કોડ માટે મોનિટર કરો (દા.ત., સેન્સર ઑફલાઇન).
વાયરિંગ સૂચનાઓ

AM2320 સેન્સરને Arduino સાથે વાયર કરવા માટે, આ પગલાંઓ કાળજીપૂર્વક અનુસરો. પ્રથમ, પાવર પિન કનેક્ટ કરો: AM2320 નો સૌથી ડાબો પિન Arduino ના 5V (અથવા VCC) સાથે જોડાય છે, જ્યારે ગ્રાઉન્ડ પિન Arduino ના GND સાથે જોડાય છે. ડાબેથી બીજો પિન (SDA) Arduino Uno માટે Arduino ના એનાલોગ પિન A4 અથવા Arduino Mega માટે A20 સાથે જોડાય છે. ત્રીજો પિન (SCL) Arduino Uno માટે A5 અથવા Arduino Mega માટે A21 પર જાય છે.
વધુમાં, તમારે SDA પિનથી 5V લાઇન સુધી 4.7 kΩ રેઝિસ્ટર અને SCL પિનથી 5V લાઇન સુધી બીજું 4.7 kΩ રેઝિસ્ટર કનેક્ટ કરવાની જરૂર પડશે. આ યોગ્ય I2C સંચાર સુનિશ્ચિત કરે છે. જો તમે Leonardo જેવા અન્ય Arduino મોડેલોનો ઉપયોગ કરી રહ્યા છો, તો SDA અને SCL પિન પણ અનુક્રમે A4 અને A5 હશે.
કોડ ઉદાહરણો અને વોકથ્રુ
ચાલો આ પ્રોજેક્ટમાં ઉપયોગમાં લેવાયેલા Arduino કોડના કેટલાક મુખ્ય ભાગો પર એક નજર કરીએ. પ્રથમ, આપણે સેન્સર શરૂ કરીએ છીએ અને સીરિયલ સંચાર સેટ કરીએ છીએ:
#include
AM2320 sensor;
void setup() {
Serial.begin(9600);
sensor.begin();
}
આ સ્નિપેટમાં, આપણે #include <AM2320.h> સાથે જરૂરી લાઇબ્રેરી શામેલ કરીએ છીએ અને સેન્સરનું ઇન્સ્ટન્સ બનાવીએ છીએ. setup() ફંક્શન 9600 બાઉડ રેટ પર સીરિયલ સંચાર શરૂ કરે છે અને સેન્સર શરૂ કરે છે.
આગળ, આપણી પાસે મુખ્ય લૂપ છે જે તાપમાન અને ભેજ વાંચે છે:
if (sensor.measure()) {
Serial.print("Temperature: ");
Serial.print(temp('C'));
Serial.print(" C, Humidity: ");
Serial.print(sensor.getHumidity());
Serial.println("%");
}
આ કોડ તપાસે છે કે સેન્સર માપન સફળ હતું કે નહીં. જો એમ હોય, તો તે સીરિયલ મોનિટર પર સેલ્સિયસમાં તાપમાન અને ભેજ ટકાવારી છાપે છે. સેલ્સિયસમાં તાપમાન મેળવવા માટે temp('C') ફંક્શન કહેવામાં આવે છે. જો તમને ફેરનહીટ જોઈએ છે, તો તમે temp('F') કહી શકો છો.
પ્રદર્શન / શું અપેક્ષા રાખવી
જ્યારે તમે પ્રોગ્રામ ચલાવો છો, ત્યારે તમારે સીરિયલ મોનિટરમાં દર અડધી સેકન્ડે તાપમાન અને ભેજ રીડિંગ્સ અપડેટ થતાં જોવા જોઈએ. ઉદાહરણ તરીકે, આઉટપુટ "Temperature: 23.5 C, Humidity: 50%" બતાવી શકે છે. જો તમે સેન્સર પર ગરમી લગાવો છો, તો તમારે તાપમાનમાં વધારો અને ભેજમાં ઘટાડો જોવો જોઈએ, જે તેની પ્રતિભાવશીલતા દર્શાવે છે (વિડિયોમાં 11:15 પર).
વિડિયો ટાઇમસ્ટેમ્પ્સ
- 00:00 - AM2320 સેન્સરનો પરિચય
- 01:30 - વાયરિંગ સૂચનાઓ
- 03:45 - કોડ વોકથ્રુ
- 05:15 - રીડિંગ્સનું પ્રદર્શન
++
/**
This is Arduino code for Aosong Digital Temperature and Humidity Sensor.
This code is presented as part of a Robojax tutorial.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Copyright 2016 Ratthanan Nalintasnai
Modified for Robojax.com video by
Ahmad S. on March 22, 2018 at 22:45 in Ajax, Ontario, Canada
This code, with library and other codes, is available at
https://robojax.com
Watch the video instruction for this code: https://youtu.be/3ifN0FhLB5E
**/
// Include library into the sketch
#include <AM2320.h>
// Create an instance of sensor
AM2320 sensor;
void setup() {
// enable serial communication
Serial.begin(9600);
Serial.print("Robojax AM2320 Demo ");
// call sensor.begin() to initialize the library
sensor.begin();
}
void loop() {
// sensor.measure() returns a boolean value
// - true indicates measurement is completed successfully
// - false indicates that either the sensor is not ready or CRC validation failed
// use getErrorCode() to check for the cause of the error.
if (sensor.measure()) {
Serial.print("Temperature: ");
Serial.print(temp('C'));
Serial.print(" C, Humidity: ");
Serial.print(sensor.getHumidity());
Serial.println("%");
}
else { // error has occurred
int errorCode = sensor.getErrorCode();
switch (errorCode) {
case 1: Serial.println("ERR: Sensor is offline"); break;
case 2: Serial.println("ERR: CRC validation failed."); break;
}
}
delay(500);
}
/*
* temp()
* returns temperature based on the parameter T
* if T == 'F', will convert Celsius to Fahrenheit
* if T is anything else or empty, will return Celsius
* how to use:
* to get Fahrenheit, use temp('F')
* to get Celsius, use temp('C') or temp('')
* the temp('') uses an empty single quote
*
*/
float temp(char T)
{
if (sensor.measure()) {
if(T =='F')
{
// convert to FAHRENHEIT and return
// Robojax video tutorial
return sensor.getTemperature()* 1.8 + 32;
}else{
return sensor.getTemperature();// return CELSIUS
}
}// if sensor.measure
}
સંસાધનો અને સંદર્ભો
હજી સુધી કોઈ સંસાધનો નથી.
ફાઇલો📁
ડેટાશીટ (pdf)
-
Adafruit-am2320-temperature-humidity-i2c-sensor user's manual
adafruit-am2320-temperature-humidity-i2c-sensor.pdf1.27 MB
Fritzing ફાઇલ
-
AM2320 Humidity and Temperature Sensor
AM2320 Humidity and Temperature Sensor.fzpz0.01 MB