Cov txheej txheem:

Yuav Ua Li Cas Txheeb Xyuas Cov Ntaub Ntawv rau Qhov Kub, PH, thiab Cov Pa Dej Daws: 11 Kauj Ruam (nrog Duab)
Yuav Ua Li Cas Txheeb Xyuas Cov Ntaub Ntawv rau Qhov Kub, PH, thiab Cov Pa Dej Daws: 11 Kauj Ruam (nrog Duab)

Video: Yuav Ua Li Cas Txheeb Xyuas Cov Ntaub Ntawv rau Qhov Kub, PH, thiab Cov Pa Dej Daws: 11 Kauj Ruam (nrog Duab)

Video: Yuav Ua Li Cas Txheeb Xyuas Cov Ntaub Ntawv rau Qhov Kub, PH, thiab Cov Pa Dej Daws: 11 Kauj Ruam (nrog Duab)
Video: Saib Mis paub Poj niam (hluas nkauj) tus yam ntxwv lub siab 2024, Hlis ntuj nqeg
Anonim
Image
Image
Duab
Duab

Lub Hom Phiaj:

  • Ua cov ntaub ntawv logger rau ≤ $ 500. Nws khaws cov ntaub ntawv rau qhov ntsuas kub, pH, thiab ua nrog lub sijhawm thim thiab siv I2C kev sib txuas lus.
  • Vim li cas I2C (Inter-Integrated Circuit)? Ib tus tuaj yeem teeb tsa ntau qhov ntsuas hauv tib kab ntawv uas txhua tus ntawm lawv muaj qhov chaw nyob tshwj xeeb.

Kauj ruam 1:

Kauj Ruam 2: Yuav Cov Khoom Hauv qab no:

Yuav Cov Khoom Hauv qab no
Yuav Cov Khoom Hauv qab no
  1. Arduino MEGA 2560, $ 35,
  2. Lub zog hloov pauv rau Arduino board, $ 5.98,
  3. LCD module I2C (zaub), $ 8.99,
  4. Sijhawm Sijhawm (RTC) tawg, $ 7.5,
  5. MicroSD daim npav tshem tawm pawg thawj coj, $ 7.5,
  6. 4GB SD daim npav, $ 6.98,
  7. Waterproof DS18B20 Digital sensor, $ 9.95,
  8. Kev sojntsuam pH + Cov Khoom + Txheem tsis, $ 149.15,
  9. Ua sojntsuam + Cov Khoom + Txheem tsis, $ 247.45,
  10. Breadboard, jumper cable, $ 7.98,
  11. (Tsis teb los tau) Voltage Isolator, $ 24,

Tag nrho: $ 510.48

* Qee qhov (zoo li pawg thawj coj saib) tuaj yeem yuav los ntawm lwm tus neeg muag khoom (eBay, Suav tus muag khoom) rau tus nqi qis dua. Kev ntsuas pH thiab DO raug pom zoo kom tau txais los ntawm Atlas Kev Tshawb Fawb.

