विषयसूची:

Arduino के लिए तापमान सेंसर COVID 19 के लिए लागू: 12 कदम (चित्रों के साथ)
Arduino के लिए तापमान सेंसर COVID 19 के लिए लागू: 12 कदम (चित्रों के साथ)

वीडियो: Arduino के लिए तापमान सेंसर COVID 19 के लिए लागू: 12 कदम (चित्रों के साथ)

वीडियो: Arduino के लिए तापमान सेंसर COVID 19 के लिए लागू: 12 कदम (चित्रों के साथ)
वीडियो: Sanitizing Tunnel control wiring | sanitization tunnel ki control panel kaise banaye | corona safety 2024, नवंबर
Anonim
Arduino के लिए तापमान सेंसर COVID 19. के लिए लागू
Arduino के लिए तापमान सेंसर COVID 19. के लिए लागू

जब हम मानव शरीर के प्रोसेसर के तापमान को मापना चाहते हैं तो Arduino के लिए तापमान सेंसर एक मौलिक तत्व है।

Arduino के साथ तापमान संवेदक गर्मी के स्तर को प्राप्त करने और मापने के लिए संपर्क में या करीब होना चाहिए। इस तरह थर्मामीटर काम करते हैं।

बीमार लोगों के शरीर के तापमान को मापने के लिए इन उपकरणों का अत्यधिक उपयोग किया जाता है, क्योंकि तापमान उन पहले कारकों में से एक है जो मानव शरीर में असामान्यता या बीमारी होने पर बदलते हैं।

मानव शरीर के तापमान को बदलने वाली बीमारियों में से एक COVID 19 है। इसलिए, हम मुख्य लक्षण प्रस्तुत करते हैं:

खांसी थकान सांस लेने में कठिनाई (गंभीर मामले) बुखार बुखार एक लक्षण है जिसकी मुख्य विशेषता शरीर के तापमान में वृद्धि है। इस बीमारी में हमें इन लक्षणों पर लगातार नजर रखने की जरूरत है।

इस प्रकार, हम तापमान की निगरानी के लिए एक प्रोजेक्ट विकसित करेंगे और इस डेटा को एक मेमोरी कार्ड पर एक JLCPCB डेटालॉगर के माध्यम से Arduino के साथ एक तापमान सेंसर का उपयोग करके संग्रहीत करेंगे।

इसलिए, इस लेख में आप सीखेंगे:

  • Arduino के साथ तापमान सेंसर वाला JLCPCB Datalogger कैसे करता है?
  • Arduino के साथ तापमान सेंसर कैसे काम करता है।
  • Arduino के साथ DS18B20 तापमान सेंसर कैसे काम करता है
  • कई कार्यों के साथ बटन का प्रयोग करें।

इसके बाद, हम आपको दिखाएंगे कि आप Arduino तापमान सेंसर का उपयोग करके अपने JLCPCB डेटालॉगर को कैसे विकसित करेंगे।

आपूर्ति

अरुडिनो यूएनओ

JLCPCB प्रिंटेड सर्किट बोर्ड

DS18B20 तापमान सेंसर

Arduino नैनो R3

जम्परों

एलसीडी डिस्प्ले 16 x 2

स्विच को दबाएं

रोकनेवाला 1kR

Arduino के लिए एसडी कार्ड मॉड्यूल

चरण 1: Arduino के साथ तापमान सेंसर के साथ JLCPCB डेटालॉगर का निर्माण

Arduino के साथ तापमान सेंसर के साथ JLCPCB डेटालॉगर का निर्माण
Arduino के साथ तापमान सेंसर के साथ JLCPCB डेटालॉगर का निर्माण

जैसा कि पहले उल्लेख किया गया है, परियोजना में Arduino के साथ तापमान सेंसर के साथ एक JLCPCB डेटालॉगर बनाना शामिल है, और इस डेटा के माध्यम से, हम इलाज किए जा रहे रोगी के तापमान की निगरानी कर सकते हैं।

इस प्रकार, सर्किट ऊपर चित्र में दिखाया गया है।

इसलिए, जैसा कि आप देख सकते हैं, इस सर्किट में Arduino के साथ DS18B20 तापमान सेंसर है, जो रोगी के तापमान पढ़ने को मापने के लिए जिम्मेदार है।

इसके अलावा, Arduino Nano इस डेटा को एकत्र करने और इसे SD कार्ड मॉड्यूल के मेमोरी कार्ड में संग्रहीत करने के लिए जिम्मेदार होगा।

प्रत्येक जानकारी अपने संबंधित समय के साथ सहेजी जाएगी, जिसे RTC मॉड्यूल DS1307 से पढ़ा जाएगा।

इस प्रकार, Arduino के साथ तापमान संवेदक के डेटा को सहेजने के लिए, उपयोगकर्ता को 16x2 LCD के साथ नियंत्रण मेनू के माध्यम से प्रक्रिया को पूरा करना होगा।

चरण 2:

छवि
छवि

प्रत्येक बटन एक विकल्प को नियंत्रित करने के लिए जिम्मेदार होता है, जैसा कि चित्र 2 में LCD स्क्रीन 16x2 पर दिखाया गया है।

