Агуулгын хүснэгт:
- Алхам 1: Зарим бүрэлдэхүүн хэсгүүдийг нэмнэ үү
- Алхам 2: Breadboards -ийн тухай тэмдэглэл
- Алхам 3: Хоёр мэдрэгчийг нэмнэ үү
- Алхам 4: Гэрэл мэдрэмтгий мэдрэгч
- Алхам 5: Кодыг эхлүүлнэ үү
- Алхам 6: Симуляци
- Алхам 7: Температур мэдрэгчийг холбоно уу
- Алхам 8: Туршилт, шалгалт
Видео: Arduino Datalogger: 8 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
Энэхүү гарын авлагад бид Arduino ашиглан энгийн өгөгдөл бүртгэгч хийх болно. Мэдээлэл авах, терминал дээр хэвлэхийн тулд Arduino програмыг ашиглах үндсийг сурах нь чухал юм. Бид энэхүү үндсэн тохиргоог ашиглан олон ажлыг хийж болно.
Эхлэхийн тулд:
Танд Tinkercad (www.tinkercad.com) данс хэрэгтэй болно. И -мэйл эсвэл олон нийтийн мэдээллийн хэрэгслээр бүртгүүлж бүртгүүлнэ үү.
Нэвтрэх нь таныг Tinkercad хяналтын самбарт оруулна. Зүүн талд байгаа "Circuits" дээр дараад "Шинэ хэлхээ үүсгэх" -ийг сонгоно уу. Эхэлцгээе!
Та бүрэн файлыг TInkercad Circuits дээрээс олж болно - Үүнийг шалгасанд баярлалаа!
Алхам 1: Зарим бүрэлдэхүүн хэсгүүдийг нэмнэ үү
Танд зарим үндсэн бүрэлдэхүүн хэсгүүд хэрэгтэй болно. Үүнд:
- Arduino самбар
- Талхны самбар
Тэдгээрийг хайж олоод дунд хэсэг рүү чирж оруулна уу.
Талхны хавтанг Arduino дээр тавь. Энэ нь дараа нь холболтуудыг харахад хялбар болгодог.
Алхам 2: Breadboards -ийн тухай тэмдэглэл
Талхны самбар нь хурдан загвар гаргахад туслах төхөөрөмж юм. Бид үүнийг бүрэлдэхүүн хэсгүүдийг холбоход ашигладаг. Анхаарах зарим зүйл.
- Цэгүүд нь босоо байдлаар холбогддог боловч дунд талын шугам нь энэ холболтыг дээд ба доод багануудаас тусгаарладаг.
- Баганууд нь эгнээний адил зүүнээс баруун тийш холбогдоогүй байна. Энэ нь бүх бүрэлдэхүүн хэсгүүдийг босоо чиглэлд буулгах бус харин баганаар холбох ёстой гэсэн үг юм.
- Хэрэв та товчлуур эсвэл унтраалга ашиглах шаардлагатай бол тэдгээрийг завсар дунд холбоно уу. Бид үүнийг дараачийн хичээл дээр үзэх болно.
Алхам 3: Хоёр мэдрэгчийг нэмнэ үү
Бидний ашиглаж буй хоёр мэдрэгч бол гэрэл мэдрэмтгий ба температур мэдрэгч юм.
Эдгээр мэдрэгч нь гэрэл, температурыг үнэлдэг. Бид Arduino ашиглан утгыг уншиж, Arduino дээрх сериал монитор дээр харуулдаг.
Хоёр мэдрэгчийг хайж олоорой. Талхны самбар дээрх баганууд дээр байрлуулсан эсэхийг шалгаарай. Харахад хялбар болгохын тулд тэдгээрийн хооронд хангалттай зай тавь.
Алхам 4: Гэрэл мэдрэмтгий мэдрэгч
- Гэрэл мэдрэмтгий мэдрэгчийн хувьд Arduino дээрх 5V зүү бүхий утсыг талхны самбар дээрх хэсгийн баруун хөлтэй ижил баганад нэмнэ. Утасны өнгийг улаан болгож өөрчил.
- Зүүн хөлөө нэг баганын зүүгээр Arduino дээрх A0 (A-тэг) зүү рүү холбоно уу. Энэ бол аналог зүү бөгөөд үүнийг мэдрэгчээс утгыг уншихад ашиглах болно. Энэ утсыг шар эсвэл улаан эсвэл хараас өөр өнгөөр будна уу.
-
Самбар дээр резистор байрлуул (хайх ба дарж чирэх). Энэ нь хэлхээг дуусгаж, мэдрэгч болон зүүг хамгаална.
- Түүнийг эргүүлээд багана дээгүүр өнгөрнө.
- Нэг хөлөө талхны самбар дээрх баруун хөлний багана руу холбоно уу
-
Резисторын нөгөө үзүүрээс утсыг газардуул
Утасны өнгийг хар болгож өөрчил
- Бүх холболтыг дахин шалгана уу. Хэрэв ямар нэг зүйл зөв газартаа байхгүй бол энэ нь зөв ажиллахгүй болно.
Алхам 5: Кодыг эхлүүлнэ үү
Энэ бүрэлдэхүүн хэсгийн кодыг авч үзье.
Нэгдүгээрт, энэ алхам дахь гурав дахь зургийг үзнэ үү. Энэ нь хоёр функцтэй зарим кодыг агуулдаг:
хүчингүй тохиргоо ()
хоосон давталт ()
C ++ дээр бүх функцууд нь буцах төрөл, дараа нь нэр, аргументыг дамжуулахад ашиглаж болох хоёр дугуй хаалт, ихэвчлэн хувьсагч хэлбэрээр өгдөг. Энэ тохиолдолд буцаах төрөл нь хүчингүй болно, эсвэл юу ч биш. Нэр нь тохиргоо бөгөөд функц нь ямар ч аргументыг шаарддаггүй.
Тохиргооны функц нь Arduino -ийг ачаалах үед нэг удаа ажилладаг (та зайг залгах эсвэл зайг залгах үед).
Давталтын функц нь миллисекундээс эхлэн тохируулгын функц дууссанаас хойш тогтмол давталтад ажилладаг.
Arduino ажиллах үед таны давталтын функцэд оруулсан бүх зүйл ажиллах болно. Гаднах бүх зүйл зөвхөн дуудахад л ажиллах болно. Хэрэв бид давталтаас гадуур өөр функцийг тодорхойлж, дуудсан бол.
Даалгавар
Код самбарыг Tinkercad дээрх товчлуураар нээнэ үү. Blocks унах жагсаалтыг Текст болгон өөрчилнө үү. Гарч ирэх анхааруулах хайрцгийг зөвшөөрч байна. Одоо энэ алхам дахь гурав дахь зурган дээрх текстээс бусад бүх зүйлийг устга.
Хувьсагч
Эхлэхийн тулд бид зарим хувьсагчийг хуваарилах хэрэгтэй бөгөөд ингэснээр кодоо үнэхээр үр ашигтай болгодог.
Хувьсагчууд нь зөвхөн нэг объектыг багтаасан хувинтай адилхан байдаг (C ++ -ийг бид объектод чиглэсэн гэж нэрлэдэг). Тийм ээ, бидэнд массивууд байгаа, гэхдээ эдгээр нь тусгай хувьсагчид бөгөөд бид дараа нь ярих болно. Бид хувьсагчийг хуваарилахдаа түүнд ямар төрөл болохыг нь хэлж, дараа нь утгыг нь өгөх хэрэгтэй. Энэ нь иймэрхүү харагдаж байна:
int someVar = A0;
Тиймээс, бид хувьсагчийг томилж, түүнд int гэж өгсөн. Int нь бүхэл тоо эсвэл бүхэл тоо юм.
"Гэхдээ та бүхэл бүтэн тоог ашиглаагүй!" Гэж та хэлж байна. Энэ үнэн.
Arduino нь бидний хувьд онцгой зүйл хийдэг тул бид A0 -ийг бүхэл тоо болгон ашиглаж болно, учир нь өөр файлд A0 -ийг бүхэл тоо гэж тодорхойлдог тул A0 тогтмолыг ашиглан энэ бүхэл тооноос юу болохыг нь мэдэх шаардлагагүй болно. Хэрэв бид дөнгөж 0 гэж бичсэн бол бид 0 байрлал дахь дижитал зүүг ашиглах болно, гэхдээ энэ нь ажиллахгүй болно.
Тиймээс, бидний кодын хувьд бид хавсаргасан мэдрэгчийн хувьсагчийг бичих болно. Би түүнд энгийн нэр өгөхийг санал болгож байгаа ч энэ нь танд хамаарна.
Таны код дараах байдлаар харагдах ёстой.
int lightSensor = A0;
void setup () {} void loop () {}
Одоо энэ зүү дээрх мэдрэгчийг хэрхэн зохицуулах талаар Arduino -д хэлье. Бид тохиргооны дотор функцийг ажиллуулж, пин горимыг тохируулж, хаанаас хайхыг Arduino -д хэлэх болно.
int lightSensor = A0;
void setup () {pinMode (lightSensor, INPUT); } void loop () {}
pinMode функц нь Arduino -д зүү (A0) -ийг INPUT зүү болгон ашиглах болно гэж хэлдэг. CamelCaseUsed -ийг анхаарна уу (хувьсагч болон функцын нэрсийн хувьд эхний үсэг тус бүр нь том үсэг бөгөөд ингэснээр… тэмээ…!). Энэ бол уламжлал бөгөөд үүнийг ашиглахад тохиромжтой.
Эцэст нь analogRead функцийг ашиглан зарим өгөгдлийг олж авцгаая.
int lightSensor = A0;
void setup () {pinMode (lightSensor, INPUT); } void loop () {int унших = analogRead (lightSensor); }
Бид уншилтыг хувьсагч хэлбэрээр хадгалсныг харах болно. Үүнийг хэвлэх шаардлагатай байгаа тул энэ нь чухал юм. Үүнийг цуваа дэлгэц дээр хэвлэхийн тулд Цуваа номын санг ашиглана уу (номын сан нь үүнийг бичихэд хялбар болгохын тулд кодондоо нэмж оруулах код юм).
int lightSensor = A0;
void setup () {// Пин горимыг тохируулах pinMode (lightSensor, INPUT); // Serial.begin (9600) цуваа номын санг нэмэх; } void loop () {// мэдрэгчийг уншина уу int унших = analogRead (lightSensor); // утгыг монитор дээр хэвлэх Serial.print ("Гэрэл:"); Serial.println (унших); // дараагийн давталтыг 3 секундын хугацаагаар хойшлуулах (3000); }
Хэд хэдэн шинэ зүйл! Нэгдүгээрт, та эдгээрийг харах болно:
// Энэ бол сэтгэгдэл
Манай код юу хийж байгааг бусад хүмүүст тайлбарлахын тулд ашигладаг. Та эдгээрийг байнга ашиглах ёстой. Хөрвүүлэгч эдгээрийг уншаад код болгон хөрвүүлэхгүй.
Одоо бид цуваа номын санг шугамаар нэмсэн
Цуваа. Эхлэх (9600)
Энэ бол аргумент авдаг функцын жишээ юм. Та номын сангаа Serial гэж нэрлээд дараа нь функцийг ажиллууллаа (энэ нь дугуй хаалтуудаас үүдэлтэй гэдгийг бид мэднэ), бүхэл тоог аргумент болгон өгч, Serial функцийг 9600baud дээр ажиллахаар тохируулсан. Яагаад гэж санаа зовох хэрэггүй - энэ нь яг одоо ажилладаг гэдгийг мэдэж аваарай.
Бидний хийсэн дараагийн зүйл бол цуваа дэлгэц дээр хэвлэх явдал байв. Бид хоёр функцийг ашигласан:
// Энэ нь цувралд мөр тасалдалгүй хэвлэгддэг (төгсгөлд нь оруулах)
Serial.print ("Гэрэл:"); // Энэ нь мөр тасалдаг тул бид унших, бичих бүрт шинэ мөрөнд явдаг Serial.println (унших);
Анхаарах зүйл бол тус бүр өөрийн гэсэн зорилготой байдаг. Таны мөрүүд давхар хашилтын тэмдэг хэрэглэж, бүдүүн гэдэсний дараа хоосон зай үлдээж байгаа эсэхийг шалгаарай. Энэ нь хэрэглэгчийг уншихад хялбар болгодог.
Эцэст нь бид хоцролтын функцийг ашиглан давталтаа удаашруулж, гурван секунд тутамд нэг удаа уншуулдаг. Үүнийг хэдэн мянган секундын дотор бичсэн болно. Үүнийг 5 секунд тутамд ганцхан удаа уншихаар өөрчил.
Агуу их! Бид явж байна!
Алхам 6: Симуляци
Симуляцийг ажиллуулснаар бүх зүйл үргэлж ажиллаж байгааг шалгаарай. Энэ хэлхээний хувьд симуляторыг ажиллуулж, үнэ цэнээ шалгахын тулд нээх шаардлагатай болно.
Симуляцийг эхлүүлж, цуваа дэлгэцийг шалгана уу. Гэрлийн мэдрэгчийн утгыг дарж, гулсагчийг ашиглан утгыг өөрчилнө үү. Цуваа дэлгэц дээрх утгын өөрчлөлтийг та бас харах ёстой. Хэрэв тийм биш бол, эсвэл Симуляцийг эхлүүлэх товчлуур дээр дарахад алдаа гардаг бол буцаж очоод бүх кодоо шалгаарай.
- Танд танилцуулах улаан дибаг хийх цонхонд заасан мөрөнд анхаарлаа хандуулаарай.
- Хэрэв таны код зөв бөгөөд симуляци ажиллахгүй хэвээр байвал утсаа шалгана уу.
- Хуудсыг дахин ачаална уу - танд холбоогүй систем/серверийн алдаа гарсан байж магадгүй.
- Компьютер руу нударгаа сэгсрээд дахин шалга. Бүх програмистууд үүнийг хийдэг. Бүгд. The. Цаг.
Алхам 7: Температур мэдрэгчийг холбоно уу
Та одоо зөв замаар явж байна гэж би таамаглаж байна. Зураг дээр үзүүлсэн шиг температур мэдрэгчийг холбоно уу. 5V ба GND утаснуудыг гэрэлтэй ижил зайнд байрлуулахыг анхаарна уу. Энэ зүгээр. Энэ нь зэрэгцээ хэлхээтэй адил бөгөөд симулятор дээр асуудал үүсгэхгүй. Бодит хэлхээний хувьд та илүү сайн эрчим хүчний менежмент, холболтыг хангахын тулд таслах самбар эсвэл бамбай ашиглах ёстой.
Одоо кодыг шинэчилье.
Температур мэдрэгчийн код
Энэ нь арай илүү төвөгтэй боловч уншиж буй зүйлийг хөрвүүлэхийн тулд бид математик хийх ёстой учраас л болно. Энэ нь тийм ч муу биш юм.
int lightSensor = A0;
int tempSensor = A1; void setup () {// Пин горимыг тохируулах pinMode (lightSensor, INPUT); // Serial.begin (9600) цуваа номын санг нэмэх; } void loop () {// Температур мэдрэгч // Нэг мөрөнд хоёр хувьсагч үүсгэх - үр ашиг! // Аравтын хөвөх хүчдэл, градусыг хадгалахын тулд Float var; // Пиний утгыг уншаад 0 - 5 хүртэлх утга руу хөрвүүлнэ // Үндсэндээ хүчдэл = (5/1023 = 0.004882814); хүчдэл = (analogRead (tempSensor) * 0.004882814); // C градус болгон хөрвүүлэх C = (хүчдэл - 0.5) * 100; // Serial.print цуврал монитор дээр хэвлэх ("Temp:"); Цуврал хэвлэх (градус C); Serial.println ("oC"); // мэдрэгчийг уншина уу int унших = analogRead (lightSensor); // утгыг монитор дээр хэвлэх Serial.print ("Гэрэл:"); Serial.println (унших); // дараагийн давталтыг 3 секундын хугацаагаар хойшлуулах (3000); }
Би кодын зарим шинэчлэлтийг хийсэн. Тэдгээрийг тус тусад нь авч үзье.
Нэгдүгээрт, би мөрийг нэмсэн
int tempSensor = A1;
LightSensor -ийн нэгэн адил би дараа нь илүү хялбар болгохын тулд утгыг хувьсагч дотор хадгалах хэрэгтэй. Хэрэв би энэ мэдрэгчийн байршлыг өөрчлөх шаардлагатай байсан бол (самбарыг дахин холбох гэх мэт) A0 эсвэл A1 гэх мэтийг өөрчлөхийн тулд кодын баазыг бүхэлд нь хайхгүй зөвхөн нэг мөрийн мөрийг л өөрчлөх хэрэгтэй болно.
Дараа нь бид уншилт болон температурыг хөвөгч хэлбэрээр хадгалах шугам нэмсэн. Нэг мөрөнд хоёр хувьсагчийг анхаарч үзээрэй.
хөвөх хүчдэл, градус C;
Энэ нь бичих ёстой мөрийн тоог багасгаж, кодыг хурдасгадаг тул энэ нь үнэхээр тустай юм. Гэсэн хэдий ч алдаа хайх нь илүү хэцүү байж магадгүй юм.
Одоо бид уншаад хадгалаад дараа нь гаралтын утга болгон хөрвүүлнэ.
хүчдэл = (analogRead (tempSensor) * 0.004882814);
градус C = (хүчдэл - 0.5) * 100;
Эдгээр хоёр мөр нь хэцүү харагдаж байна, гэхдээ эхнийх нь бид уншилтыг аваад 0.004 -ээр үржүүлж байна, учир нь энэ нь 1023 -ийг (аналог унших нь энэ утгыг буцаана) 5 -аас дээш уншилт болгон хөрвүүлдэг.
Тэнд байгаа хоёр дахь мөр нь уг уншилтыг 100 -аар үржүүлээд аравтын бутархай цэгийг шилжүүлэх болно. Энэ нь бидэнд температурыг өгдөг. Цэвэрхэн!
Алхам 8: Туршилт, шалгалт
Төлөвлөх гэж байгаа бүх зүйл, та ажлын хэлхээтэй байх ёстой. Симуляцийг ажиллуулж, цуваа монитор ашиглан туршиж үзээрэй. Хэрэв танд алдаа байгаа бол шалгаад дахин шалгаад нударгаа сэгсэрнэ үү.
Та амжсан уу? Түүхээ хуваалцаж, бидэнд хэлээрэй!
Энэ бол танд зориулагдсан эцсийн хэлхээ бөгөөд та эцсийн бүтээлийг тоглуулах/турших боломжтой. Хичээлийг дуусгасанд баярлалаа!
Зөвлөмж болгож буй:
GPS Para Norma (Datalogger EEPROM): 5 алхам
GPS Para Norma (Datalogger EEPROM): arduino болон EEPROM бичлэг дээр суурилсан гэрийн тэжээвэр амьтдын энгийн өгөгдөл бүртгэгч ============================== ======================== EEPROM -ийн санах ойд зориулагдсан GPS -ийн маскотууд
Arduino Uno ашиглан акустик левитаци Алхам алхам (8 алхам): 8 алхам
Arduino Uno-тай акустик Levitation Алхам алхамаар (8 алхам): хэт авианы дууны дамжуулагч L298N Dc эмэгтэй адаптерийн эрэгтэй тэжээлийн тэжээлийн хангамж Arduino UNOBreadboard Энэ нь хэрхэн ажилладаг вэ: Нэгдүгээрт, та кодыг Arduino Uno-д байршуулдаг (энэ нь дижитал төхөөрөмжөөр тоноглогдсон микроконтроллер юм. кодыг хөрвүүлэх аналог портууд (C ++)
Arduino автомат сүүдэрлэх дэлгэцийн төсөлд алхам алхмаар мотор, жолооч сонгох: 12 алхам (зурагтай)
Arduino автоматжуулсан сүүдэртэй дэлгэцийн төслийн алхам ба моторыг сонгох: Энэхүү зааварчилгаанд би Автомат Сүүдэрт Дэлгэцийн прототипийн төслийн хувьд шаталсан мотор ба драйверыг сонгох алхамуудыг хийх болно. Сүүдэр дэлгэц нь гараар хийсэн хамгийн алдартай, хямд Coolaroo загварууд бөгөөд би үүнийг солихыг хүссэн
Arduino Datalogger нь RTC, Nokia LCD болон кодлогчтой: 4 алхам
Arduino Datalogger нь RTC, Nokia LCD болон кодлогчтой: эд анги: Arduino Nano эсвэл Arduino Pro Mini Nokia 5110 84x48 LCD DHT11 температур/чийгшлийн мэдрэгч DS1307 эсвэл DS3231 RTC модуль нь AT24C32 EEPROM 3 кодлогч конденсатортой хямд кодлогчтой. мөн en
Raspberry Pi Zero W Datalogger: 8 алхам (зурагтай)
Raspberry Pi Zero W Datalogger: Raspberry Pi Zero W -ийг ашигласнаар та орон нутгийн Wi -Fi сүлжээнд холбогдсон эсвэл өгөгдөл татаж авах боломжийг олгодог талбар дахь хандалтын цэг болж болох хямд, ашиглахад хялбар өгөгдлийн тоолуур хийх боломжтой. Ухаалаг утсаараа утасгүй холбогдож, би