* Ib lub ntsuas ntsuas tau pom zoo los tshuaj xyuas qhov hluav taws xob thiab qhov hluav taws xob. Nws raug nqi kwv yees li $ 10-15 (https://goo.gl/iAMDJo)

Kauj Ruam 3: Kev thaiv kab hlau

Thaiv
Thaiv
  • Siv jumper/DuPont cables txuas cov khoom raws li qhia hauv daim duab hauv qab no.
  • Siv lub multimeter los tshuaj xyuas qhov kev coj ua.
  • Txheeb xyuas Qhov Zoo-Voltage Supply (VCC) thiab Av (GND) (nws yooj yim rau kev nkag siab yog tias koj tsis paub nrog Circuit Court)
  • Plug rau hauv lub hwj chim adapter thiab tshawb xyuas qhov ntsuas hluav taws xob hauv txhua ntu. Thaum ua xyem xyav, siv ntau lub ntsuas ntsuas qhov ntsuas hluav taws xob ntawm VCC thiab GND kom yog (5V)

Kauj Ruam 4: Npaj PH, Ua Cov Hluav Taws Xob, SD Card

Npaj PH, Ua Cov Hluav Taws Xob, SD Card
Npaj PH, Ua Cov Hluav Taws Xob, SD Card
  1. Hloov mus rau I2C rau pH thiab ua hluav taws xob
  2. Cov pH thiab DO tawg tawm tau xa nrog Kev sib txuas lus raws li lub hauv paus hom Kev Xa/Txais (TX/RX). Txhawm rau siv I2C hom Clock line (SCL), thiab Data line (SDA), hloov hom los ntawm (1): tsis txuas VCC, TX, RX cables, (2): dhia TX rau hauv av rau Kev Tshawb Fawb, PGND (tsis yog GND), (3) ntsaws VCC rau hauv Circuit Court, (4): tos kom LED hloov ntawm Ntsuab mus rau Xiav. Xav paub ntau ntxiv tshawb xyuas ntawm nplooj ntawv 39 (Cov Ntaub Ntawv rau pH Circuit,
  3. Ua tib theem nrog DO Circuit
  4. (yog tias koj paub yuav ua li cas rub cov qauv coj mus rau pawg thawj coj saib, koj tuaj yeem ua nws los ntawm Serial monitor)
  5. Format SD card rau FAT hom

Kauj ruam 5: Npaj Software

Npaj Software
Npaj Software
Npaj Software
Npaj Software
Npaj Software
Npaj Software
Npaj Software
Npaj Software
  1. Rub tawm Arduino Integrated Development Environment (IDE),
  2. Nruab tsev qiv ntawv rau Arduino IDE:
  3. Feem ntau ntawm lawv tuaj nrog Arduino software. LiquidCrystal_I2C.h muaj nyob ntawm GitHub
  4. Nruab tus tsav tsheb rau USB. Txog qhov tseeb Arduino, koj yuav tsis xav tau teeb tsa ib qho. Rau qhov ib txwm muaj, koj yuav tsum teeb tsa CH340 tus tsav tsheb (GitHub:
  5. Txheeb xyuas yog tias koj txuas lub rooj tsavxwm kom raug los ntawm kev ua haujlwm ntsais muag LED
  6. Yuav ua li cas thiaj nrhiav tau MAC chaw nyob ntawm 18B20 digital kub. Siv I2C lub tshuab luam ntawv qauv hauv Arduino IDE nrog rau kev sojntsuam ntsaws rau hauv. 18B20 siv ib txoj hlua I2C, yog li nws yog qhov tshwj xeeb ntawm I2C txoj kev sib txuas lus. Hauv qab no yog ib txoj hauv kev los nrhiav MAC - Kev Tswj Xyuas Kev Kho Mob ("ROM" thaum koj ua cov txheej txheem hauv qab no).

Kauj Ruam 6: Pib Coding

Pib Coding
Pib Coding
  • Luam paste cov cai hauv qab no rau Arduino IDE:
  • Los yog rub tawm cov cai (.ino) thiab lub qhov rai tshiab yuav tsum tshwm hauv Arduino IDE.

/*

Siv cov lus qhia:

1. Kub, ORP, pH logger:

2. Ruaj Ntseg Digital (SD) Shield:

Txoj cai no yuav tso tawm cov ntaub ntawv mus rau Arduino cov saib txuas. Ntaus cov lus txib rau hauv Arduino cov lej saib xyuas los tswj EZO pH Circuit hauv I2C hom.

Hloov kho los ntawm cov lus qhia qhia saum toj no, feem ntau los ntawm I2C code los ntawm Atlas-Scientific

Hloov kho zaum kawg: Lub Xya Hli 26, 2017 los ntawm Binh Nguyen

*/

#suav nrog // qhib I2C.

#define pH_address 99 // default I2C ID naj npawb rau EZO pH Circuit.

#define DO_address 97 // default I2C ID naj npawb rau EZO DO Circuit

#suav nrog "RTClib.h" // Hnub thiab sijhawm ua haujlwm siv DS1307 RTC txuas nrog ntawm I2C thiab Hlau lib

RTC_DS1307 rtc;

#suav nrog // Rau SD cov tsev qiv ntawv

#suav nrog // daim npav SD khaws cov ntaub ntawv

const int chipSelect = 53; // yuav tsum tau xam tawm rau Adafruit SD breakout //

// DO = MISO, DI = MOSI, ntawm ATmega tus pin#: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS)

char logFileName = "dataLT.txt"; // hloov logFileName txhawm rau txheeb xyuas koj qhov kev sim, rau kev xeem PBR_01_02, datalog1

ntev id = 1; // tus lej ID nkag mus rau daim ntawv xaj

#suav nrog

LiquidCrystal_I2C lcd (0x27, 20, 4);

#suav nrog

#suav nrog

#define ONE_WIRE_BUS 9 // txhais tus pin # rau qhov ntsuas kub

OneWire oneWire (ONE_WIRE_BUS);

DallasTemperature sensors (& oneWire);

DeviceAddress ProbeP = {0x28, 0xC2, 0xE8, 0x37, 0x07, 0x00, 0x00, 0xBF}; // MAC chaw nyob, tshwj xeeb rau txhua qhov kev sojntsuam

Txoj hlua dataString; // qhov sib txawv tseem ceeb khaws txhua cov ntaub ntawv

Txoj hlua dataString2; // qhov hloov pauv ib ntus kom khaws Kub/pH/DO rau luam tawm

cov ntaub ntawv computer [20]; // kev qhia los ntawm Atlas Kev Tshawb Fawb: peb ua 20 byte cov cim cim los tuav cov ntaub ntawv nkag los ntawm lub pc/mac/lwm yam.

byte tau txais_from_computer = 0; // peb yuav tsum paub pes tsawg tus cim tau txais.

byte serial_event = 0; // tus chij los teeb liab thaum cov ntaub ntawv tau txais los ntawm pc/mac/lwm yam.

byte chaws = 0; // siv los tuav I2C cov lus teb.

char pH_data [20]; // peb ua tus cim 20 byte los tuav cov ntaub ntawv nkag los ntawm pH Circuit.

byte hauv_char = 0; // siv los ua 1 byte tsis khaws hauv cov bytes los ntawm pH Circuit.

byte kuv = 0; // txee siv rau ph_data array.

int sij hawm = 1800; // siv los hloov qhov xav tau ncua nyob ntawm qhov hais kom ua xa mus rau EZO Class pH Circuit.

ntab pH_float; // ntab var siv los tuav tus ntab tus nqi ntawm pH.

char DO_data [20];

// ntab temp_C;

void teeb () // hardware initialization.

{

Serial.begin (9600); // qhib qhov chaw nres nkoj.

Wire.begin (pH_address); // qhib I2C chaw nres nkoj rau kev sojntsuam pH

Wire.begin (DO_address);

lcd.init ();

lcd.begin (20, 4);

lcd.backlight ();

lcd.home ();

lcd.print ("Nyob zoo PBR!");

lcd.setCursor (0, 1);

lcd.print ("Pib ua …");

Serial.print ("RTC yog …");

yog (! rtc.begin ())

{

Serial.println ("RTC: Lub sijhawm tiag … tsis pom");

thaum (1); // (Serial.println ("RTC: Lub sijhawm tiag tiag … FOUND"));

}

Serial.println ("RUNNING");

Serial.print ("Lub Sijhawm Tiag …");

yog (! rtc.isrunning ())

{rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))));

}

