İçindekiler:
- Adım 1: Bazı Bileşenler Ekleyin
- 2. Adım: Breadboard'lar Hakkında Bir Not
- Adım 3: İki Sensör Ekleyin
- Adım 4: Işığa Duyarlı Sensör
- Adım 5: Kodu Başlatın
- Adım 6: Simülasyon
- 7. Adım: Sıcaklık Sensörünü Bağlayın
- 8. Adım: Test Etme ve Kontrol Etme
Video: Arduino Datalogger: 8 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Bu eğitimde Arduino kullanarak basit bir veri kaydedici yapacağız. Buradaki nokta, bilgi toplamak ve terminale yazdırmak için Arduino kullanmanın temellerini öğrenmektir. Bir dizi görevi tamamlamak için bu temel kurulumu kullanabiliriz.
Başlamak:
Bir Tinkercad (www.tinkercad.com) hesabına ihtiyacınız olacak. Başlayın ve e-postanız veya sosyal medya hesabınızla kaydolun.
Giriş yapmak sizi Tinkercad Dashboard'a götürür. Soldaki "Devreler"e tıklayın ve "Yeni Devre Oluştur"u seçin. Başlayalım!
Dosyanın tamamını TInkercad Circuits'te bulabilirsiniz - İncelediğiniz için teşekkürler!
Adım 1: Bazı Bileşenler Ekleyin
Bazı temel bileşenlere ihtiyacınız olacak. Bunlar şunları içerir:
- Arduino kurulu
- ekmek tahtası
Bunları arayarak ekleyin ve orta alana tıklayıp sürükleyin.
Breadboard'u Arduino'nun üzerine yerleştirin. Bağlantıları daha sonra görmeyi kolaylaştırır.
2. Adım: Breadboard'lar Hakkında Bir Not
Bir breadboard, hızlı prototipleme için süper yardımcı bir cihazdır. Bileşenleri bağlamak için kullanıyoruz. Dikkat edilmesi gereken bazı şeyler.
- Noktalar dikey olarak bağlanır, ancak ortadaki çizgi bu bağlantıyı üst ve alt sütunlardan ayırır.
- Sütunlar, satır boyunca olduğu gibi soldan sağa bağlı değildir. Bu, tüm bileşenlerin dikey olarak aşağıya değil sütunlara bağlanması gerektiği anlamına gelir.
- Düğmeleri veya anahtarları kullanmanız gerekiyorsa, bunları ortadaki devre arasına bağlayın. Bunu daha sonraki bir eğitimde ziyaret edeceğiz.
Adım 3: İki Sensör Ekleyin
Kullandığımız iki sensör, bir Işığa Duyarlı sensör ve Sıcaklık sensörüdür.
Bu sensörler ışığı ve sıcaklığı değerlendirir. Değeri okumak ve Arduino üzerindeki Seri monitörde görüntülemek için Arduino kullanıyoruz.
İki sensörü arayın ve ekleyin. Breadboard'daki sütunlar boyunca yerleştirildiklerinden emin olun. Onları daha kolay görebilmek için aralarında yeterli boşluk bırakın.
Adım 4: Işığa Duyarlı Sensör
- Işığa duyarlı sensör için Arduino üzerinde bulunan 5V pinden breadboard üzerindeki kısımda sağ bacak ile aynı kolona bir tel ekleyiniz. Tel rengini kırmızı olarak değiştirin.
- Sol ayağı aynı sütundaki pin üzerinden Arduino üzerindeki A0 (A-sıfır) pinine bağlayın. Bu, sensörden değeri okumak için kullanacağımız analog pindir. Bu kabloyu sarıya veya kırmızı veya siyahtan başka bir renge boyayın.
-
Tahtaya bir direnç yerleştirin (arayın ve tıklayın ve sürükleyin). Bu, devreyi tamamlar ve sensörü ve pimi korur.
- Sütunların üzerinden geçecek şekilde çevirin.
- Bir bacağı breadboard üzerindeki sağ bacak sütununa bağlayın
-
Direncin diğer ucundan toprağa bir tel yerleştirin
Tel rengini siyah olarak değiştirin
- Tüm bağlantıları iki kez kontrol edin. Bir şey doğru yerde değilse, bu düzgün çalışmayacaktır.
Adım 5: Kodu Başlatın
Şimdi bu bileşenin koduna bakalım.
İlk olarak, bu adımdaki üçüncü resme bakın. İki işlevli bazı kodlar içerir:
geçersiz kurulum()
boşluk döngüsü()
C++'da, tüm işlevler dönüş türlerini, ardından adlarını, ardından argümanları genellikle değişkenler olarak iletmek için kullanılabilecek iki yuvarlak ayraç sağlar. Bu durumda, dönüş türü void veya hiçbir şey değildir. Ad kurulumdur ve işlev hiçbir argüman almaz.
Kurulum işlevi, Arduino önyüklendiğinde (fiş taktığınızda veya pil taktığınızda) bir kez çalışır.
Döngü işlevi, kurulum işlevinin tamamladığı milisaniyeden itibaren sabit bir döngüde çalışır.
Arduino çalıştığında döngü işlevine koyduğunuz her şey çalışacaktır. Bunun dışındaki her şey yalnızca çağrıldığında çalışır. Sanki döngü dışında başka bir fonksiyon tanımlamış ve çağırmışız gibi.
Görev
Tinkercad'deki düğmeyle Kod panelini açın. Bloklar açılır menüsünü Metin olarak değiştirin. Açılan uyarı kutusunu kabul edin. Şimdi, bu adımda üçüncü resimdeki metin dışında gördüğünüz her şeyi silin.
Değişkenler
Başlamak için, kodumuzu gerçekten verimli hale getirmek için bazı değişkenler atamamız gerekiyor.
Değişkenler, yalnızca bir nesne tutabilen kovalar gibidir (C++, nesne yönelimli dediğimiz şeydir). Evet, dizilerimiz var ama bunlar özel değişkenler ve onlardan daha sonra bahsedeceğiz. Bir değişken atadığımızda, ona ne tür olduğunu söylememiz ve ardından ona bir değer vermemiz gerekiyor. Şuna benziyor:
int bazıVar = A0;
Böylece bir değişken atadık ve ona int tipini verdik. Bir int, bir tam sayı veya tam sayıdır.
"Ama tam sayı kullanmamışsın!" dediğinizi duyar gibiyim. Bu doğru.
Arduino bizim için özel bir şey yapar, böylece A0'ı bir tamsayı olarak kullanabiliriz, çünkü başka bir dosyada A0'ı bir tamsayı olarak tanımlar, böylece ne olduğunu bilmeden bu tamsayıya atıfta bulunmak için A0 sabitini kullanabiliriz. Sadece 0 yazsaydık, 0 konumundaki dijital pime atıfta bulunurduk ve bu işe yaramazdı.
Bu yüzden kodumuz için eklediğimiz sensör için bir değişken yazacağız. Ben basit bir isim vermenizi tavsiye etsem de, bu size kalmış.
Kodunuz şöyle görünmelidir:
int lightSensor = A0;
geçersiz kurulum() { } geçersiz döngü() { }
Şimdi Arduino'ya o pin üzerindeki sensörü nasıl kullanacağını anlatalım. Pin modunu ayarlamak ve Arduino'ya onu nerede arayacağını söylemek için kurulum içinde bir fonksiyon çalıştıracağız.
int lightSensor = A0;
void setup() { pinMode(lightSensor, INPUT); } boşluk döngüsü() { }
pinMode işlevi, Arduino'ya (A0) pininin bir INPUT pini olarak kullanılacağını söyler. Değişkenler ve işlev adları için camelCaseUsed'e dikkat edin (bakınız her ilk harf büyük harftir, içinde tümsekler vardır, dolayısıyla… camel…!). Bu bir kongre ve alışmak güzel.
Son olarak, biraz veri almak için analogRead işlevini kullanalım.
int lightSensor = A0;
void setup() { pinMode(lightSensor, INPUT); } void loop() { int okuma = analogRead(lightSensor); }
Okumayı bir değişkende sakladığımızı göreceksiniz. Yazdırmamız gerektiğinden bu önemlidir. Bunu seri monitöre yazdırmak için Seri kitaplığını (bir kitaplık, yalnızca tanımıyla çağırarak işleri daha hızlı yazmamızı sağlamak için kodumuza ekleyebileceğimiz koddur) kullanalım.
int lightSensor = A0;
void setup() { // Pin modlarını ayarla pinMode(lightSensor, INPUT); // Serial.begin(9600) seri kitaplığını ekleyin; } void loop() { // Sensörü oku int okuma = analogRead(lightSensor); // Değeri monitöre yazdırın Serial.print("Light: "); Serial.println(okuma); // sonraki döngüyü 3 saniye geciktir (3000); }
Birkaç yeni şey! İlk önce şunları göreceksiniz:
// Bu bir yorumdur
Diğer insanlara kodumuzun ne yaptığını anlatmak için yorumları kullanırız. Bunları sık sık kullanmalısınız. Derleyici bunları okumaz ve koda dönüştürmez.
Şimdi, Seri kütüphanesini de satırı ile ekledik.
Seri.başlangıç(9600)
Bu, bir argüman alan bir fonksiyon örneğidir. Serial kütüphanesini çağırdınız, sonra bir fonksiyon çalıştırdınız (yuvarlak ayraçlar nedeniyle bir fonksiyon olduğunu biliyoruz) ve bir tamsayıyı argüman olarak ileterek Seri fonksiyonunu 9600baud'da çalışacak şekilde ayarladınız. Nedenini merak etmeyin - şimdilik sadece işe yaradığını bilin.
Bir sonraki yaptığımız şey seri monitöre yazdırmaktı. İki fonksiyon kullandık:
// Bu, satır sonu olmadan seriye yazdırır (sonunda bir giriş)
Serial.print("Işık: "); // Bu satır sonunu koyar, böylece her okuyup yazdığımızda yeni bir satıra geçer Serial.println(reading);
Önemli olan, her birinin ayrı bir amacı olduğudur. Dizelerinizin çift tırnak işareti kullandığından ve iki nokta üst üste işaretinden sonra boşluk bıraktığınızdan emin olun. Bu, kullanıcı için okunabilirliğe yardımcı olur.
Son olarak, döngüyü yavaşlatmak ve her üç saniyede bir okumasını sağlamak için gecikme işlevini kullandık. Bu binlerce saniyede yazılmıştır. Her 5 saniyede bir okuyacak şekilde değiştirin.
Harika! Gidiyoruz!
Adım 6: Simülasyon
Simülasyonu çalıştırarak her zaman işlerin çalıştığını kontrol edin. Bu devre için, çalışıp çalışmadığını kontrol etmek ve değerlerinizi kontrol etmek için simülatörü de açmanız gerekir.
Simülasyonu başlatın ve seri monitörü kontrol edin. Işık sensörünün değerini üzerine tıklayarak ve kaydırıcıyı kullanarak değeri değiştirin. Seri monitörde de değer değişimini görmelisiniz. Olmazsa veya Simülasyonu Başlat düğmesine bastığınızda hata alırsanız, dikkatlice geri dönün ve tüm kodunuzu kontrol edin.
- Size sunulacak olan kırmızı hata ayıklama penceresinde gösterilen satırlara odaklanın.
- Kodunuz doğruysa ve simülasyon hala çalışmıyorsa, kablolamanızı kontrol edin.
- Sayfayı yeniden yükleyin - alakasız bir sistem/sunucu hatasıyla karşılaşabilirsiniz.
- Bilgisayarda yumruğunu salla ve tekrar kontrol et. Tüm programcılar bunu yapar. Tüm. NS. Zaman.
7. Adım: Sıcaklık Sensörünü Bağlayın
Şimdi doğru yolda olduğunuzu varsayacağım. Devam edin ve resimde önerildiği gibi sıcaklık sensörünü bağlayın. 5V ve GND kablolarının ışık için olanlarla aynı alana yerleştirilmesine dikkat edin. Tamamdır. Paralel devre gibidir ve simülatörde sorun yaratmaz. Gerçek bir devrede, daha iyi güç yönetimi ve bağlantılar sağlamak için bir devre kartı veya ekran kullanmalısınız.
Şimdi kodu güncelleyelim.
sıcaklık sensörü kodu
Bu biraz daha zor, ama sadece okumayı dönüştürmek için biraz matematik yapmamız gerektiğinden. Çok kötü değil.
int lightSensor = A0;
int tempSensor = A1; void setup() { // Pin modlarını ayarla pinMode(lightSensor, INPUT); // Serial.begin(9600) seri kitaplığını ekleyin; } void loop() { // Sıcaklık sensörü // Bir satırda iki değişken yaratmak - oh verimlilik! // Float değişken ondalık bir kayan nokta voltajı depolamak için, dereceC; // Pimin değerini okuyun ve 0 - 5 arasında bir okumaya dönüştürün // Esasen voltaj = (5/1023 = 0.004882814); voltaj = (analogRead(tempSensor) * 0.004882814); // Dereceye Dönüştür C dereceC = (voltaj - 0,5) * 100; // Seri monitöre yazdırın Serial.print("Temp: "); Seri.print(dereceC); Serial.println("oC"); // Sensörü oku int okuma = analogRead(lightSensor); // Değeri monitöre yazdırın Serial.print("Light: "); Serial.println(okuma); // sonraki döngüyü 3 saniye geciktir (3000); }
Kodda bazı güncellemeler yaptım. Bunları tek tek inceleyelim.
İlk önce satırı ekledim
int tempSensor = A1;
LightSensor gibi, daha sonra kolaylaştırmak için değeri bir değişkende saklamam gerekiyor. Bu sensörün yerini değiştirmek zorunda kalırsam (kartı yeniden kablolamak gibi), o zaman sadece bir kod satırını değiştirmem gerekir, A0 veya A1'i değiştirmek için tüm kod tabanını aramam, vb.
Ardından, okuma ve sıcaklığı bir şamandırada saklamak için bir satır ekledik. Bir satırda iki değişkeni not edin.
şamandıra gerilimi, dereceC;
Bu gerçekten yardımcı oluyor çünkü yazmam gereken satır sayısını azaltıyor ve kodu hızlandırıyor. Yine de hataları bulmak daha zor olabilir.
Şimdi, okumayı yapacağız ve saklayacağız, sonra onu çıktı değerimize dönüştüreceğiz.
voltaj = (analogRead(tempSensor) * 0.004882814);
dereceC = (voltaj - 0,5) * 100;
Bu iki satır zor görünüyor, ancak ilkinde okumayı alıp 0.004 ile çarpıyoruz… çünkü 1023'ü (analog okuma bu değeri döndürür) 5 üzerinden bir okumaya dönüştürür.
Oradaki ikinci satır, ondalık noktayı taşımak için bu okumayı 100 ile çarpar. Bu bize sıcaklığı verir. Düzenli!
8. Adım: Test Etme ve Kontrol Etme
Her şey planlanacak, çalışan bir devreniz olmalı. Simülasyonu çalıştırarak ve seri monitörü kullanarak test edin. Hatalarınız varsa kontrol edin, tekrar kontrol edin ve yumruğunuzu sallayın.
Onu sen mi yaptın? Paylaşın ve bize hikayenizi anlatın!
Bu sizin için gömülü olan son devredir, böylece son yaratımı oynayabilir/test edebilirsiniz. Eğitimi tamamladığınız için teşekkürler!
Önerilen:
GPS Para Norma (Datalogger EEPROM): 5 Adım
GPS Para Norma (Datalogger EEPROM): Arduino ve EEPROM kaydına dayalı basit GPS pet datalogger================================== ========================Sencillo veri kaydedici GPS para maskotları basado ve arduino y grabacion en memoria EEPROM
Alaska Datalogger: 5 Adım (Resimlerle)
Alaska Datalogger: Alaska, ilerleyen iklim değişikliğinin eşiğinde. Çeşitli kömür madeni kanaryaları ile dolu, oldukça el değmemiş bir manzaraya sahip olan eşsiz konumu, birçok araştırma olanağı sağlar. Arkadaşımız Monty, yardımcı olan bir Arkeolog
RTC, Nokia LCD ve Encoder ile Arduino Datalogger: 4 Adım
RTC, Nokia LCD ve Kodlayıcılı Arduino Veri Kaydedici: Parçalar: Arduino Nano veya Arduino Pro Mini Nokia 5110 84x48 LCD DHT11 sıcaklık/nem sensörü DS1307 veya DS3231 RTC modülü, dahili AT24C32 EEPROM 3 geri tepme kapasitörlü ucuz kodlayıcı Özellikler: Nokia LCD tabanlı GUI ve tr
GPS_EXT RAM_EXT_RTC İLE ESP32 ADXL345 DATALOGGER: 8 Adım
GPS_EXT RAM_EXT_RTC İLE ESP32 ADXL345 DATALOGGER: Dışarıda Wemos 32 LOLIN kartıyla oynayanlar için şu ana kadar bazı bulgularımı belgelemeye başlamayı düşündüm. Şu anki proje bir ADXL345 ivmeölçer ile arayüz oluşturmak ve yukarıdaki fotoğrafta gösterildiği gibi i başarıyla bağlandı
Raspberry Pi Zero W Datalogger: 8 Adım (Resimli)
Raspberry Pi Zero W Veri Kaydedici: Raspberry Pi Zero W kullanarak, yerel bir wifi ağına bağlanabilen veya sahada veri indirmenize izin veren bir erişim noktası görevi görebilen, ucuz ve kullanımı kolay bir veri kaydedici yapabilirsiniz. akıllı telefonunuzla kablosuz olarak. Sunuyorum