प्रत्येक विकल्प सिस्टम में एक कार्य करने के लिए जिम्मेदार है, जैसा कि नीचे दिखाया गया है।

  • विकल्प एम मेमोरी कार्ड पर डेटा की माप और रिकॉर्डिंग शुरू करने के लिए जिम्मेदार है।
  • विकल्प एच सिस्टम के घंटों को समायोजित करने के लिए जिम्मेदार है।
  • विकल्प O/P का उपयोग सिस्टम में डेटा प्रविष्टि की पुष्टि करने या मेमोरी कार्ड में डेटा लिखने को रोकने के लिए किया जाता है।

सिस्टम नियंत्रण प्रक्रिया को समझने के लिए, हम नीचे दिए गए कोड प्रदान करेंगे और Arduino के साथ तापमान सेंसर के साथ JLCPCB Datalogger के चरण-दर-चरण नियंत्रण प्रणाली पर चर्चा करेंगे।

#शामिल // DS18B20 सेंसर के सभी कार्यों के साथ पुस्तकालय

#include #include // Biblioteca I2C do LCD 16x2 #include // Biblioteca de Comunicacao I2C #include // DS18B20 सेंसर के लिए वनवायर लाइब्रेरी #include #include LiquidCrystal_I2C LCD (0x27, 16, 2); // Configurando o endereco do LCD 16x2 पैरा 0x27 #define ONE_WIRE_BUS 8 // DS18B20 सेंसर को जोड़ने के लिए डिजिटल पिन // परिभाषित करें uma instancia do onewire para comunicacao com o sensor OneWire oneWire(ONE_WIRE_BUS); डलास तापमान सेंसर (और वनवायर); डिवाइसएड्रेस सेंसर1; फाइल मायफाइल; #define Buttonmeasure 2 #define Buttonadjusthour 3 #define Buttonok 4 bool माप = 0, एडजस्टहोवर = 0, ओके = 0; बूल माप_स्टेट = 0, एडजस्टहोर_स्टेट = 0, ओके_स्टेट = 0; बूल माप_प्रोसेस = 0, एडजस्ट_प्रोसेस = 0; बाइट वास्तविकमिन = 0, पिछलामिन = 0; बाइट वास्तविक घंटा = 0, पिछला घंटा = 0; बाइट मिनअपडेट = 0; इंट पिनोएसएस = 10; // पिन 53 पैरा मेगा / पिन 10 पैरा यूएनओ इंट डेटाटाइम [7]; शून्य अद्यतन घंटे () {DS1307.getDate (डेटाटाइम); अगर (डेटाटाइम [5]! = मिनट अपडेट) {स्प्रिंटफ (समय, "% 02 डी:% 02 डी", डेटाटाइम [4], डेटाटाइम [5]); LCD.setCursor(0, 0); एलसीडी.प्रिंट (""); LCD.setCursor(5, 0); एलसीडी.प्रिंट (समय); minUpdate = डेटाटाइम [5]; } } शून्य अपडेटटेम्प () {DS1307.getDate(DataTime); अगर (डेटाटाइम [5]! = मिनट अपडेट) {स्प्रिंटफ (समय, "% 02 डी:% 02 डी", डेटाटाइम [4], डेटाटाइम [5]); एलसीडी.क्लियर (); LCD.setCursor(5, 0); एलसीडी.प्रिंट (समय); LCD.setCursor(0, 1); LCD.print ("तापमान:"); LCD.setCursor(14, 1); सेंसर। अनुरोध तापमान (); फ्लोट TempSensor = sensor.getTempCByIndex(0); LCD.print (TempSensor); minUpdate = डेटाटाइम [5]; } } शून्य सेटअप () { Serial.begin (९६००); DS1307.begin (); सेंसर। शुरू (); पिनमोड (पिनोएसएस, आउटपुट); // डेक्लारा पिनोएसएस कोमो सैदा वायर.बेगिन (); //Inicializacao da Comunicacao I2C LCD.init (); //Inicializacao LCD LCD.backlight करते हैं (); LCD.setCursor(3, 0); LCD.print ("अस्थायी सिस्टम"); LCD.setCursor(3, 1); LCD.print ("डेटालॉगर"); देरी (2000); // Localiza e mostra enderecos dos sensores Serial.println("Localizando sensores DS18B20…"); Serial.print ("सेंसर स्थानीयकरण सफलतापूर्वक!"); Serial.print(sensors.getDeviceCount(), DEC); Serial.println ("सेंसर"); if(SD.begin ()) {//Inicializa या SD कार्ड सीरियल.प्रिंट्लन ("एसडी कार्ड सर्वनाम पैरा।"); // इम्प्राइम ना तेल } और { Serial.println ("फाल्हा ना inicialização do SD कार्ड।"); वापसी; } DS1307.getDate(DataTime); एलसीडी.क्लियर (); स्प्रिंटफ (समय, "% 02d:% 02d", डेटाटाइम [4], डेटाटाइम [5]); LCD.setCursor(5, 0); एलसीडी.प्रिंट (समय); LCD.setCursor(0, 1); एलसीडी.प्रिंट ("1-एम 2-एच 3-ओ / पी"); } शून्य लूप () {अपडेटहोर (); // रीडिंग बटन राज्यों को मापता है = digitalRead (Buttonmeasure); एडजस्टहोर = डिजिटल रीड (बटन एडजस्टऑवर); ओके = डिजिटलरेड (बटनोक); अगर (माप == 0 && माप_स्टेट == 1) {माप_स्टेट = 0; } अगर (माप == 1 && माप_स्टेट == 0 && माप_प्रक्रिया == 0) {माप_प्रोसेस = 1; माप_स्टेट = 1; if (SD.exists("temp.txt")) { Serial.println("Apagou o arquivo anterior!"); SD.remove ("temp.txt"); myFile = SD.open ("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt Serial.println ("Criou o arquivo!"); } और { Serial.println ("क्रिओ ओ आर्किवो!"); myFile = SD.open ("temp.txt", FILE_WRITE); // क्रिया / अब्रे आर्किवो.txt myFile.close (); } देरी (500); myFile.print ("घंटे:"); myFile.println ("तापमान"); DS1307.getDate (डेटाटाइम); वास्तविकमिन = पिछलामिन = डेटाटाइम [5]; स्प्रिंटफ (समय, "% 02d:% 02d", डेटाटाइम [4], डेटाटाइम [5]); एलसीडी.क्लियर (); LCD.setCursor(5, 0); एलसीडी.प्रिंट (समय); LCD.setCursor(0, 1); LCD.print ("तापमान:"); LCD.setCursor(14, 1); सेंसर। अनुरोध तापमान (); फ्लोट TempSensor = sensor.getTempCByIndex(0); LCD.print (TempSensor); } अगर (समायोजन == 0 && एडजस्टहोर_स्टेट == 1) {समायोजन_स्टेट = 0; } अगर (समायोजन == 1 && एडजस्टहोर_स्टेट == 0 && माप_प्रक्रिया == 0) {एडजस्ट_प्रोसेस = 1; }//------------------------------------------- ---मापने की प्रक्रिया ------------------------------------------- -------------- अगर (माप_प्रोसेस == 1) {अपडेटटेम्प (); बाइट contMin = 0, contHour = 0; DS1307.getDate (डेटाटाइम); वास्तविकमिन = डेटाटाइम [5]; //------------------------------------------------ -------------गिनती मिनट------------------------------------- ------------------- अगर (वास्तविक न्यूनतम! = पिछला मिनट) {contMin++; पिछलामिन = वास्तविक न्यूनतम; } अगर (contMin == 5) {स्प्रिंटफ (बार, "% 02d:% 02d", डेटाटाइम [4], डेटाटाइम [5]); सेंसर। अनुरोध तापमान (); फ्लोट TempSensor = sensor.getTempCByIndex(0); myFile.print (बार); myFile.println (TempSensor); कॉन्टमिन = 0; }//------------------------------------------- ------------गणना घंटे------------------------------------------ ---------------------- अगर (वास्तविक घंटे! = पिछला घंटा) {contHour++; पिछला घंटा = वास्तविक घंटा; } अगर (contHour == 5) { myFile.close (); एलसीडी.क्लियर (); LCD.setCursor(5, 0); LCD.print ("समाप्त"); LCD.setCursor(5, 1); LCD.print ("प्रक्रिया"); माप_प्रक्रिया = 0; contHour = 0; } //----------------------------------------------शर्त डेटालॉगर को रोकने के लिए------------------------------------------ ---- अगर (ठीक == 1) {myFile.close (); एलसीडी.क्लियर (); LCD.setCursor(6, 0); LCD.print ("रोक दिया गया"); LCD.setCursor(5, 1); LCD.print ("प्रक्रिया"); माप_प्रक्रिया = 0; देरी (2000); एलसीडी.क्लियर (); DS1307.getDate (डेटाटाइम); स्प्रिंटफ (समय, "% 02d:% 02d", डेटाटाइम [4], डेटाटाइम [5]); LCD.setCursor(5, 0); एलसीडी.प्रिंट (बार); LCD.setCursor(0, 1); एलसीडी.प्रिंट ("1-एम 2-एच 3-ओ / पी"); } } //------------------------------------------------ ------- घंटे समायोजित करें------------------------------------------ ---------------------- // घंटे समायोजित करें अगर (adjust_process == 1) {lcd.clear (); DS1307.getDate (डेटाटाइम); LCD.setCursor(0, 0); LCD.print ("घंटे समायोजित करें:"); स्प्रिंटफ (समय, "% 02d:% 02d", डेटाटाइम [4], डेटाटाइम [5]); LCD.setCursor(5, 1); एलसीडी.प्रिंट (समय); // घंटा समायोजित करें {माप = डिजिटल रीड (बटनमायर); एडजस्टहोर = डिजिटल रीड (बटन एडजस्टऑवर); ओके = डिजिटलरेड (बटनोक); अगर (माप == 0 && माप_स्टेट == 1) {माप_स्टेट = 0; } अगर (माप == 1 && माप_स्टेट == 0) {डेटाटाइम [4] ++; अगर (डेटाटाइम [4]> 23) {डेटाटाइम [4] = 0; } माप_स्टेट = 1; स्प्रिंटफ (समय, "% 02d:% 02d", डेटाटाइम [4], डेटाटाइम [5]); LCD.setCursor(5, 1); एलसीडी.प्रिंट (समय); DS1307.setDate(DataTime[0], DataTime[1], DataTime[2], DataTime[3], DataTime[4], DataTime[5], 00); } अगर (समायोजन == 0 && एडजस्टहोर_स्टेट == 1) {समायोजन_स्टेट = 0; } अगर (समायोजन == 1 && एडजस्टहोर_स्टेट == 0) {डेटाटाइम [5] ++; अगर (डेटाटाइम [5]> 59) {डेटाटाइम [5] = 0; } स्प्रिंटफ (समय, "% 02d:% 02d", डेटाटाइम [4], डेटाटाइम [5]); LCD.setCursor(5, 1); एलसीडी.प्रिंट (समय); DS1307.setDate(DataTime[0], DataTime[1], DataTime[2], DataTime[3], DataTime[4], DataTime[5], 00); एडजस्टहोर_स्टेट = 1; } अगर (ठीक == 1) {lcd.clear (); DS1307.getDate (डेटाटाइम); स्प्रिंटफ (समय, "% 02d:% 02d", डेटाटाइम [4], डेटाटाइम [5]); LCD.setCursor(0, 0); एलसीडी.प्रिंट (समय); LCD.setCursor(0, 1); एलसीडी.प्रिंट ("1-एम 2-एच 3-ओ"); एडजस्ट_प्रोसेस = 0; } }जबकि(ठीक है!= 1); }//------------------------------------------- ------- समाप्ति समय समायोजित करें------------------------------------------ ------------------- }