Serial.println ("Ua haujlwm");

lcd.setCursor (0, 0);

lcd.println ("RTC: OK");

Serial.print ("SD daim npav …"); // saib yog daim npav muaj thiab tuaj yeem pib ua ntej:

yog (! SD.begin (chipSelect))

{Serial.println ("Ua tsis tau tej yam"); // tsis txhob ua dab tsi ntxiv:

rov qab;

}

Serial.println ("OK");

lcd.setCursor (0, 1);

lcd.println ("SD card: OK");

Serial.print ("Cov Ntaub Ntawv Teev Npe:");

Serial.print (logFileName);

Serial.print (“…”);

Cov ntaub ntawv logFile = SD.open (logFileName, FILE_WRITE); // qhib cov ntawv. "datalog" thiab luam tawm lub taub hau

yog (logFile)

{

logFile.println (",,,"); // qhia tias muaj cov ntaub ntawv hauv kev ua yav dhau los

String header = "Hnub -Sijhawm, Temp (C), pH, DO";

logFile.println (taub hau);

logFile.close (); cov.

Serial.println ("NYIAJ");

//Serial.println(dataString); // luam tawm mus rau qhov chaw nres nkoj ib yam nkaus:

}

lwm {Serial.println ("yuam kev qhib datalog"); } // yog tias cov ntaub ntawv tsis qhib, pop qhov yuam kev:

lcd.setCursor (0, 2);

lcd.print ("Log file:");

lcd.println (logFileName);

ncua (1000);

sensors.begin ();

sensors.setResolution (ProbeP, 10); // 10 yog qhov kev daws teeb meem (10 ntsis)

lcd.clear ();

id = 0;

}

void lub voj ()

{// lub ntsiab lus.

dataString = Txoj hlua (id);

dataString = Txoj hlua (',');

Hnub tim tam sim no = rtc.now ();

dataString = Txoj hlua (tam sim no.year (), DEC);

dataString += Txoj hlua ('/');

dataString += String (now.month (), DEC);

dataString += Txoj hlua ('/');

dataString += Txoj hlua (now.day (), DEC);

dataString += Txoj hlua ('');

dataString += Txoj hlua (tam sim no.hour (), DEC);

dataString += Txoj hlua (':');

dataString += Txoj hlua (tam sim no.minute (), DEC);

dataString += Txoj hlua (':');

dataString += String (now.second (), DEC);

lcd.home ();

lcd.print (dataString);

sensors.requestTemperatures ();

displayTemperature (ProbeP);

Wire.beginTransmission (pH_address); // hu rau Circuit los ntawm nws tus lej ID

Hlau.write ('r'); // nyuaj code r los nyeem tas li

Wire.endTransmission (); // xaus I2C cov ntaub ntawv xa mus.

ncua (time_); // tos lub sijhawm kom raug rau Circuit kom ua tiav nws cov lus qhia.

Wire.requestFrom (pH_address, 20, 1); // hu rau Circuit thiab thov 20 bytes (qhov no yuav ntau dua qhov peb xav tau)

thaum (Wire.available ()) // puas muaj bytes kom tau txais

{

in_char = Hlau.read (); // tau txais ib byte.

yog ((in_char> 31) && (in_char <127)) // xyuas seb lub char puas siv tau (luam tau)

{

pH_data = in_char; // thauj cov byte no rau hauv peb cov array.

kuv+= 1;

}

yog (in_char == 0) // yog tias peb pom tias peb tau raug xa mus tsis ua haujlwm.

{

kuv = 0; // rov pib dua lub txee rau 0.

Wire.endTransmission (); // xaus I2C cov ntaub ntawv xa mus.

tawg; // tawm lub sijhawm voj.

}

}

serial_event = 0; // rov pib dua tus txheej xwm txheej xwm txheej.

dataString2 += ",";

dataString2 += Txoj hlua (pH_data);

Wire.beginTransmission (DO_address); // hu rau Circuit los ntawm nws tus lej ID

Hlau.write ('r');

Wire.endTransmission (); // xaus I2C cov ntaub ntawv xa mus

ncua (time_); // tos lub sijhawm kom raug rau Circuit kom ua tiav nws cov lus qhia

Wire.requestFrom (DO_address, 20, 1); // hu rau Circuit thiab thov 20 bytes

thaum (Wire.available ()) // puas muaj bytes kom tau txais.

{

in_char = Hlau.read (); // tau txais ib byte.

yog ((in_char> 31) && (in_char <127)) // xyuas seb lub char puas siv tau (luam tau), txwv tsis pub in_char muaj lub cim thaum pib ntawm. txt file

{DO_data = in_char; // thauj cov byte no rau hauv peb cov array

kuv+= 1; // incur lub txee rau cov ntsiab lus array

}

yog (in_char == 0)

{// yog tias peb pom tias peb tau raug xa mus tsis hais lus

kuv = 0; // rov pib dua lub txee rau 0.

Wire.endTransmission (); // xaus I2C cov ntaub ntawv xa mus.

tawg; // tawm lub sijhawm voj.

}

}

serial_event = 0; // rov pib dua tus txheej xwm txheej xwm txheej

pH_float = atof (pH_data);

dataString2 += ",";

dataString2 += Txoj hlua (DO_data);

lcd.setCursor (0, 1);

lcd.print ("Kub/ pH/ Ua");

lcd.setCursor (0, 2);

lcd.print (dataString2);

dataString += ',' cov;

dataString += dataString2;

Cov ntaub ntawv dataFile = SD.open (logFileName, FILE_WRITE); // qhib cov ntawv. nco ntsoov tias tsuas yog ib daim ntawv tuaj yeem qhib ib zaug, yog li koj yuav tsum kaw qhov no ua ntej qhib lwm qhov.

yog (dataFile) // yog tias cov ntaub ntawv muaj, sau rau nws:

{

dataFile.println (dataString);

dataFile.close (); cov

Serial.println (dataString); // luam tawm mus rau qhov chaw nres nkoj ib yam nkaus:

}

lwm {Serial.println ("yuam kev qhib cov ntaub ntawv datalog"); } // yog tias cov ntaub ntawv tsis qhib, pop qhov yuam kev:

lcd.setCursor (0, 3);

lcd.print ("Khiav (x5m):");

lcd.setCursor (15, 3);

lcd.print (id);

id ++; ib. // nce ib daim ID tom ntej iteration

dataString = "" cov ntaub ntawv;

ncua (300000); // ncua 5 feeb = 5*60*1000 ms

lcd.clear ();

} // kawg lub ntsiab voj

