Mundarija:
- 1 -qadam: Ba'zi komponentlarni qo'shing
- 2 -qadam: Breadboards haqida eslatma
- 3 -qadam: ikkita sensorni qo'shing
- 4 -qadam: fotosensitiv sensor
- 5 -qadam: Kodni ishga tushiring
- 6 -qadam: Simulyatsiya
- 7 -qadam: Harorat sensori simini ulang
- 8 -qadam: tekshirish va tekshirish
Video: Arduino Datalogger: 8 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
Ushbu qo'llanmada biz Arduino -dan foydalangan holda ma'lumotlarni ro'yxatga oluvchini yaratamiz. Gap shundaki, Arduino -dan ma'lumot olish va terminalda chop etish uchun foydalanish asoslarini o'rganish. Biz ushbu asosiy sozlamadan foydalanib, bir qator vazifalarni bajarishimiz mumkin.
Boshlash uchun:
Sizga Tinkercad (www.tinkercad.com) hisobi kerak bo'ladi. O'zingizning elektron pochta yoki ijtimoiy media hisobingiz bilan ro'yxatdan o'ting.
Kirish sizni Tinkercad boshqaruv paneliga olib boradi. Chapdagi "O'chirish" ni bosing va "Yangi davr yaratish" -ni tanlang. Qani boshladik!
Siz to'liq faylni TInkercad Circuits -da topishingiz mumkin - tekshirganingiz uchun tashakkur!
1 -qadam: Ba'zi komponentlarni qo'shing
Sizga ba'zi asosiy komponentlar kerak bo'ladi. Bularga quyidagilar kiradi:
- Arduino taxtasi
- Non paneli
Ularni qidirish va ularni o'rta maydonga sichqonchani bosib qo'shish.
Non panelini Arduino ustiga qo'ying. Bu ulanishlarni keyinroq ko'rishni osonlashtiradi.
2 -qadam: Breadboards haqida eslatma
Non paneli - bu tezkor prototip yaratish uchun juda foydali qurilma. Biz komponentlarni ulash uchun foydalanamiz. E'tibor qilish kerak bo'lgan ba'zi narsalar.
- Nuqtalar vertikal ravishda bog'langan, lekin o'rtadagi chiziq bu aloqani yuqori va pastki ustunlardan ajratib turadi.
- Ustunlar qator bo'ylab bo'lgani kabi chapdan o'ngga ulanmagan. Bu shuni anglatadiki, barcha komponentlar vertikal pastga emas, balki ustunlar bo'ylab ulanishi kerak.
- Agar siz tugmachalarni yoki kalitlarni ishlatishingiz kerak bo'lsa, ularni o'rtadagi tanaffus bo'ylab ulang. Biz buni keyingi darslikda ko'rib chiqamiz.
3 -qadam: ikkita sensorni qo'shing
Biz foydalanadigan ikkita sensor - bu fotosensitiv va harorat sensori.
Bu sensorlar yorug'lik va haroratni baholaydi. Biz qiymatni o'qish va Arduino -dagi ketma -ket monitorda ko'rsatish uchun Arduino -dan foydalanamiz.
Ikkita sensorni qidiring va qo'shing. Ular non panelidagi ustunlar bo'ylab joylashtirilganligiga ishonch hosil qiling. Ko'rishni osonlashtirish uchun ular orasiga etarlicha bo'sh joy qo'ying.
4 -qadam: fotosensitiv sensor
- Fotosensitiv sezgich uchun Arduino -dagi 5V -pinli simni non panelidagi o'ng oyog'i bilan bir ustunga qo'shing. Tel rangini qizil rangga o'zgartiring.
- Chap oyoqni xuddi shu ustundagi pin orqali Arduino-dagi A0 (A-nol) piniga ulang. Bu analog pin, biz sensordan qiymatni o'qish uchun foydalanamiz. Bu simni sariq yoki qizil yoki qora rangdan boshqasini ranglang.
-
Rezistorni taxtaga joylashtiring (qidirish va bosish). Bu kontaktlarning zanglashiga olib keladi va sensor va pinni himoya qiladi.
- Uni aylantiring, shunda u ustunlar bo'ylab o'tadi.
- Bir oyog'ingizni non panelidagi o'ng oyoq ustuniga ulang
-
Rezistorning boshqa uchidan erga sim qo'ying
Tel rangini qora rangga o'zgartiring
- Barcha ulanishlarni ikki marta tekshiring. Agar biror narsa to'g'ri joyda bo'lmasa, bu to'g'ri ishlamaydi.
5 -qadam: Kodni ishga tushiring
Keling, ushbu komponentning kodini ko'rib chiqaylik.
Birinchidan, bu bosqichdagi uchinchi rasmga qarang. U ikkita funktsiyali ba'zi kodlarni o'z ichiga oladi:
bo'sh o'rnatish ()
bo'sh halqa ()
C ++ da barcha funktsiyalar qaytariladigan turini, so'ngra nomini, so'ngra argumentlarni uzatishda ishlatilishi mumkin bo'lgan ikkita dumaloq qavsni beradi, odatda o'zgaruvchilar sifatida. Bunday holda, qaytarish turi bekor yoki hech narsa emas. Ism sozlangan va funktsiya hech qanday dalil keltirmaydi.
O'rnatish funktsiyasi Arduino yuklanganda bir marta ishlaydi (batareyani ulash yoki ulashda).
Loop funktsiyasi millisekunddan so'ng doimiy tsiklda ishlaydi.
Loop funktsiyasiga kiritilgan hamma narsa Arduino ishga tushganda ishlaydi. Tashqarida hamma narsa faqat chaqirilganda ishlaydi. Agar biz boshqa funktsiyani pastadir tashqarisida aniqlagan va chaqirgan bo'lsak.
Vazifa
Kod panelini Tinkercad tugmasi bilan oching. Bloklar ochiladigan ro'yxatini matnga o'zgartiring. Ochilgan ogohlantirish qutisiga rozilik bildiring. Endi, bu qadamda uchinchi rasmdagi matndan boshqa hamma narsani o'chirib tashlang.
O'zgaruvchilar
Boshlash uchun biz ba'zi o'zgaruvchilarni belgilashimiz kerak, shuning uchun biz kodimizni haqiqatan ham samarali qilamiz.
O'zgaruvchilar faqat bitta ob'ektni ushlab turadigan chelaklarga o'xshaydi (C ++-biz ob'ektga yo'naltirilgan deb ataymiz). Ha, bizda massivlar bor, lekin bu maxsus o'zgaruvchilar va ular haqida keyinroq gaplashamiz. O'zgaruvchini tayinlaganimizda, biz uning qaysi turini aytishimiz kerak, keyin unga qiymat berishimiz kerak. Bu shunday ko'rinadi:
int someVar = A0;
Shunday qilib, biz o'zgaruvchini tayinladik va unga int turini berdik. Int - butun son yoki butun son.
"Lekin siz butun raqamni ishlatmadingiz!", Deb aytayotganingizni eshitaman. Bu haqiqat.
Arduino biz uchun alohida bir narsa qiladi, shuning uchun biz A0ni tamsayı sifatida ishlatishimiz mumkin, chunki boshqa faylda u A0ni butun son sifatida belgilaydi, shuning uchun biz bu tamsayıga nima ekanligini bilmasdan turib A0 konstantasidan foydalanishimiz mumkin. Agar biz faqat 0 yozgan bo'lsak, biz 0 pozitsiyasidagi raqamli pinni ishlatamiz, bu ishlamaydi.
Shunday qilib, bizning kodimiz uchun biz biriktirilgan sensor uchun o'zgaruvchini yozamiz. Men unga oddiy ism berishni maslahat beraman, bu sizga bog'liq.
Sizning kodingiz shunday bo'lishi kerak:
int lightSensor = A0;
void setup () {} void loop () {}
Keling, Arduino -ga bu pimdagi sensorni qanday boshqarishni aytaylik. Biz pin rejimini o'rnatish va Arduino -ga uni qaerdan qidirish kerakligini aytib berish uchun funktsiyani ishga tushiramiz.
int lightSensor = A0;
void setup () {pinMode (lightSensor, INPUT); } void loop () {}
pinMode funktsiyasi Arduino -ga pin (A0) INPUT pin sifatida ishlatilishini aytadi. O'zgaruvchilar va funktsiya nomlari uchun camelCaseUsed (har bir birinchi harf katta harf bilan yozilgan, shuning uchun tepada, shuning uchun … tuya …!) Ga e'tibor bering. Bu an'ana va bunga ko'nikish yaxshidir.
Nihoyat, ba'zi ma'lumotlarni olish uchun analogRead funktsiyasidan foydalanamiz.
int lightSensor = A0;
void setup () {pinMode (lightSensor, INPUT); } void loop () {int o'qish = analogRead (lightSensor); }
Siz o'qishni o'zgaruvchida saqlaganimizni ko'rasiz. Bu juda muhim, chunki biz uni chop etishimiz kerak. Buni ketma -ket monitorga chop etish uchun ketma -ket kutubxonadan foydalanamiz (kutubxona - bu biz yozadigan narsalarni tezroq qilish uchun o'z kodimizga qo'sha oladigan kod).
int lightSensor = A0;
void setup () {// pinMode (lightSensor, INPUT) pin rejimlarini o'rnatish; // Serial.begin (9600) ketma -ket kutubxonasini qo'shing; } void loop () {// Sensorni o'qing int reading = analogRead (lightSensor); // Qiymatni monitorga chop etish Serial.print ("Light:"); Serial.println (o'qish); // keyingi tsiklni 3 soniya kechiktirish bilan kechiktirish (3000); }
Bir nechta yangi narsalar! Birinchidan, siz quyidagilarni ko'rasiz:
// Bu sharh
Biz boshqalarga bizning kodimiz nima qilayotganini aytib berish uchun sharhlardan foydalanamiz. Siz ularni tez -tez ishlatishingiz kerak. Derleyici ularni o'qimaydi va ularni kodga o'zgartirmaydi.
Endi biz qatorli seriyali kutubxonani ham qo'shdik
Serial.begin (9600)
Bu argumentni qabul qiladigan funktsiyaga misol. Siz kutubxonani Serial deb nomladingiz, keyin biz funktsiyani ishga tushirdik (biz bilamizki, bu dumaloq qavslar tufayli funktsiya) va argument sifatida butun sonni o'tkazib, Serial funktsiyasini 9600baudda ishlashga o'rnatdingiz. Nega xavotir olmang - bilingki, u hozircha ishlaydi.
Keyingi ishimiz ketma -ket monitorga chop etish edi. Biz ikkita funktsiyani ishlatdik:
// Bu ketma -ket chiziqsiz kesiladi (oxirida kirish)
Serial.print ("Nur:"); // Bu satr tanaffusini qo'yadi, shuning uchun har o'qish va yozishimizda u yangi qatorga o'tadi Serial.println (o'qish);
Muhimi, har birining alohida maqsadi bor. Sizning satrlaringiz ikki tirnoqli belgilarni ishlatganligiga va yo'g'on ichakdan keyin bo'sh joy qoldirganingizga ishonch hosil qiling. Bu foydalanuvchi uchun o'qishni osonlashtiradi.
Nihoyat, biz kechikish funktsiyasidan foydalanib, pastadirni sekinlashtirdik va uni har uch soniyada bir marta o'qishga majbur qildik. Bu ming soniyalarda yozilgan. Har 5 soniyada bir marta o'qish uchun o'zgartiring.
Ajoyib! Ketamiz!
6 -qadam: Simulyatsiya
Har doim simulyatsiya yordamida ishlarning ishlashini tekshiring. Ushbu sxema uchun siz simulyatorni ishga tushirishingiz va uning qiymatlarini tekshirishingiz kerak.
Simulyatsiyani boshlang va ketma -ket monitorni tekshiring. Yorug'lik sensori qiymatini sichqoncha yordamida bosish va o'zgartirish orqali o'zgartiring. Siz ketma -ket monitorda qiymat o'zgarishini ko'rishingiz kerak. Agar bunday bo'lmasa yoki simulyatsiyani boshlash tugmachasini bosganingizda xatolarga yo'l qo'yilsa, diqqat bilan orqaga qayting va barcha kodingizni tekshiring.
- Sizga taqdim etiladigan qizil disk raskadrovka oynasida ko'rsatilgan satrlarga e'tibor qarating.
- Agar sizning kodingiz to'g'ri bo'lsa va simulyatsiya hali ham ishlamasa, simlaringizni tekshiring.
- Sahifani qayta yuklang - sizda tizim/server bilan bog'liq bo'lmagan xato bo'lishi mumkin.
- Kompyuterga mushtingizni silkitib, yana tekshiring. Barcha dasturchilar buni qilishadi. Hammasi. The. Vaqt.
7 -qadam: Harorat sensori simini ulang
Siz hozir to'g'ri yo'ldasiz deb o'ylayman. Davom eting va rasmda ko'rsatilgandek harorat sensori simini ulang. 5V va GND simlarining yorug'lik bilan bir xil bo'shliqqa joylashishiga e'tibor bering. Bu yaxshi. Bu parallel elektronga o'xshaydi va simulyatorda muammo tug'dirmaydi. Haqiqiy sxemada, quvvatni yaxshiroq boshqarish va ulanishlarni ta'minlash uchun uzilish taxtasi yoki qalqondan foydalanish kerak.
Endi kodni yangilaymiz.
Harorat sensori kodi
Bu biroz murakkabroq, lekin biz o'qishni o'zgartirish uchun matematikani bajarishimiz kerak. Juda ham yomon emas.
int lightSensor = A0;
int tempSensor = A1; void setup () {// pinMode pin rejimini o'rnatish (lightSensor, INPUT); // Serial.begin (9600) ketma -ket kutubxonasini qo'shing; } void loop () {// Harorat sensori // Bir qatorda ikkita o'zgaruvchini yaratish - oh samaradorlik! // Float var o'nlik float kuchlanishini saqlash uchun, gradusC; // PIN qiymatini o'qing va uni 0 - 5 gacha o'qishga aylantiring // Asosan kuchlanish = (5/1023 = 0,004882814); kuchlanish = (analogRead (tempSensor) * 0.004882814); // C gradusga aylantirish C darajaC = (kuchlanish - 0,5) * 100; // Serial.print ketma -ket monitoriga chop etish ("Temp:"); Seriyali bosma (daraja C); Serial.println ("oC"); // Sensorni o'qing int reading = analogRead (lightSensor); // Qiymatni monitorga chop etish Serial.print ("Light:"); Serial.println (o'qish); // keyingi tsiklni 3 soniya kechiktirish bilan kechiktirish (3000); }
Men kodga ba'zi yangilanishlarni kiritdim. Keling, ularni alohida -alohida ko'rib chiqaylik.
Birinchidan, men qatorni qo'shdim
int tempSensor = A1;
Xuddi lightSensor singari, keyinroq oson bo'lishi uchun qiymatni o'zgaruvchiga saqlashim kerak. Agar men bu sensorning joyini o'zgartirishim kerak bo'lsa (masalan, taxtani qayta ulash), men faqat bitta kod satrini o'zgartirishim kerak, A0 yoki A1 ni o'zgartirish uchun butun kod bazasini qidirmayman va hokazo.
Keyin, biz o'qish va haroratni o'zgaruvchan saqlash uchun qator qo'shdik. Bir satrda ikkita o'zgaruvchiga e'tibor bering.
suzuvchi kuchlanish, daraja C;
Bu juda foydali, chunki u yozishim kerak bo'lgan qatorlar sonini kamaytiradi va kodni tezlashtiradi. Xatolarni topish qiyinroq bo'lishi mumkin.
Endi biz o'qiymiz va saqlaymiz, keyin uni chiqish qiymatiga o'zgartiramiz.
kuchlanish = (analogRead (tempSensor) * 0.004882814);
darajaC = (kuchlanish - 0,5) * 100;
Bu ikki satr qiyin ko'rinadi, lekin biz birinchisida o'qishni olamiz va uni 0,004 ga ko'paytiramiz, chunki u 1023 ni (analog o'qish bu qiymatni qaytaradi) 5dan o'qishga aylantiradi.
Ikkinchi satr o'qishni 100 ga ko'paytirib, kasrli nuqtani siljitadi. Bu bizga haroratni beradi. Pokiza!
8 -qadam: tekshirish va tekshirish
Hamma narsa rejalashtirilsa, sizda ishchi sxemasi bo'lishi kerak. Simulyatsiyani ishga tushirish va ketma -ket monitor yordamida tekshirish. Agar sizda xatolar bo'lsa, tekshiring, yana tekshiring va mushtingizni silkiting.
Siz erishdingizmi? O'zingizning hikoyangizni baham ko'ring va aytib bering!
Bu siz uchun o'rnatilgan yakuniy sxema, shuning uchun siz oxirgi yaratilishni o'ynashingiz/sinab ko'rishingiz mumkin. Qo'llanmani to'ldirganingiz uchun tashakkur!
Tavsiya:
NaTaLia ob -havo stantsiyasi: Arduino quyosh energiyasi bilan ishlaydigan ob -havo stantsiyasi to'g'ri yo'l bilan amalga oshirildi: 8 qadam (rasmlar bilan)
NaTaLia ob -havo stantsiyasi: Arduino quyosh energiyasi bilan ishlaydigan ob -havo stantsiyasi to'g'ri yo'lga qo'yildi: 1 yil davomida 2 xil joyda muvaffaqiyatli ishlaganimdan so'ng, men quyosh energiyasi bilan ishlaydigan ob -havo stantsiyasining loyiha rejalari bilan bo'lishaman va uning qanday qilib uzoq vaqt yashay oladigan tizimga aylanganini tushuntiraman. quyosh energiyasidan o'tgan davrlar. Agar ergashsangiz
Twinky bilan eng zo'r Arduino robot bilan tanishing: 7 qadam (rasmlar bilan)
Twinky bilan eng zo'r Arduino roboti bilan tanishing: Salom, men sizga "Jibo" ni o'zim qanday yaratganimni o'rgataman. lekin "Twinky" deb nomlangan, men buni ochib bermoqchiman … Bu nusxa emas! Men ikkiyuzlamachilik bilan qurardim va shundan keyingina shunga o'xshash narsaning mavjudligini tushundim: bu erda
Budilnik bilan DIY aqlli o'lchov (Wi-Fi, ESP8266, Arduino IDE va Adafruit.io bilan): 10 qadam (rasmlar bilan)
Budilnik bilan DIY aqlli o'lchov (Wi-Fi, ESP8266, Arduino IDE va Adafruit.io bilan): Oldingi loyihamda men Wi-Fi bilan aqlli hammom o'lchovini ishlab chiqdim. U foydalanuvchi vaznini o'lchashi, uni mahalliy ko'rsatishi va bulutga yuborishi mumkin. Bu haqda batafsil ma'lumotni quyidagi havola orqali olishingiz mumkin: https: //www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Raspberry Pi Zero W Datalogger: 8 qadam (rasmlar bilan)
Raspberry Pi Zero W Datalogger: Raspberry Pi Zero W -dan foydalanib, siz mahalliy Wi -Fi tarmog'iga ulanadigan yoki ma'lumotlarni yuklab olish imkonini beradigan kirish nuqtasi bo'lib xizmat qiladigan, arzon va ishlatish uchun qulay ma'lumotlar katalogini yasashingiz mumkin. Smartfoningiz bilan simsiz. Men hozir
Vaqt o'tishi bilan rasmlar uchun kamera osonlashtirildi: 22 qadam (rasmlar bilan)
Vaqt o'tishi bilan suratga olish uchun kamera osonlashtirildi. Men boshqa ko'rsatmalarni vaqtni tez suratga olish filmlarini suratga olishni tekshirib ko'rdim. U kino qismini juda yaxshi yoritgan. U filmlar yaratish uchun yuklab olishingiz mumkin bo'lgan bepul dasturiy ta'minot haqida gapirib berdi. Men o'z -o'zimga aytdim, men o'ylaymanki, agar men qila olsam