सबसे पहले, हम मॉड्यूल को नियंत्रित करने और Arduino के लिए एक तापमान सेंसर के साथ JLCPCB Datalogger प्रोग्रामिंग करते समय उपयोग किए जाने वाले चर घोषित करने के लिए सभी पुस्तकालयों को परिभाषित करते हैं। कोड ब्लॉक नीचे दिखाया गया है।

चरण 3:

#शामिल // DS18B20 सेंसर के सभी कार्यों के साथ पुस्तकालय

#include #include // Biblioteca I2C do LCD 16x2 #include // Biblioteca de Comunicacao I2C #include // DS18B20 सेंसर के लिए वनवायर लाइब्रेरी #include #include LiquidCrystal_I2C LCD (0x27, 16, 2); // Configurando o endereco do LCD 16x2 पैरा 0x27 #define ONE_WIRE_BUS 8 // DS18B20 सेंसर को जोड़ने के लिए डिजिटल पिन // परिभाषित करें uma instancia do onewire para comunicacao com o sensor OneWire oneWire(ONE_WIRE_BUS); डलास तापमान सेंसर (और वनवायर); डिवाइसएड्रेस सेंसर1; फाइल मायफाइल; #define Buttonmeasure 2 #define Buttonadjusthour 3 #define Buttonok 4 bool माप = 0, एडजस्टहोवर = 0, ओके = 0; बूल माप_स्टेट = 0, एडजस्टहोर_स्टेट = 0, ओके_स्टेट = 0; बूल माप_प्रोसेस = 0, एडजस्ट_प्रोसेस = 0; बाइट वास्तविकमिन = 0, पिछलामिन = 0; बाइट वास्तविक घंटा = 0, पिछला घंटा = 0; बाइट मिनअपडेट = 0; इंट पिनोएसएस = 10; // पिन 53 पैरा मेगा / पिन 10 पैरा यूएनओ इंट डेटाटाइम [7];