void displayTemperature (DeviceAddress deviceAddress)

{

ntab tempC = sensors.getTempC (deviceAddress);

yog (tempC == -127.00) lcd.print ("Kub yuam kev");

lwm dataString2 = Txoj hlua (tempC);

} // tus lej xaus ntawm no

  • Xaiv txoj cai COM chaw nres nkoj ntawm Arduino IDE hauv Cov Cuab Yeej/Chaw Nres Nkoj
  • Xaiv txoj cai Arduino board. Kuv siv Mega 2560 vim tias nws muaj lub cim xeeb sab hauv ntau dua. Arduino Nano lossis Uno ua haujlwm tau zoo nrog qhov teeb tsa no.
  • Txheeb xyuas thiab chaws thiab upload cov chaws

Kauj Ruam 7: Cov txiaj ntsig ntawm Xov Tooj (tuaj yeem Txhim Kho) thiab LCD Zaub

Cov txiaj ntsig ntawm Cov Hluav Taws Xob (tuaj yeem Hloov Kho) thiab LCD Zaub
Cov txiaj ntsig ntawm Cov Hluav Taws Xob (tuaj yeem Hloov Kho) thiab LCD Zaub
Cov txiaj ntsig ntawm Cov Hluav Taws Xob (tuaj yeem Hloov Kho) thiab LCD Zaub
Cov txiaj ntsig ntawm Cov Hluav Taws Xob (tuaj yeem Hloov Kho) thiab LCD Zaub
Cov txiaj ntsig ntawm Cov Hluav Taws Xob (tuaj yeem Hloov Kho) thiab LCD Zaub
Cov txiaj ntsig ntawm Cov Hluav Taws Xob (tuaj yeem Hloov Kho) thiab LCD Zaub
Cov txiaj ntsig ntawm Cov Hluav Taws Xob (tuaj yeem Hloov Kho) thiab LCD Zaub
Cov txiaj ntsig ntawm Cov Hluav Taws Xob (tuaj yeem Hloov Kho) thiab LCD Zaub
  • Daim ntawv ceeb toom: Kuv tau ntsib lub suab nrov los ntawm DO sojntsuam mus rau pH sojntsuam tom qab 2-3 lub hlis ntawm kev ua haujlwm txuas ntxiv. Raws li Atlas Kev Tshawb Fawb, ib qho kev ntsuas hluav taws xob hauv kab hluav taws xob tau pom zoo thaum pH, kev ntsuas hluav taws xob tau ua haujlwm ua ke. Xav paub ntau ntxiv nyob ntawm nplooj 9 (https://goo.gl/d62Rqv)
  • Cov ntaub ntawv nkag mus (thawj tus tau sau cov cim ua ntej pH thiab DO cov ntaub ntawv). Kuv tau lim rau cov cai los ntawm kev tso cai tsuas yog cov ntawv luam tawm.

Kauj Ruam 8: Ntshuam Cov Ntaub Ntawv thiab Ua Duab

Ntshuam Cov Ntaub Ntawv thiab Ua Daim Duab
Ntshuam Cov Ntaub Ntawv thiab Ua Daim Duab
Ntshuam Cov Ntaub Ntawv thiab Ua Daim Duab
Ntshuam Cov Ntaub Ntawv thiab Ua Daim Duab
Ntshuam Cov Ntaub Ntawv thiab Ua Daim Duab
Ntshuam Cov Ntaub Ntawv thiab Ua Daim Duab
  1. Ntshuam cov ntaub ntawv Los ntawm Cov Ntawv Hauv qab DATA tab (Excel 2013)
  2. Cais cov ntaub ntawv los ntawm tus lej (yog vim li cas thiaj muaj tus lej cim tom qab txhua cov ntaub ntawv nkag tau pab tau)
  3. Npaj cov ntaub ntawv. Txhua cov ntaub ntawv hauv qab no muaj txog 1700 cov ntsiab lus. Lub sijhawm ntsuas yog 5 feeb (kho tau). Yam tsawg kawg rau DO thiab pH circuits los nyeem cov ntaub ntawv yog 1.8 secs.

Kauj ruam 9: Calibration

Calibration
Calibration
  1. Cov ntsuas kub digital (18B20) tuaj yeem ntsuas tau los ntawm kev kho qhov sib txawv ncaj qha rau. Txwv tsis pub, yog tias them nyiaj thiab qhov nqes hav xav tau kev ntsuas, koj tuaj yeem ua los ntawm kev hloov pauv qhov tseem ceeb ntawm kab #453, DallasTemperature.cpp hauv / lub tsev qiv ntawv / DallasTemperature nplaub tshev.
  2. Rau qhov ntsuas pH thiab DO, koj tuaj yeem ntsuas qhov ntsuas nrog cov lus daws teeb meem. Koj yuav tsum siv tus lej piv txwv los ntawm Atlas Scientific thiab ua raws cov lus qhia los ntawm cov ntaub ntawv no.
  3. Thov ua raws nplooj ntawv 26 thiab 50 rau kev ntsuas pH (https://goo.gl/d62Rqv) rau kev ntsuas thiab ntsuas kub, thiab tseem nplooj ntawv, 7-8 thiab 50 rau DO sojntsuam (https://goo.gl/mA32mp). Ua ntej, thov rov tso dua cov cai uas tau muab los ntawm Atlas, qhib Serial Monitor thiab qhov tseem ceeb hauv kev hais kom raug.

Kauj Ruam 10: Cov kab ntau dhau?

  1. Koj tuaj yeem tshem tawm daim npav SD thiab lub sijhawm teev sijhawm tiag tiag los ntawm kev siv Dragino Yun Shield rau Arduino cov laug cam (https://goo.gl/J9PBTH). Txoj cai xav tau hloov kho kom ua haujlwm nrog Yun Shield. Nov yog qhov chaw zoo pib (https://goo.gl/c1x8Dm)
  2. Tseem muaj cov xov hlau ntau dhau: Atlas Kev Tshawb Fawb tau ua phau ntawv qhia rau lawv cov kab hluav taws xob EZO (https://goo.gl/dGyb12) thiab cov laug cam tsis siv neeg (https://goo.gl/uWF51n). Kev suav ua 18B20 digital kub nyob ntawm no (https://goo.gl/ATcnGd). Koj yuav tsum paub txog cov lus txib ntawm Raspbian (version ntawm Debian Linux) khiav ntawm Raspberry Pi (https://goo.gl/549xvk)

Kauj Ruam 11: Kev lees paub:

Nov yog kuv txoj haujlwm ib sab thaum kuv tshawb fawb tom qab kws kho mob uas kuv tau ua haujlwm ua ntej photobioreactor los cog microalgae. Yog li kuv xav tias nws yog qhov tsim nyog tau txais txiaj ntsig ob tog tau muab cov xwm txheej los ua qhov no tshwm sim. Ua ntej tshaj, qhov nyiaj pab, DE-EE0007093: "Huab Cua CO2 Kev Txhim Kho thiab Kev Xa Khoom (ACED)," los ntawm Asmeskas Lub Tsev Haujlwm Saib Xyuas Hluav Taws Xob, Lub Chaw Haujlwm Saib Xyuas Kev Siv Hluav Taws Xob thiab Kev Siv Hluav Taws Xob Lub Hom Phiaj Algal Biofuels thiab Bioproducts. Kuv ua tsaug Dr. Bruce E. Rittmann ntawm Biodesign Swette Center for Environmental Biotechnology, Arizona State Univesity uas muab sijhawm rau kuv rau tinker nrog hluav taws xob thiab Arduino. Kuv tau kawm nyob rau hauv ib puag ncig engineering, feem ntau yog chemistry, me ntsis ntawm microbiology.

Pom zoo: