Агуулгын хүснэгт:
- Хангамж
- Алхам 1: Arduino ашиглан температур мэдрэгч бүхий JLCPCB мэдээллийн каталогийг барьж байгуулах
- Алхам 2:
- Алхам 3:
- Алхам 4:
- Алхам 5:
- Алхам 6: JLCPCB мэдээллийн сангийн хяналтын цэс
- Алхам 7:
- Алхам 8:
- Алхам 9:
- Алхам 10:
- Алхам 11: Arduino ашиглан SD картны модулийн мэдээлэлд хандах
- Алхам 12: Дүгнэлт
Видео: Arduino -ийн температур мэдрэгчийг COVID 19: 12 алхамд хэрэглэсэн (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:01
Arduino -ийн температур мэдрэгч нь хүний биеийн процессорын температурыг хэмжихийг хүсдэг үндсэн элемент юм.
Arduino -тай температур мэдрэгч нь дулааны түвшинг хүлээн авах, хэмжихийн тулд холбоо барих эсвэл ойрхон байх ёстой. Термометр ингэж ажилладаг.
Эдгээр төхөөрөмжүүд нь өвчтэй хүмүүсийн биеийн температурыг хэмжихэд маш их ашиглагддаг, учир нь температур нь хэвийн бус байдал, өвчин эмгэгийн үед хүний биед өөрчлөлт ордог анхны хүчин зүйлүүдийн нэг юм.
Хүний биеийн температурыг өөрчилдөг өвчний нэг бол COVID 19. Тиймээс бид гол шинж тэмдгүүдийг танилцуулж байна.
Ханиалгах Ядаргаа Амьсгалахад хэцүү (Хүнд тохиолдолд) Халуурах нь халуурах нь биеийн температур нэмэгдэх шинж тэмдэг юм. Энэ өвчний үед бид эдгээр шинж тэмдгийг байнга хянаж байх хэрэгтэй.
Тиймээс бид температурыг хянах төсөл боловсруулж, Arduino -той температур мэдрэгч ашиглан JLCPCB Datalogger -ээр дамжуулан энэ мэдээллийг санах ойн карт дээр хадгалах болно.
Тиймээс, энэ нийтлэлээс та дараахь зүйлийг сурах болно.
- Arduino -тай температур мэдрэгчтэй JLCPCB Datalogger хэрхэн ажилладаг вэ?
- Arduino -тай температур мэдрэгч хэрхэн ажилладаг вэ?
- DS18B20 температур мэдрэгч нь Arduino -той хэрхэн ажилладаг вэ?
- Олон функцтэй товчлууруудыг ашиглана уу.
Дараа нь бид Arduino температур мэдрэгч ашиглан JLCPCB Datalogger -ийг хэрхэн хөгжүүлэхээ танд үзүүлэх болно.
Хангамж
Ардуино НҮБ
JLCPCB хэвлэмэл хэлхээний самбар
DS18B20 температур мэдрэгч
Arduino Nano R3
Үсрэгчид
LCD дэлгэц 16 x 2
Товчлуурын товчлуур
1kR эсэргүүцэл
Arduino -д зориулсан SD картны модуль
Алхам 1: Arduino ашиглан температур мэдрэгч бүхий JLCPCB мэдээллийн каталогийг барьж байгуулах
Өмнө дурьдсанчлан, төсөл нь Arduino ашиглан температур мэдрэгч бүхий JLCPCB мэдээллийн каталог үүсгэхээс бүрдэх бөгөөд энэхүү өгөгдлөөр дамжуулан бид эмчлүүлж буй өвчтөний температурыг хянах боломжтой болно.
Тиймээс хэлхээг дээрх зурагт үзүүлэв.
Тиймээс таны харж байгаагаар энэ хэлхээнд өвчтөний температурын уншилтыг хэмжих үүрэгтэй Arduino -той DS18B20 температур мэдрэгч байдаг.
Нэмж дурдахад Arduino Nano нь энэхүү өгөгдлийг цуглуулж SD картны модулийн санах ойн картанд хадгалах үүрэгтэй болно.
Мэдээлэл бүрийг тухайн цаг хугацаандаа хадгалах бөгөөд үүнийг RTC DS1307 модулиас унших болно.
Тиймээс Arduino -тай температур мэдрэгчийн өгөгдлийг хадгалахын тулд хэрэглэгч 16x2 LCD дэлгэц бүхий хяналтын цэсээр дамжуулан процессыг гүйцэтгэх ёстой.
Алхам 2:
Зураг 2 -т 16x2 хэмжээтэй LCD дэлгэц дээр харуулсны дагуу товчлуур бүр нь сонголтыг удирдах үүрэгтэй.
Сонголт бүр нь доор үзүүлсэн шиг систем дэх функцийг гүйцэтгэх үүрэгтэй.
- M сонголт нь санах ойн карт дээрх өгөгдлийг хэмжих, бүртгэх ажлыг эхлүүлэх үүрэгтэй.
- Н сонголт нь системийн цагийг тохируулах үүрэгтэй.
- O/P сонголтыг системд өгөгдөл оруулахыг баталгаажуулах эсвэл санах ойн карт руу мэдээлэл бичихийг түр зогсооход ашигладаг.
Системийн хяналтын үйл явцыг ойлгохын тулд бид доорх кодыг өгч, Arduino-тэй температур мэдрэгч бүхий JLCPCB Datalogger-ийг алхам алхамаар удирдах системийг хэлэлцэх болно.
#оруулах // DS18B20 мэдрэгчийн бүх функц бүхий номын сан
#include #include // Biblioteca I2C do LCD 16x2 #include // Biblioteca de Comunicacao I2C #include // OneWire Library for DS18B20 Sensor #include #include LiquidCrystal_I2C lcd (0x27, 16, 2); // LCD 16x2 хэмжээтэй 0x27 хийх тохиргоог хийх #ONE_WIRE_BUS 8 -ийг тодорхойлох // DS18B20 мэдрэгчийг холбох дижитал зүү // OneWire сүлжээний холболтыг OneWire oneWire (ONE_WIRE_BUS) ашиглан тодорхойлох; DallasTemperature sensor (& oneWire); DeviceAddress sensor1; MyFile файл хийх; #define Buttonmeasure 2 #deutine Buttonadjusthour 3 #deutine Buttonok 4 bool tədbir = 0, adjusthour = 0, ok = 0; bool meter_state = 0, adjusthour_state = 0, ok_state = 0; bool хэмжих_үйл явц = 0, тохируулах_үйл явц = 0; байт actualMin = 0, өмнөхMin = 0; byte actualHour = 0, өмнөхHour = 0; байт minUpdate = 0; int pinoSS = 10; // Pin 53 para Mega / Pin 10 para UNO int DataTime [7]; хүчингүй updateHour () {DS1307.getDate (DataTime); if (DataTime [5]! = minUpdate) {sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (""); lcd.setCursor (5, 0); lcd.хэвлэх (удаа); minUpdate = DataTime [5]; }} хүчингүй updateTemp () {DS1307.getDate (DataTime); if (DataTime [5]! = minUpdate) {sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.хэвлэх (удаа); lcd.setCursor (0, 1); lcd.print ("Температур:"); lcd.setCursor (14, 1); sensors.requestTemperatures (); float TempSensor = sensors.getTempCByIndex (0); lcd.print (TempSensor); minUpdate = DataTime [5]; }} void setup () {Serial.begin (9600); DS1307. эхлэх (); мэдрэгч.begin (); pinMode (pinoSS, OUTPUT); // Declara pinoSS como saída Wire.begin (); // Inicializacao da Comunicacao I2C lcd.init (); // LCD lcd.backlight хийх (); lcd.setCursor (3, 0); lcd.print ("Temp System"); lcd.setCursor (3, 1); lcd.print ("Datalogger"); саатал (2000); // Localiza e mostra enderecos dos sensors Serial.println ("Localizando DS18B20 мэдрэгч…"); Serial.print ("Мэдрэгчийн нутагшуулалт амжилттай боллоо!"); Serial.print (sensors.getDeviceCount (), DEC); Serial.println ("Мэдрэгч"); if (SD.begin ()) {// Inicializa o SD Card Serial.println ("SD Card pronto para uso."); // Imprime na tela} else {Serial.println ("SD картыг ашиглах боломжгүй"); буцах; } DS1307.getDate (DataTime); lcd.clear (); sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.хэвлэх (удаа); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); } void loop () {updateHour (); // Унших товчлуур нь хэмжүүрийг илэрхийлдэг = digitalRead (Buttonmeasure); adjusthour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok); хэрэв (арга хэмжээ == 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 ("Criou o arquivo!"); myFile = SD.open ("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt myFile.close (); } саатал (500); myFile.print ("Цаг:"); myFile.println ("Температур"); DS1307.getDate (DataTime); actualMin = өмнөхMin = DataTime [5]; sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.хэвлэх (удаа); lcd.setCursor (0, 1); lcd.print ("Температур:"); lcd.setCursor (14, 1); sensors.requestTemperatures (); float TempSensor = sensors.getTempCByIndex (0); lcd.print (TempSensor); } if (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } if (adjusthour == 1 && adjusthour_state == 0 && ted_process == 0) {adjust_process = 1; } // ----------------------------------------------- --- Хэмжих процесс --------------------------------------------- -------------- if (tədbir_үйл явц == 1) {updateTemp (); байт contMin = 0, contHour = 0; DS1307.getDate (DataTime); actualMin = DataTime [5]; // ------------------------------------------------ --------- Минут тоолох --------------------------------------- ------------------- if (actualMin! = previousMin) {contMin ++; өмнөхMin = бодитMin; } if (contMin == 5) {sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); sensors.requestTemperatures (); float TempSensor = sensors.getTempCByIndex (0); myFile.print (удаа); myFile.println (TempSensor); contMin = 0; } // ----------------------------------------------- ------------ Цаг тоолох ------------------------------------ ---------------------- if (actualHour! = previousHour) {contHour ++; previousHour = actualHour; } if (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print ("Дууссан"); lcd.setCursor (5, 1); lcd.print ("Процесс"); хэмжих_ процесс = 0; contHour = 0; } // ---------------------------------------------- Нөхцөл дата бүртгэгчийг зогсоох ---------------------------------------------- ---- if (ok == 1) {myFile.close (); lcd.clear (); lcd.setCursor (6, 0); lcd.print ("Зогссон"); lcd.setCursor (5, 1); lcd.print ("Процесс"); хэмжих_ процесс = 0; саатал (2000); lcd.clear (); DS1307.getDate (DataTime); sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.хэвлэх (удаа); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); }} // ---------------------------------------------- ------- Цагийг тохируулах ----------------------------------------- ---------------------- // Хэрэв тохируулах цаг бол (adjust_process == 1) {lcd.clear (); DS1307.getDate (DataTime); lcd.setCursor (0, 0); lcd.print ("Цагийг тохируулах:"); sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.хэвлэх (удаа); // Hour Adjust do {tədbir = digitalRead (Buttonmeasure); adjusthour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok); хэрэв (арга хэмжээ == 0 && хэмжих_стат == 1) {хэмжээс_стат = 0; } if (tədbir == 1 && tədbir_стат == 0) {DataTime [4] ++; if (DataTime [4]> 23) {DataTime [4] = 0; } хэмжих_стат = 1; sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.хэвлэх (удаа); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); } if (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } if (adjusthour == 1 && adjusthour_state == 0) {DataTime [5] ++; if (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.хэвлэх (удаа); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); adjusthour_state = 1; } if (ok == 1) {lcd.clear (); DS1307.getDate (DataTime); sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.хэвлэх (удаа); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O"); тохируулах_ процесс = 0; }} байхад (зүгээр! = 1); } // ----------------------------------------------- ------- Тохируулах цаг дуусна ---------------------------------------- -------------------}
Нэгдүгээрт, бид Arduino -ийн температур мэдрэгч бүхий JLCPCB Datalogger програмчлахад ашигладаг модулиудыг хянах, хувьсагчдыг зарлах бүх номын санг тодорхойлдог. Кодын блокыг доор харуулав.
Алхам 3:
#оруулах // DS18B20 мэдрэгчийн бүх функц бүхий номын сан
#include #include // Biblioteca I2C do LCD 16x2 #include // Biblioteca de Comunicacao I2C #include // DS18B20 мэдрэгчийн OneWire номын сан #оруулах #LiquidCrystal_I2C lcd (0x27, 16, 2); // LCD 16x2 хэмжээтэй 0x27 хийх тохиргоог хийх #ONE_WIRE_BUS 8 -ийг тодорхойлох // DS18B20 мэдрэгчийг холбох дижитал зүү // OneWire -ийн OneWire сүлжээний холболтыг тодорхойлох OneWire oneWire (ONE_WIRE_BUS); DallasTemperature sensor (& oneWire); DeviceAddress sensor1; MyFile файл хийх; #define Buttonmeasure 2 #deutine Buttonadjusthour 3 #deutine Buttonok 4 bool tədbir = 0, adjusthour = 0, ok = 0; bool meter_state = 0, adjusthour_state = 0, ok_state = 0; bool хэмжих_үйл явц = 0, тохируулах_үйл явц = 0; байт actualMin = 0, өмнөхMin = 0; byte actualHour = 0, өмнөхHour = 0; байт minUpdate = 0; int pinoSS = 10; // Pin 53 para Mega / Pin 10 para UNO int DataTime [7];
Үүний дараа бид хоосон тохиргооны функцтэй болно. Энэ функц нь доор үзүүлсэн шиг тээглүүр болон төхөөрөмжийг эхлүүлэх тохиргоог хийхэд ашиглагддаг.
хүчингүй тохиргоо ()
{Serial.begin (9600); DS1307. эхлэх (); мэдрэгч.begin (); pinMode (pinoSS, OUTPUT); // Declara pinoSS como saída Wire.begin (); // Inicializacao da Comunicacao I2C lcd.init (); // LCD lcd.backlight хийх (); lcd.setCursor (3, 0); lcd.print ("Temp System"); lcd.setCursor (3, 1); lcd.print ("Datalogger"); саатал (2000); // Localiza e mostra enderecos dos sensors Serial.println ("Localizando DS18B20 мэдрэгч…"); Serial.print ("Мэдрэгчийн нутагшуулалт амжилттай боллоо!"); Serial.print (sensors.getDeviceCount (), DEC); Serial.println ("Мэдрэгч"); if (SD.begin ()) {// Inicializa o SD Card Serial.println ("SD Card pronto para uso."); // Imprime na tela} else {Serial.println ("SD картыг ашиглах боломжгүй"); буцах; } DS1307.getDate (DataTime); lcd.clear (); sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.хэвлэх (удаа); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); }
Нэгдүгээрт, цуваа холбоо, бодит цагийн цаг, Arduino DS18B20-ийн температур мэдрэгчийг эхлүүлж, төхөөрөмжийг эхлүүлж, туршсаны дараа цэсийн сонголттой зурвасыг 16x2 LCD дэлгэц дээр хэвлэв. Энэ дэлгэцийг 1 -р зурагт үзүүлэв.
Алхам 4:
Үүний дараа систем нь цагийг уншиж, updateHour функцийг дуудаж утгыг шинэчилдэг. Тиймээс энэ функц нь цагийн утгыг минут тутамд танилцуулах зорилготой юм. Функцийн кодын блокыг доор харуулав.
хүчингүй updateHour ()
{DS1307.getDate (DataTime); if (DataTime [5]! = minUpdate) {sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.print (""); lcd.setCursor (5, 0); lcd.хэвлэх (удаа); minUpdate = DataTime [5]; }}
Алхам 5:
Хэрэглэгч цагийг шинэчлэхээс гадна гурван товчлуурын аль нэгийг сонгож, өвчтөнийг Arduino ашиглан температур мэдрэгчээр хянах боломжтой. Уг хэлхээг дээрх зурагт үзүүлэв.
Алхам 6: JLCPCB мэдээллийн сангийн хяналтын цэс
Нэгдүгээрт, хэрэглэгч системийн цагийг шалгаж, тохируулах ёстой. Энэ процессыг хоёр дахь товчлуур дарагдсан үед гүйцэтгэнэ.
Товчлуурыг дарахад дараах дэлгэц гарч ирэх бөгөөд үүнийг дээрх зурагт үзүүлэв.
Алхам 7:
Энэ дэлгэцээс хэрэглэгч Arduino -ийн 2, 3 дижитал тээглүүрт холбогдсон товчлууруудаас цаг, минутын утгыг оруулах боломжтой болно. Дээрх зурган дээр товчлууруудыг харуулав.
Цагийг хянах кодын хэсгийг доор харуулав.
хэрэв (adjusthour == 0 && adjusthour_state == 1)
{adjusthour_state = 0; } if (adjusthour == 1 && adjusthour_state == 0 && ted_process == 0) {adjust_process = 1; }
Цагийн товчлуурыг дарж, хэмжүүрийн_хувьсагчийн хувьсагчийг 0 болгож тохируулах үед нөхцөл үнэн байх бөгөөд тохируулгын_процессийн хувьсагчийг 1 болгоно. Түүний утга 0 байх үед систем нь хэрэглэгчийг цаг тохируулах цэс рүү оруулах боломжийг олгоно. Тиймээс, adjust_process хувьсагч 1 гэсэн утгыг хүлээн авсны дараа систем нь цаг тохируулах нөхцлийг оруулна. Энэ кодын блокыг доор харуулав.
// ------------------------------------------------ ----- Цагийг тохируулах ------------------------------------------- --------------------
// Тохируулах цаг, хэрэв (adjust_process == 1) {lcd.clear (); DS1307.getDate (DataTime); lcd.setCursor (0, 0); lcd.print ("Цагийг тохируулах:"); sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.хэвлэх (удаа); // Hour Adjust do {tədbir = digitalRead (Buttonmeasure); adjusthour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok); хэрэв (арга хэмжээ == 0 && хэмжих_стат == 1) {хэмжээс_стат = 0; } if (tədbir == 1 && tədbir_стат == 0) {DataTime [4] ++; if (DataTime [4]> 23) {DataTime [4] = 0; } хэмжих_стат = 1; sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.хэвлэх (удаа); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); } if (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } if (adjusthour == 1 && adjusthour_state == 0) {DataTime [5] ++; if (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.хэвлэх (удаа); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); adjusthour_state = 1; } if (ok == 1) {lcd.clear (); DS1307.getDate (DataTime); sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.хэвлэх (удаа); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O"); тохируулах_ процесс = 0; }} байхад (зүгээр! = 1); }
Энэ тохиолдолд систем нь Зураг 4 -т үзүүлсэн мессежийг харуулах бөгөөд дараа нь утгыг дотоод гогцоонд тохируулахыг хүлээнэ.
Энэ нь товчлуурыг нэгээс олон функцэд ашиглах боломжийг олгодог бөгөөд системийн нарийн төвөгтэй байдлыг бууруулдаг.
Ийм байдлаар хэрэглэгч цаг, минутын утгыг тохируулж, Ok товчлуурыг дарахад систем дэх өгөгдлийг хадгалах болно.
Таны харж байгаагаар систем доор үзүүлсэн шиг 3 товчлуурыг унших болно.
хэмжих = digitalRead (Buttonmeasure);
adjusthour = digitalRead (Buttonadjusthour); ok = digitalRead (Buttonok);
Хэмжих товчлуур (Buttonmeasure) нь үүргээ өөрчилсөн болохыг анхаарна уу. Доор үзүүлсэн шиг цагийн утгыг тохируулахын тулд дараах хоёр нөхцөл ижил төстэй бөгөөд дээр харуулсан шиг цаг, минутыг тохируулахад ашигладаг.
хэрэв (арга хэмжээ == 0 && хэмжих_стат == 1)
{арга хэмжээ_стат = 0; } if (tədbir == 1 && tədbir_стат == 0) {DataTime [4] ++; if (DataTime [4]> 23) {DataTime [4] = 0; } хэмжих_стат = 1; sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.хэвлэх (удаа); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); } if (adjusthour == 0 && adjusthour_state == 1) {adjusthour_state = 0; } if (adjusthour == 1 && adjusthour_state == 0) {DataTime [5] ++; if (DataTime [5]> 59) {DataTime [5] = 0; } sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 1); lcd.хэвлэх (удаа); DS1307.setDate (DataTime [0], DataTime [1], DataTime [2], DataTime [3], DataTime [4], DataTime [5], 00); adjusthour_state = 1; }
Тиймээс хоёр товчлуурын аль нэгийг дарах бүрт DataTime векторын 4 ба 5 -р байрлалын утгыг өөрчлөх бөгөөд хоёрдугаарт эдгээр утгыг DS1307 санах ойд хадгалах болно.
Тохируулга хийсний дараа хэрэглэгч процессыг дуусгахын тулд Ok товчлуур дээр дарах ёстой. Энэ үйл явдал тохиолдоход систем нь дараах кодын мөрүүдийг гүйцэтгэх болно.
хэрэв (OK == 1)
{lcd.clear (); DS1307.getDate (DataTime); sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (0, 0); lcd.хэвлэх (удаа); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O"); тохируулах_ процесс = 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 ("Criou o arquivo!"); myFile = SD.open ("temp.txt", FILE_WRITE); // Cria / Abre arquivo.txt myFile.close (); } саатал (500); myFile.print ("Цаг:"); myFile.println ("Температур"); DS1307.getDate (DataTime); actualMin = өмнөхMin = DataTime [5]; sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); lcd.clear (); lcd.setCursor (5, 0); lcd.хэвлэх (удаа); lcd.setCursor (0, 1); lcd.print ("Температур:"); lcd.setCursor (14, 1); sensors.requestTemperatures (); float TempSensor = sensors.getTempCByIndex (0); lcd.print (TempSensor); }
Дээрх код хэсэгт систем нь хэмжигдэхүүн_процесс хувьсагчид 1 гэсэн утгыг өгнө. Энэ нь өгөгдлийг SD карт дээр хадгалах боломжийг олгодог.
Нэмж дурдахад систем нь өгөгдлийн бүртгэл бүхий текст файл байгаа эсэхийг шалгаж үзэх болно. Хэрэв файл байгаа бол систем нь устгаж, өгөгдлийг хадгалах шинэ файл үүсгэх болно.
Үүний дараа энэ нь хоёр багана үүсгэх болно: нэг нь цагийн хувьд, нөгөө нь текст файл доторх температурын хувьд.
Үүний дараа дээрх зурагт үзүүлсэн шиг цаг, температурыг LCD дэлгэц дээр харуулна.
Үүний дараа кодын урсгал нь дараах програмын блокыг гүйцэтгэх болно.
хэрэв (хэмжих_ процесс == 1)
{updateTemp (); байт contMin = 0, contHour = 0; DS1307.getDate (DataTime); actualMin = DataTime [5]; // ------------------------------------------------ --------- Минут тоолох --------------------------------------- ------------------- if (actualMin! = previousMin) {contMin ++; өмнөхMin = бодитMin; } if (contMin == 5) {sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); sensors.requestTemperatures (); float TempSensor = sensors.getTempCByIndex (0); myFile.print (удаа); myFile.println (TempSensor); contMin = 0; } // ----------------------------------------------- ------------ Цаг тоолох ------------------------------------ ---------------------- if (actualHour! = previousHour) {contHour ++; previousHour = actualHour; } if (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print ("Дууссан"); lcd.setCursor (5, 1); lcd.print ("Процесс"); хэмжих_ процесс = 0; contHour = 0; } // ---------------------------------------------- Нөхцөл өгөгдөл бүртгэгчийг зогсоох -----
Нэгдүгээрт, updateTemp () функцийг гүйцэтгэх болно. Энэ нь updateHour () функцтэй төстэй; Гэсэн хэдий ч энэ нь температурыг 1 минут тутамд харуулдаг.
Үүний дараа систем нь бодит цагийн цагны мэдээллийг цуглуулж, одоогийн минутын утгыг currentMin хувьсагчид хадгалах болно.
Дараа нь доорх нөхцлийн дагуу min хувьсагч өөрчлөгдсөн эсэхийг шалгах болно
хэрэв (actualMin! = өмнөхMin)
{үргэлжилсэн ++; өмнөхMin = бодитMin; }
Тиймээс, хэрэв одоогийн минутын хувьсагч нь өмнөх утгаасаа ялгаатай байвал энэ нь утга өөрчлөгдсөн гэсэн үг бөгөөд ингэснээр нөхцөл үнэн болж, минутын тооллын утга нэмэгдэх болно (contMin) болон одоогийн утга өмнөх утгыг хадгалахын тулд өмнөх хувьсагчид хуваарилагдах болно.
Тиймээс, энэ тооны утга 5 -тай тэнцүү бол 5 минут өнгөрч, систем нь температурын шинэ заалтыг хийж, SD картны бүртгэлийн файл дахь цаг, температурын утгыг хадгалах ёстой гэсэн үг юм.
хэрэв (үргэлжлэл == 5)
{sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); sensors.requestTemperatures (); float TempSensor = sensors.getTempCByIndex (0); myFile.print (удаа); myFile.println (TempSensor); contMin = 0; }
Ийм байдлаар Arduino -ийн тусламжтайгаар температур мэдрэгч ашиглан өвчтөний температурыг хянах 5 цагийн утгыг авах хүртэл энэ үйл явц давтагдах болно.
Кодын хэсгийг доор харуулсан бөгөөд дээр дурдсан минутын тоотой төстэй байна.
// ------------------------------------------------ ----------- Цаг тоолох ------------------------------------- ---------------------
if (actualHour! = previousHour) {contHour ++; previousHour = actualHour; } if (contHour == 5) {myFile.close (); lcd.clear (); lcd.setCursor (5, 0); lcd.print ("Дууссан"); lcd.setCursor (5, 1); lcd.print ("Процесс"); хэмжих_ процесс = 0; contHour = 0; }
5 цагийн хяналт хийсний дараа систем бүртгэлийн файлыг хааж, "Дууссан процесс" гэсэн мессежийг хэрэглэгчдэд танилцуулна.
Нэмж дурдахад хэрэглэгч өгөгдөл бичихээ зогсоохын тулд Ok/Pause товчлуурыг дарж болно. Энэ тохиолдолд дараах кодын блокыг ажиллуулах болно.
// ---------------------------------------------- Нөхцөл дата бүртгэгчийг зогсоох ----------------------------------------------- ---
if (ok == 1) {myFile.close (); lcd.clear (); lcd.setCursor (6, 0); lcd.print ("Зогссон"); lcd.setCursor (5, 1); lcd.print ("Процесс"); хэмжих_ процесс = 0; саатал (2000); lcd.clear (); DS1307.getDate (DataTime); sprintf (удаа, "%02d:%02d", DataTime [4], DataTime [5]); lcd.setCursor (5, 0); lcd.хэвлэх (удаа); lcd.setCursor (0, 1); lcd.print ("1-M 2-H 3-O/P"); }
Алхам 9:
Дараа нь систем нь файлыг хааж, Зураг 8 -д үзүүлсэн шиг "Зогссон процесс" гэсэн мессежийг үзүүлэх болно.
Алхам 10:
Үүний дараа систем нь Зураг 9 -д үзүүлсэн шиг цагийн дэлгэц болон цэсийн сонголтуудыг хэвлэх болно.
Алхам 11: Arduino ашиглан SD картны модулийн мэдээлэлд хандах
Arduino ашиглан температур мэдрэгч ашиглан JLCPCB Datalogger -ийг хянах үйл явцын дараа санах ойн картыг салгаж, компьютер дээрх өгөгдөлд хандах шаардлагатай болно.
Өгөгдлийг илүү сайн харах, шинжлэхийн тулд текст файлын бүх мэдээллийг Excel рүү хуулж, хуулж, дараа нь график зурж, олж авсан үр дүнг шинжлэх боломжтой.
Алхам 12: Дүгнэлт
Arduino -тэй температур мэдрэгч бүхий JLCPCB Datalogger нь температурыг хэмжихээс гадна тодорхой хугацааны туршид өвчтөний температурын төлөв байдлын талаархи мэдээллийг бүртгэх боломжийг олгодог.
Эдгээр хадгалагдсан өгөгдлүүдийн тусламжтайгаар COVID 19 -ээр халдварласан өвчтөний биеийн температур ямар байдгийг шинжлэх, ойлгох боломжтой юм.
Үүнээс гадна температурын түвшинг үнэлж, түүний үнэ цэнийг зарим төрлийн эм хэрэглэхтэй холбож үзэх боломжтой.
Тиймээс эдгээр өгөгдлөөр дамжуулан Arduino -ийн температур мэдрэгч бүхий JLCPCB Datalogger нь эмч, сувилагчдад өвчтөний зан байдлыг судлахад туслах зорилготой юм.
Эцэст нь хэлэхэд, төслийн хөгжлийг дэмжсэн JLCPCB компанид талархал илэрхийлж, та үүнийг ашиглах боломжтой болно гэж найдаж байна
Бүх файлыг дурын хэрэглэгч татаж аваад чөлөөтэй ашиглах боломжтой.
Зөвлөмж болгож буй:
LM35 температур мэдрэгчийг Arduino -той холбох: 4 алхам
LM35 температур мэдрэгчийг Arduino -той холбох: Термометр бол температур хэмжихэд удаан хугацаанд ашиглагддаг төхөөрөмж юм. Энэхүү төсөлд бид орчин үеийн температур, температурын өөрчлөлтийг LCD дэлгэц дээр харуулах Arduino дээр суурилсан дижитал термометр хийлээ. Үүнийг унтрааж болно
DHT22 чийгшил ба температур мэдрэгчийг Arduino дээр хэрхэн ашиглах вэ: 6 алхам
DHT22 -ийн чийгшил ба температур мэдрэгчийг Arduino -той хэрхэн ашиглах вэ: Энэхүү гарын авлагад бид DHT22 -ийн чийгшил ба температур мэдрэгчийг Arduino -той хэрхэн ашиглах, OLED дэлгэц дээр утгыг харуулах талаар сурах болно
Температур мэдрэгчийг турших - Миний хувьд аль нь вэ?: 15 алхам (зурагтай)
Температур мэдрэгчийг турших - Миний хувьд аль нь вэ?: Физик тооцоололд шинээр орж ирж буй хүмүүсийн туршиж үзэхийг хүсч буй анхны мэдрэгчийн нэг бол температурыг хэмжих зүйл юм. Хамгийн алдартай дөрвөн мэдрэгч бол аналог гаралттай TMP36 бөгөөд дижитал хөрвүүлэгчийн аналог болох DS18B20 юм
Төмөр замыг хамгаалахын тулд Arduino дээрх температур, борооны ус, чичиргээ мэдрэгчийг ашиглах: 8 алхам (зурагтай)
Төмөр замыг хамгаалахын тулд Arduino дээрх температур, борооны ус, чичиргээ мэдрэгчийг ашиглах: Орчин үеийн нийгэмд төмөр замын зорчигчдын тоо нэмэгдэх нь төмөр замын компаниуд эрэлт хэрэгцээг хангахын тулд сүлжээг оновчтой болгохын тулд илүү их зүйлийг хийх ёстой гэсэн үг юм. Энэхүү төсөлд бид температур, борооны ус, чичиргээ мэдрэгч хэрхэн ажилладагийг бага хэмжээгээр харуулах болно
5 транзисторын PIC програмист *Схемийг 9 -р алхамд нэмсэн !: 9 алхам
5 транзистор PIC програмист *Схемийг 9 -р алхамд нэмсэн! Энэ бол Дэвид Тайтын сонгодог дизайны өөр хувилбар юм. Энэ нь маш найдвартай бөгөөд үнэгүй програмчлах сайн програм хангамж байдаг. Би IC-Prog болон PICpgm програмистуудад дуртай. Хамгийн сайхан нь энэ