इसके बाद, हमारे पास शून्य सेटअप फ़ंक्शन है। इस फ़ंक्शन का उपयोग पिन और डिवाइस इनिशियलाइज़ेशन को कॉन्फ़िगर करने के लिए किया जाता है, जैसा कि नीचे दिखाया गया है।

व्यर्थ व्यवस्था()

{ सीरियल.बेगिन (९६००); DS1307.begin (); सेंसर। शुरू (); पिनमोड (पिनोएसएस, आउटपुट); // डेक्लारा पिनोएसएस कोमो सैदा वायर.बेगिन (); //Inicializacao da Comunicacao I2C LCD.init (); //Inicializacao LCD LCD.backlight करते हैं (); LCD.setCursor(3, 0); LCD.print ("अस्थायी सिस्टम"); LCD.setCursor(3, 1); LCD.print ("डेटालॉगर"); देरी (2000); // Localiza e mostra enderecos dos sensores Serial.println("Localizando sensores DS18B20…"); Serial.print ("सेंसर स्थानीयकरण सफलतापूर्वक!"); Serial.print(sensors.getDeviceCount(), DEC); Serial.println ("सेंसर"); if(SD.begin ()) {//Inicializa या SD कार्ड सीरियल.प्रिंट्लन ("एसडी कार्ड सर्वनाम पैरा।"); // इम्प्राइम ना तेल } और { Serial.println ("फाल्हा ना inicialização do SD कार्ड।"); वापसी; } DS1307.getDate(DataTime); एलसीडी.क्लियर (); स्प्रिंटफ (समय, "% 02d:% 02d", डेटाटाइम [4], डेटाटाइम [5]); LCD.setCursor(5, 0); एलसीडी.प्रिंट (बार); LCD.setCursor(0, 1); एलसीडी.प्रिंट ("1-एम 2-एच 3-ओ / पी"); }

सबसे पहले, सीरियल संचार, वास्तविक समय की घड़ी और Arduino DS18B20 के लिए तापमान सेंसर शुरू किया गया था। उपकरणों को शुरू करने और परीक्षण करने के बाद, मेनू विकल्पों के साथ संदेश 16x2 एलसीडी स्क्रीन पर मुद्रित किया गया था। यह स्क्रीन चित्र 1 में दिखाई गई है।

चरण 4:

उसके बाद, सिस्टम घंटे पढ़ता है और updateHour फ़ंक्शन को कॉल करके मान को अपडेट करता है। इस प्रकार, इस फ़ंक्शन का उद्देश्य प्रति मिनट प्रति घंटा मूल्य प्रस्तुत करना है। फ़ंक्शन कोड ब्लॉक नीचे दिखाया गया है।

शून्य अद्यतन घंटा ()

{ DS1307.getDate (डेटाटाइम); अगर (डेटाटाइम [5]! = मिनट अपडेट) {स्प्रिंटफ (समय, "% 02 डी:% 02 डी", डेटाटाइम [4], डेटाटाइम [5]); LCD.setCursor(0, 0); एलसीडी.प्रिंट (""); LCD.setCursor(5, 0); एलसीडी.प्रिंट (समय); minUpdate = डेटाटाइम [5]; } }

चरण 5:

छवि
छवि

घंटों को अपडेट करने के अलावा, उपयोगकर्ता Arduino के साथ तापमान सेंसर के साथ रोगी की निगरानी के लिए तीन बटनों में से एक का चयन कर सकता है। सर्किट ऊपर चित्र में दिखाया गया है।

चरण 6: JLCPCB डेटालॉगर नियंत्रण मेनू

JLCPCB डेटालॉगर नियंत्रण मेनू
JLCPCB डेटालॉगर नियंत्रण मेनू

सबसे पहले, उपयोगकर्ता को सिस्टम घंटे की जांच और समायोजन करना चाहिए। यह प्रक्रिया तब की जाती है जब दूसरा बटन दबाया जाता है।

जब बटन दबाया जाता है, तो निम्न स्क्रीन दिखाई देनी चाहिए, जो चित्र में दिखाया गया है।

चरण 7:

छवि
छवि

इस स्क्रीन से, उपयोगकर्ता Arduino के डिजिटल पिन 2 और 3 से जुड़े बटनों से घंटे और मिनट के मूल्यों को दर्ज करने में सक्षम होगा। बटन ऊपर चित्र में दिखाए गए हैं।

घंटों को नियंत्रित करने के लिए कोड भाग नीचे दिखाया गया है।

अगर (समायोजन == 0 && एडजस्टहोर_स्टेट == 1)

{समायोजन_स्टेट = 0; } अगर (समायोजन == 1 && एडजस्टहोर_स्टेट == 0 && माप_प्रक्रिया == 0) {एडजस्ट_प्रोसेस = 1; }

जब घंटों का बटन दबाया जाता है और माप_प्रक्रिया चर 0 पर सेट होता है, तो स्थिति सही होगी और समायोजन_प्रक्रिया चर को 1 पर सेट किया जाएगा। माप_प्रोसेस चर का उपयोग यह संकेत देने के लिए किया जाता है कि सिस्टम तापमान की निगरानी कर रहा है। जब इसका मान 0 होता है, तो सिस्टम उपयोगकर्ता को समय सेटिंग मेनू में प्रवेश करने की अनुमति देगा। इसलिए, एडजस्ट_प्रोसेस वेरिएबल को 1 का मान प्राप्त होने के बाद, सिस्टम समय समायोजन की स्थिति में प्रवेश करेगा। यह कोड ब्लॉक नीचे दिखाया गया है।

//------------------------------------------------ -----समय समायोजित करें------------------------------------------ ------------------------

// घंटे समायोजित करें अगर (adjust_process == 1) {lcd.clear (); DS1307.getDate (डेटाटाइम); LCD.setCursor(0, 0); LCD.print ("घंटे समायोजित करें:"); स्प्रिंटफ (समय, "% 02d:% 02d", डेटाटाइम [4], डेटाटाइम [5]); LCD.setCursor(5, 1); एलसीडी.प्रिंट (समय); // घंटा समायोजित करें {माप = digitalRead (Buttonmeasure); एडजस्टहोर = डिजिटल रीड (बटन एडजस्टऑवर); ओके = डिजिटलरेड (बटनोक); अगर (माप == 0 && माप_स्टेट == 1) {माप_स्टेट = 0; } अगर (माप == 1 && माप_स्टेट == 0) {डेटाटाइम [4] ++; अगर (डेटाटाइम [4]> 23) {डेटाटाइम [4] = 0; } माप_स्टेट = 1; स्प्रिंटफ (समय, "% 02d:% 02d", डेटाटाइम [4], डेटाटाइम [5]); LCD.setCursor(5, 1); एलसीडी.प्रिंट (बार); DS1307.setDate(DataTime[0], DataTime[1], DataTime[2], DataTime[3], DataTime[4], DataTime[5], 00); } अगर (समायोजन == 0 && एडजस्टहोर_स्टेट == 1) {समायोजन_स्टेट = 0; } अगर (समायोजन == 1 && एडजस्टहोर_स्टेट == 0) {डेटाटाइम [5] ++; अगर (डेटाटाइम [5]> 59) {डेटाटाइम [5] = 0; } स्प्रिंटफ (समय, "% 02d:% 02d", डेटाटाइम [4], डेटाटाइम [5]); LCD.setCursor(5, 1); एलसीडी.प्रिंट (समय); DS1307.setDate(DataTime[0], DataTime[1], DataTime[2], DataTime[3], DataTime[4], DataTime[5], 00); एडजस्टहोर_स्टेट = 1; } अगर (ठीक == 1) {lcd.clear (); DS1307.getDate (डेटाटाइम); स्प्रिंटफ (समय, "% 02d:% 02d", डेटाटाइम [4], डेटाटाइम [5]); LCD.setCursor(0, 0); एलसीडी.प्रिंट (समय); LCD.setCursor(0, 1); एलसीडी.प्रिंट ("1-एम 2-एच 3-ओ"); एडजस्ट_प्रोसेस = 0; } }जबकि(ठीक है!= 1); }

इस स्थिति में, सिस्टम चित्र 4 में दिखाए गए संदेश को प्रदर्शित करेगा और फिर लूप में मानों के आंतरिक रूप से समायोजित होने की प्रतीक्षा करेगा। घंटों को समायोजित करते समय, इन बटनों के अपने कार्य बदल जाते हैं, अर्थात वे बहु-कार्य होते हैं।

यह आपको एक से अधिक फ़ंक्शन के लिए एक बटन का उपयोग करने और सिस्टम की जटिलता को कम करने की अनुमति देता है।

इस तरह, उपयोगकर्ता घंटों और मिनटों के मूल्य को समायोजित करेगा और फिर ओके बटन दबाए जाने पर डेटा को सिस्टम में सहेज लेगा।

जैसा कि आप देख सकते हैं, सिस्टम 3 बटन पढ़ेगा, जैसा कि नीचे दिखाया गया है।

माप = डिजिटल रीड (बटनमायर);

एडजस्टहोर = डिजिटल रीड (बटन एडजस्टऑवर); ओके = डिजिटलरेड (बटनोक);

ध्यान दें कि माप बटन (बटनमाप) ने अपना कार्य बदल दिया है। अब इसका उपयोग घंटे के मानों को समायोजित करने के लिए किया जाएगा, जैसा कि नीचे दिखाया गया है। निम्नलिखित दो स्थितियां समान हैं और घंटे और मिनटों को समायोजित करने के लिए उपयोग की जाती हैं, जैसा कि ऊपर दिखाया गया है।

अगर (माप == 0 && माप_स्टेट == 1)

{माप_स्टेट = 0; } अगर (माप == 1 && माप_स्टेट == 0) {डेटाटाइम [4] ++; अगर (डेटाटाइम [4]> 23) {डेटाटाइम [4] = 0; } माप_स्टेट = 1; स्प्रिंटफ (समय, "% 02d:% 02d", डेटाटाइम [4], डेटाटाइम [5]); LCD.setCursor(5, 1); एलसीडी.प्रिंट (समय); DS1307.setDate(DataTime[0], DataTime[1], DataTime[2], DataTime[3], DataTime[4], DataTime[5], 00); } अगर (समायोजन == 0 && एडजस्टहोर_स्टेट == 1) {समायोजन_स्टेट = 0; } अगर (समायोजन == 1 && एडजस्टहोर_स्टेट == 0) {डेटाटाइम [5] ++; अगर (डेटाटाइम [5]> 59) {डेटाटाइम [5] = 0; } स्प्रिंटफ (समय, "% 02d:% 02d", डेटाटाइम [4], डेटाटाइम [5]); LCD.setCursor(5, 1); एलसीडी.प्रिंट (समय); DS1307.setDate(DataTime[0], DataTime[1], DataTime[2], DataTime[3], DataTime[4], DataTime[5], 00); एडजस्टहोर_स्टेट = 1; }

इसलिए, हर बार दो बटनों में से एक को दबाया जाता है, डेटाटाइम वेक्टर की स्थिति 4 और 5 का मान बदल जाएगा और दूसरी बात, ये मान DS1307 मेमोरी में सहेजे जाएंगे।

समायोजन के बाद, प्रक्रिया को समाप्त करने के लिए उपयोगकर्ता को ओके बटन पर क्लिक करना होगा। जब यह घटना होती है, तो सिस्टम कोड की निम्नलिखित पंक्तियों को निष्पादित करेगा।

अगर (ठीक == 1)

{एलसीडी.क्लियर (); DS1307.getDate (डेटाटाइम); स्प्रिंटफ (समय, "% 02d:% 02d", डेटाटाइम [4], डेटाटाइम [5]); LCD.setCursor(0, 0); एलसीडी.प्रिंट (समय); LCD.setCursor(0, 1); एलसीडी.प्रिंट ("1-एम 2-एच 3-ओ"); एडजस्ट_प्रोसेस = 0; }

यह उपरोक्त स्थिति में प्रवेश करेगा और उपयोगकर्ता को घंटे संदेश और विकल्प मेनू प्रस्तुत करेगा।

अंत में, उपयोगकर्ता को Arduino JLCPCB Datalogger के साथ तापमान सेंसर के माध्यम से रोगी की निगरानी प्रक्रिया शुरू करनी चाहिए।

ऐसा करने के लिए, उपयोगकर्ता को माप बटन दबाना होगा, जो डिजिटल पिन 2 से जुड़ा है।

फिर, सिस्टम Arduino के लिए तापमान सेंसर के साथ रीडिंग करेगा और इसे मेमोरी कार्ड पर सेव करेगा। सर्किट क्षेत्र ऊपर चित्र में दिखाया गया है।

चरण 8:

छवि
छवि

इसलिए, जब बटन दबाया जाता है, तो कोड के निम्नलिखित भाग को निष्पादित किया जाएगा।

अगर (माप == 0 && माप_स्टेट == 1)

{माप_स्टेट = 0; } अगर (माप == 1 && माप_स्टेट == 0 && माप_प्रक्रिया == 0) {माप_प्रोसेस = 1; माप_स्टेट = 1; if (SD.exists("temp.txt")) { Serial.println("Apagou o arquivo anterior!"); SD.remove ("temp.txt"); myFile = SD.open ("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt Serial.println ("Criou o arquivo!"); } और { Serial.println ("क्रिओ ओ आर्किवो!"); myFile = SD.open ("temp.txt", FILE_WRITE); // क्रिया / अब्रे आर्किवो.txt myFile.close (); } देरी (500); myFile.print ("घंटे:"); myFile.println ("तापमान"); DS1307.getDate (डेटाटाइम); वास्तविकमिन = पिछलामिन = डेटाटाइम [5]; स्प्रिंटफ (समय, "% 02d:% 02d", डेटाटाइम [4], डेटाटाइम [5]); एलसीडी.क्लियर (); LCD.setCursor(5, 0); एलसीडी.प्रिंट (समय); LCD.setCursor(0, 1); LCD.print ("तापमान:"); LCD.setCursor(14, 1); सेंसर। अनुरोध तापमान (); फ्लोट TempSensor = sensor.getTempCByIndex(0); LCD.print (TempSensor); }

उपरोक्त कोड भाग में, सिस्टम 1 का मान माप_प्रोसेस चर को निर्दिष्ट करेगा। यह एसडी कार्ड पर डेटा को सहेजने की अनुमति देने के लिए जिम्मेदार है।

इसके अलावा, सिस्टम जांच करेगा कि डेटा लॉग वाली टेक्स्ट फ़ाइल मौजूद है या नहीं। यदि कोई फ़ाइल है, तो सिस्टम डेटा को संग्रहीत करने के लिए हटा देगा और एक नया बना देगा।

उसके बाद, यह दो कॉलम बनाएगा: एक घंटे के लिए और दूसरा टेक्स्ट फ़ाइल के अंदर के तापमान के लिए।

उसके बाद, यह एलसीडी स्क्रीन पर घंटे और तापमान को प्रदर्शित करेगा, जैसा कि ऊपर चित्र में दिखाया गया है।

उसके बाद, कोड प्रवाह निम्नलिखित प्रोग्राम ब्लॉक को निष्पादित करेगा।

अगर (माप_प्रोसेस == 1)

{अपडेटटेम्प (); बाइट contMin = 0, contHour = 0; DS1307.getDate (डेटाटाइम); वास्तविकमिन = डेटाटाइम [5]; //------------------------------------------------ -------------गिनती मिनट------------------------------------- ------------------- अगर (वास्तविक न्यूनतम! = पिछला मिनट) {contMin++; पिछलामिन = वास्तविक न्यूनतम; } अगर (contMin == 5) {स्प्रिंटफ (बार, "% 02d:% 02d", डेटाटाइम [4], डेटाटाइम [5]); सेंसर। अनुरोध तापमान (); फ्लोट TempSensor = sensor.getTempCByIndex(0); myFile.print (बार); myFile.println (TempSensor); कॉन्टमिन = 0; }//------------------------------------------- ------------गणना घंटे------------------------------------------ ---------------------- अगर (वास्तविक घंटे! = पिछला घंटा) {contHour++; पिछला घंटा = वास्तविक घंटा; } अगर (contHour == 5) { myFile.close (); एलसीडी.क्लियर (); LCD.setCursor(5, 0); LCD.print ("समाप्त"); LCD.setCursor(5, 1); LCD.print ("प्रक्रिया"); माप_प्रक्रिया = 0; contHour = 0; } //----------------------------------------------शर्त डेटालॉगर को रोकने के लिए -----

सबसे पहले, updateTemp() फ़ंक्शन निष्पादित किया जाएगा। यह updateHour() फ़ंक्शन के समान है; हालाँकि, यह हर 1 मिनट में तापमान प्रदर्शित करता है।

उसके बाद, सिस्टम रीयल-टाइम क्लॉक से समय डेटा एकत्र करेगा और वर्तमान मिनट मान को currentMin चर में संग्रहीत करेगा।

फिर, यह जाँच करेगा कि क्या नीचे दी गई स्थिति के अनुसार न्यूनतम चर बदल दिया गया है

अगर (वास्तविक न्यूनतम! = पिछला मिनट)

{contMin++; पिछलामिन = वास्तविक न्यूनतम; }

इसलिए, यदि वर्तमान मिनट चर पिछले मान से भिन्न है, तो इसका मतलब है कि मूल्य में परिवर्तन हुआ है। इस तरह, स्थिति सही होगी और मिनट की गणना का मूल्य बढ़ जाएगा (contMin) और वर्तमान मूल्य इसके पिछले मान को संग्रहीत करने के लिए, वेरिएबल पिछलामिन को असाइन किया जाएगा।

इसलिए, जब इस गिनती का मान 5 के बराबर होता है, तो इसका मतलब है कि 5 मिनट बीत चुके हैं और सिस्टम को एक नया तापमान पढ़ना चाहिए और एसडी कार्ड लॉग फ़ाइल में घंटे और तापमान मान को सहेजना चाहिए।

अगर (contMin == 5)

{स्प्रिंटफ (समय, "% 02d:% 02d", डेटाटाइम [4], डेटाटाइम [5]); सेंसर। अनुरोध तापमान (); फ्लोट TempSensor = sensor.getTempCByIndex(0); myFile.print (बार); myFile.println (TempSensor); कॉन्टमिन = 0; }

इस तरह, Arduino के साथ तापमान संवेदक के साथ रोगी के तापमान की निगरानी के 5 घंटे के मूल्य तक पहुंचने तक इस प्रक्रिया को दोहराया जाएगा।

कोड भाग नीचे दिखाया गया है और मिनट की गिनती के समान है, जो ऊपर प्रस्तुत किया गया था।

//------------------------------------------------ ----------- घंटों की गणना करें------------------------------------- ---------------------

अगर (वास्तविक घंटे! = पिछला घंटा) {contHour++; पिछला घंटा = वास्तविक घंटा; } अगर (contHour == 5) { myFile.close (); एलसीडी.क्लियर (); LCD.setCursor(5, 0); LCD.print ("समाप्त"); LCD.setCursor(5, 1); LCD.print ("प्रक्रिया"); माप_प्रक्रिया = 0; contHour = 0; }

5 घंटे की निगरानी तक पहुंचने के बाद, सिस्टम लॉग फ़ाइल को बंद कर देगा और उपयोगकर्ता को "समाप्त प्रक्रिया" संदेश प्रस्तुत करेगा।

इसके अलावा, उपयोगकर्ता डेटा रिकॉर्ड करना बंद करने के लिए ओके/पॉज बटन दबा सकता है। जब ऐसा होता है, तो निम्न कोड ब्लॉक निष्पादित किया जाएगा।

//------------------------------------------------ करने के लिए शर्त डेटालॉगर बंद करो------------------------------------------ ---

अगर (ठीक == 1) { myFile.close (); एलसीडी.क्लियर (); LCD.setCursor(6, 0); LCD.print ("रोक दिया गया"); LCD.setCursor(5, 1); LCD.print ("प्रक्रिया"); माप_प्रक्रिया = 0; देरी (2000); एलसीडी.क्लियर (); DS1307.getDate (डेटाटाइम); स्प्रिंटफ (समय, "% 02d:% 02d", डेटाटाइम [4], डेटाटाइम [5]); LCD.setCursor(5, 0); एलसीडी.प्रिंट (समय); LCD.setCursor(0, 1); एलसीडी.प्रिंट ("1-एम 2-एच 3-ओ / पी"); }

चरण 9:

छवि
छवि

फिर, सिस्टम फ़ाइल को बंद कर देगा और "स्टॉप्ड प्रोसेस" संदेश प्रस्तुत करेगा, जैसा कि चित्र 8 में दिखाया गया है।

चरण 10:

छवि
छवि

उसके बाद, सिस्टम टाइम स्क्रीन और मेनू विकल्पों को प्रिंट करेगा, जैसा कि चित्र 9 में दिखाया गया है।

चरण 11: Arduino के साथ एसडी कार्ड मॉड्यूल डेटा एक्सेस करना

Arduino के साथ एसडी कार्ड मॉड्यूल डेटा एक्सेस करना
Arduino के साथ एसडी कार्ड मॉड्यूल डेटा एक्सेस करना

Arduino के साथ तापमान सेंसर के साथ JLCPCB डेटालॉगर की निगरानी की प्रक्रिया के बाद, मेमोरी कार्ड को निकालना और कंप्यूटर पर डेटा तक पहुंचना आवश्यक है।

डेटा को बेहतर गुणवत्ता के साथ देखने और विश्लेषण करने के लिए, टेक्स्ट फ़ाइल की सभी जानकारी एक्सेल को निर्यात / कॉपी करें। उसके बाद, आप ग्राफ़ प्लॉट कर सकते हैं और प्राप्त परिणामों का विश्लेषण कर सकते हैं।

चरण 12: निष्कर्ष

Arduino के साथ एक तापमान सेंसर के साथ JLCPCB डेटालॉगर हमें तापमान को मापने के अलावा, समय की अवधि में रोगी के तापमान व्यवहार पर जानकारी रिकॉर्ड करने की अनुमति देता है।

इन संग्रहीत डेटा के साथ, यह विश्लेषण करना और समझना संभव है कि COVID 19 से संक्रमित रोगी का तापमान कैसा व्यवहार करता है।

इसके अलावा, तापमान के स्तर का मूल्यांकन करना और किसी प्रकार की दवा के उपयोग के साथ इसके मूल्य को जोड़ना संभव है।

इसलिए, इन आंकड़ों के माध्यम से, Arduino के लिए तापमान संवेदक के साथ JLCPCB Datalogger का उद्देश्य रोगियों के व्यवहार के अध्ययन में डॉक्टरों और नर्सों की सहायता करना है।

अंत में, हम परियोजना के विकास का समर्थन करने के लिए कंपनी JLCPCB को धन्यवाद देते हैं और आशा करते हैं कि आप इसका उपयोग कर सकते हैं।

सभी फाइलें किसी भी उपयोगकर्ता द्वारा स्वतंत्र रूप से डाउनलोड और उपयोग की जा सकती हैं।

सिफारिश की: