- Mga Materyal na Kinakailangan:
- Diagram ng Circuit:
- Paliwanag ng Arduino Program:
- Paggawa ng Paliwanag:
Bilang mga Engineer / Developer palagi kaming umaasa sa nakolektang data upang magdisenyo o mapabuti ang isang system. Ang pag-record ng data at pag-aaral ng mga ito ay isang pangkaraniwang kasanayan sa karamihan ng mga industriya, dito itinatayo namin ang Arduino Data Logger Project kung saan matututunan natin kung paano namin mai-log ang data sa isang tukoy na agwat ng oras. Gumagamit kami ng isang Arduino board upang basahin ang ilang data (narito ang temperatura, halumigmig, petsa at oras) at mai-save ang mga ito sa isang SD card at ang computer nang sabay-sabay.
Ang naka-save na data ay maaaring madaling buksan sa isang Excel Sheet para sa karagdagang pagsusuri. Upang mapanatili ang petsa at oras gagamitin namin ang sikat na module ng RTC DS3231 at upang makuha ang Temperatura at Humidity gagamitin namin ang DHT11 Sensor. Sa pagtatapos ng proyekto matututunan mo
- Paano mag-log ng data sa SD card na may mga halaga sa Petsa, Oras at sensor.
- Paano sumulat ng data nang direkta sa Excel Sheet sa PC sa pamamagitan ng serial komunikasyon.
Mga Materyal na Kinakailangan:
- Breadboard
- Arduino UNO (anumang Arduino board)
- DHT11 Temperatura sensor
- Modulong DS3231 RTC
- Module ng SD card
- SD card
- Mga kumokonekta na mga wire
- Computer / Laptop
Diagram ng Circuit:
Ang circuit Diagram para sa Arduino Temperature Logger Project na ito ay ipinapakita sa ibaba.
Tulad ng ipinakita sa circuit diagram ang mga koneksyon ay napaka-simple dahil ginamit namin ang mga ito bilang mga module na maaari naming direktang itayo ang mga ito sa isang breadboard. Ang mga koneksyon ay karagdagang naiuri sa talahanayan sa ibaba
Arduino Pin |
Module Pin |
Temperatura Sensor - DHT11 |
|
Vcc |
5V |
Gnd |
Gnd |
Nc |
Nc |
Palabas |
Pin 7 |
RTC module DS3231 |
|
Vcc |
5V |
Gnd |
Gnd |
SCL |
I-pin ang A5 |
SDA |
I-pin ang A4 |
Module ng SD card |
|
Vcc |
5V |
Gnd |
Gnd |
MISO |
Pin 12 |
MOSI |
Pin 11 |
SCK |
Pin 13 |
CS |
Pin 4 |
Maaari mong palitan ang sensor ng temperatura ng DHT11 ng anuman sa iyong sensor na kung saan kailangan mong i-log ang mga halaga. Maaari mong suriin ang LM35 kasama ang Arduino upang mabasa ang temperatura.
Ang module ng RTC DS3231 ay naka-interfaced sa Arduino gamit ang I2C na komunikasyon (SCL, SDA) at ang module ng SD card ay interfaced gamit ang SPI Communication (MISO, MOSI, SCK, CS). Ang mga pin na 4 at 7 ay tinukoy bilang ang CS pin at output pin ng Arduino program, maaari mong baguhin ang mga ito sa anumang iba pang pin kung kinakailangan. Nauna kaming nakipag-ugnayan sa SD card sa Arduino sa proyekto ng Music player.
Paliwanag ng Arduino Program:
Kailangan nating isulat ang programa ng Arduino na maaaring gawin ang mga sumusunod.
- Basahin ang data mula sa DTH11 Sensor (o anumang iba pang data na nais mong i-log).
- Simulan ang I2C bus upang mabasa ang data mula sa module ng RTC.
- Ipasimula ang SPI bus upang mai-interface ang module ng SD card sa Arduino.
- Itago ang Petsa, Oras, Temperatura at Humidity sa SD card.
- Itabi ang Petsa, Oras, Temperatura at Humidity sa isang Excel Sheet na tumatakbo sa isang computer / Laptop.
Ang mga hakbang sa itaas ay maaaring maging kumplikado ngunit ang mga ito ay napakadali dahil mayroon kaming mga aklatan upang gawin ang mahirap na trabaho para sa amin. Kailangan mong i-download ang sumusunod na dalawang aklatan
- DHT11 Sensor Library mula sa GitHub
- DS3231 RTC module library mula sa Rinky-Dink Electronics
Kapag na-download mo na ang silid-aklatan idagdag ang mga ito sa iyong Arduino IDE sa pamamagitan ng pagsunod
Sketch-> Isama ang Library -> Magdagdag.ZIP Library
Upang mapakain ang data mula sa Arduino nang buhay sa isang sheet ng Excel sa computer kakailanganin din naming mag-install ng software na tinatawag na PLX-DAQ na ibinigay ng Parallax Inc. Sundin ang link upang mai-download ang file at mai-install ang mga ito batay sa iyong operating system. Ito ay dapat lumikha ng isang folder na pinangalanang PLS-DAQ sa iyong desktop. Aalagaan namin ito sa paglaon sa aming seksyon ng pagtatrabaho.
Ngayon pagkatapos magdagdag ng parehong mga aklatan at pagkatapos mai-install ang software, maaari mong gamitin ang Kumpletong Code (ibinigay sa ilalim ng tutorial) at i-upload ang mga ito sa iyong Arduino. Sinubukan ko ang aking makakaya upang mapanatili ang code nang kasing simple hangga't maaari at ang mga paliwanag ay ibinibigay din sa pamamagitan ng mga seksyon ng komento. Dagdag dito, ipapaliwanag ko ang mahahalagang mga segment sa ibaba.
1. Pagbasa ng Data mula sa DS3231:
Ang DS3231 ay isang RTC (Real Time Clock) na module. Ginagamit ito upang mapanatili ang petsa at oras para sa karamihan ng mga proyekto sa Elektronika. Ang module na ito ay mayroong sariling coin cell power supply na ginagamit kung saan pinapanatili nito ang petsa at oras kahit na ang pangunahing lakas ay tinanggal o ang MCU ay nawala kahit na isang hard reset. Kaya't sa sandaling itinakda namin ang petsa at oras sa modyul na ito ay susubaybayan ito palagi.
Napakadali ng paggamit ng modyul na ito dahil sa silid-aklatan na ibinigay ng Arduino.
// Init ang DS3231 gamit ang interface ng hardware DS3231 rtc (SDA, SCL); walang bisa ang Initialize_RTC () {// Initialize the rtc object rtc.begin (); // #### ang mga sumusunod na linya ay maaaring maging hindi kumpleto upang maitakda ang petsa at oras sa unang pagkakataon ### / * rtc.setDOW (FRIDAY); // Itakda ang Araw-ng-Linggo sa LINGGO rtc.setTime (18, 46, 45); // Itakda ang oras sa 12:00:00 (24hr format) rtc.setDate (6, 30, 2017); // Itakda ang petsa sa Enero 1, 2014 * /}
Tandaan: Kapag ginagamit ang modyul na ito sa kauna-unahang pagkakataon kailangan mong itakda ang petsa at oras. Maaari itong magawa sa pamamagitan lamang ng pag-aalis ng mga komento tulad ng nabanggit sa itaas at pagsulat ng petsa at oras. Siguraduhin na ibalik mo ang puna sa kanila at i-upload ito, kung hindi sa tuwing pinapatakbo mo ang board ang petsa at oras ay maitatakda muli. Maaari mo ring gamitin ang RTC IC DS1307 para sa pagbabasa ng oras sa Arduino.
2. Pagbasa ng Data mula sa DHT11:
Ang DHT11 ay isang Temperatura dumating sensor ng Humidity. Nagpapadala ito ng mga halaga ng temperatura at halumigmig bilang isang 8-bit na data serial sa pamamagitan ng output pin ng module. Binabasa ng aklatan ang data na ito sa pamamagitan ng paggamit ng software serial function ng Arduino.
#define DHT11_PIN 7 // Ang sensor pin output ay konektado sa pin 7 dht DHT; // Sensor object na pinangalanan bilang DHT void Read_DHT11 () {int chk = DHT.read11 (DHT11_PIN); }
Dito ko nakakonekta ang output pin sa pin 7 bilang halimbawa maaari kang pumili ng anumang pin na sumusuporta sa Software Serial. Pagtawag sa DHT.read (pin number); babasahin ang halaga ng temperatura at halumigmig at iimbak ito sa parameter na DHT.temperature at DHT.Kumpleto ayon sa pagkakabanggit. Suriin din ang batay sa DHT11 na Batay sa Temperatura ng Arduino.
3. Pinasimulan ang module ng SC card:
void Initialize_SDcard () {// tingnan kung ang card ay naroroon at maaaring mapasimulan: kung (! SD.begin (chipSelect)) {Serial.println ("Nabigo ang card, o hindi naroroon"); // huwag ka nang gumawa ng anumang higit pa: bumalik; } // buksan ang file. tandaan na ang isang file lamang ang maaaring buksan nang paisa-isa, // kaya kailangan mong isara ang isang ito bago buksan ang isa pa. File dataFile = SD.open ("LoggerCD.txt", FILE_WRITE); // kung ang file ay magagamit, sumulat dito: kung (dataFile) {dataFile.println ("Petsa, Oras, Temperatura, Humidity"); // Isulat ang unang hilera ng excel file dataFile.close (); }}
Ang paggamit ng isang SD card na may Arduino ay madali dahil sa library ng SD card na idaragdag sa Arduino IDE bilang default. Sa pagpapaandar ng SD card na gawing pasiya lilikha kami ng isang file ng teksto na pinangalanang "LoggerCD.txt" at isulat ang unang hilera ng aming nilalaman. Pinaghihiwalay namin ang mga halagang ito sa pamamagitan ng paggamit ng isang "," bilang isang delimiter. Ibig sabihin kapag inilagay ang isang kuwit nangangahulugan ito na kailangan nating lumipat sa susunod na cell sa sheet ng Excel.
4. Pagsulat ng Data sa SD card
walang bisa ang Writing_SDcard () {// buksan ang file. tandaan na ang isang file lamang ang maaaring buksan nang sabay-sabay, // kaya kailangan mong isara ang isang ito bago buksan ang isa pa. File dataFile = SD.open ("LoggerCD.txt", FILE_WRITE); // kung ang file ay magagamit, sumulat dito: kung (dataFile) {dataFile.print (rtc.getDateStr ()); // Petsa ng tindahan sa data ng SD cardFile.print (","); // Lumipat sa susunod na haligi gamit ang isang "," dataFile.print (rtc.getTimeStr ()); // Petsa ng tindahan sa data ng SD cardFile.print (","); // Lumipat sa susunod na haligi gamit ang isang "," dataFile.print (DHT.temperature); // Petsa ng tindahan sa data ng SD cardFile.print (","); // Lumipat sa susunod na haligi gamit ang isang "," dataFile.print (DHT.humidity); // Petsa ng tindahan sa data ng SD cardFile.print (","); // Lumipat sa susunod na haligi gamit ang isang "," dataFile.println (); // End of Row lumipat sa susunod na row dataFile.close ();// Close the file} else Serial.println ("OOPS !! Nabigo ang pagsulat ng SD card"); }
Tulad ng sinabi nang mas maaga ang aming hangarin ay i- save ang Petsa, Oras, Temperatura at Humidity sa aming SD card. Sa tulong ng DS3231 library at ng DHT11 library ang aming Arduino ay may kakayahang basahin ang lahat ng apat na mga parameter na ito at maiimbak ang mga ito sa mga sumusunod na parameter tulad ng ipinakita sa talahanayan sa ibaba
Petsa |
rtc.getDateStr ()); |
Oras |
rtc.getTimeStr ()); |
Temperatura |
DHT.temperature |
Humidity |
DHT.humidity |
Ngayon ay maaari naming direktang gamitin ang mga parameter na ito upang maiimbak ang mga ito sa SD card gamit ang print line
dataFile.print (parameter);
Maaari mong mapansin na ang bawat parameter ay pinaghihiwalay ng isang kuwit upang gawin itong mababasa at isang dataFile.println (); ay ginagamit upang ipahiwatig ang pagtatapos ng linya.
5. Pagsulat ng Data sa PLX-DAQ
Ang PLX-DAQ ay ang software ng Microsoft Excel Plug-in na tumutulong sa amin na sumulat ng mga halaga mula sa Arduino upang direkta sa isang file na Excel sa aming Laptop o PC. Ito ang aking personal na paborito dahil sa dalawang kadahilanan:
1. Maaari mong isulat at subaybayan ang data nang sabay at nagbibigay sa amin ng paraan upang mailagay ang mga ito bilang mga graph.
2. Hindi mo kailangan ng RTC Module tulad ng DS3231 upang subaybayan ang petsa at oras. Maaari mo lamang gamitin ang petsa at oras na tumatakbo sa iyong Laptop / computer at i-save ang mga ito nang direkta sa Excel.
Upang magamit ang software na ito sa Arduino kailangan naming ipadala ang data nang serial sa isang tiyak na pattern tulad ng pagpapakita ng halaga sa serial monitor. Ang mga pangunahing linya ay ipinaliwanag sa ibaba:
walang bisa ang Initialize_PlxDaq () {Serial.println ("CLEARDATA"); // nililimas ang anumang natitirang data mula sa mga nakaraang proyekto Serial.println ("LABEL, Petsa, Oras, Temperatura, Humidity"); // laging isulat ang LABEL, upang ipahiwatig ito bilang unang linya} walang bisa ang Writing_PlxDaq () {Serial.print ("DATA"); // palaging isulat ang "DATA" upang Inidicate ang mga sumusunod bilang Data Serial.print (","); // Lumipat sa susunod na haligi gamit ang isang "," Serial.print ("DATE"); // Petsa ng tindahan sa Excel Serial.print (","); // Lumipat sa susunod na haligi gamit ang isang "," Serial.print ("TIME"); // Petsa ng tindahan sa Excel Serial.print (","); // Lumipat sa susunod na haligi gamit ang isang "," Serial.print (DHT.temperature); // Petsa ng tindahan sa Excel Serial.print (","); // Lumipat sa susunod na haligi gamit ang isang "," Serial.print (DHT.humidity);// Petsa ng tindahan sa Excel Serial.print (","); // Lumipat sa susunod na haligi gamit ang isang "," Serial.println (); // End of Row lumipat sa susunod na hilera}
Makikilala ng software ang mga keyword tulad ng LABEL, DATA, TIME, DATE atbp Tulad ng ipinapakita sa pagpapaandar na Initialize ang keyword na "LABEL" ay ginagamit upang isulat ang unang ROW ng Excel sheet. Sa paglaon ng function na Sumulat ay ginagamit namin ang keyword na "DATA" upang ipahiwatig na ang sumusunod na impormasyon ay dapat isaalang-alang bilang DATA. Upang ipahiwatig na kailangan naming lumipat sa susunod na hilera kailangan naming gumamit ng kuwit (","). Upang ipahiwatig ang pagtatapos ng hilera kailangan naming magpadala ng isang Serial.println ();.
Tulad ng sinabi nang mas maaga maaari naming isulat ang petsa at oras ng system sa pamamagitan ng pagpapadala ng mga keyword na "DATE" at "TIME" ayon sa ipinakita sa itaas.
Tandaan: Huwag gumamit ng serial monitor kapag ginagamit ang PLX_DAQ software na ito.
Paggawa ng Paliwanag:
Ang pagtatrabaho ng Arduino Data Logger ay simple. Kapag handa na ang hardware at ang software ay oras na upang sunugin ang programa sa iyong Arduino Board. Sa lalong madaling ma-upload ang iyong programa, ang iyong mga halagang temperatura at halumigmig ay magsisimulang maiimbak sa iyong SD card. Kailangan mong sundin ang mga hakbang sa ibaba upang paganahin ang PLX-DAQ upang mai-log ang sa Excel sheet sa computer.
Hakbang 1: Buksan ang file na "Plx-Daq Spreadsheet" na nilikha sa iyong desktop habang naka-install.
Hakbang 2: Kung may isang bloke sa Seguridad, mag-click sa Opsyon-> Paganahin ang nilalaman -> Tapusin -> OK upang makuha ang sumusunod na screen.
Hakbang 3: Piliin ngayon ang rate ng baud bilang "9600" at ang port kung saan nakakonekta ang iyong Arduino at mag-click sa Connect. Ang iyong mga halaga ay dapat magsimula upang mai-log tulad ng ipinakita sa larawan sa ibaba.
Maaari mong iwanang bukas ang excel sheet na ito at subaybayan ang mga halaga habang naka-log sila. Dahil nangyayari ito ang aming SD card ay naka-save din ng parehong halaga. Upang suriin ay gumagana lamang tanggalin ang SD card at buksan ito sa iyong Computer. Dapat kang makahanap ng isang file ng teksto na pinangalanang "LoggerCD.txt" dito. Kapag binuksan ito ay magmukhang ganito.
Ang data na ito ay may data, ngunit mahirap itong pag-aralan ang mga ito sa isang notepad. Kaya't maaari nating buksan ito sa Excel bilang isang file ng CSV (pinaghiwalay na mga halaga ng Comma) na file, sa gayon ginagawa itong mas epektibo. Upang buksan sa excel
1. Buksan ang Excel. Mag-click sa File-> Buksan at piliin ang "Lahat ng file" sa kanang sulok sa ibaba at piliin ang file na "LoggerCD" mula sa SD card. Bubuksan nito ang isang wizard ng pag-import ng teksto.
2. Mag-click sa "Susunod" at piliin ang kuwit bilang isang delimiter. Mag-click muli sa "Susunod". Pagkatapos Tapusin.
3. Ngayon ang iyong mga halaga ay bubuksan sa isang file na Excel tulad ng ipinakita sa ibaba
Na-log ko ang mga halaga para sa bawat 5 segundo; maaari mong i-log ang mga ito para sa anumang ninanais na oras sa pamamagitan ng pagbabago ng pagkaantala ng pagpapaandar sa programa. Para sa detalyadong pag-unawa sa nagtatrabaho mangyaring panoorin ang video sa ibaba.
Inaasahan kong nagustuhan mo ang proyekto, kung mayroon kang alinlangan na isulat ang mga ito sa seksyon ng komento sa ibaba at tutulungan kita.
Pagpapaganda ng Bonus- Wireless Data Logging Gamit ang Arduino:
Kapag nagtagumpay ka hanggang sa puntong ito, pagkatapos ay may kaunting mga pagsulong at pagdaragdag lamang ng ilang mga linya ng code maaari kang mag-log ng data nang wireless.
Ikonekta lamang ang isang Bluetooth Device tulad ng HC-05 at isulat ang data sa PLX-DAQ sa pamamagitan ng Bluetooth sa halip na Serial. Iyon ang papalit sa Serial.print (parameter); gamit ang BluetoothName.print (parameter); at ikonekta ang iyong Laptop sa iyong Bluetooth Module isang piliin ang COM port kung saan nakakonekta ang iyong Laptops Bluetooth at Taadaaa…… Mayroon kang isang gumaganang isang Wireless Data Logging System sa walang oras.