İçindekiler:

Arduino'dan SD Kart Modülü ile Bluetooth Üzerinden Android Telefona Sıcaklık ve Nem Veri Kaydedici: 5 Adım
Arduino'dan SD Kart Modülü ile Bluetooth Üzerinden Android Telefona Sıcaklık ve Nem Veri Kaydedici: 5 Adım

Video: Arduino'dan SD Kart Modülü ile Bluetooth Üzerinden Android Telefona Sıcaklık ve Nem Veri Kaydedici: 5 Adım

Video: Arduino'dan SD Kart Modülü ile Bluetooth Üzerinden Android Telefona Sıcaklık ve Nem Veri Kaydedici: 5 Adım
Video: 2020 için 30 Ultimate Windows 10 İpuçları ve Püf Noktaları 2024, Aralık
Anonim
Arduino'dan SD Kart Modülü ile Bluetooth Üzerinden Android Telefona Sıcaklık ve Nem Veri Kaydedici
Arduino'dan SD Kart Modülü ile Bluetooth Üzerinden Android Telefona Sıcaklık ve Nem Veri Kaydedici

Herkese Merhaba, Bu benim ilk Eğitilebilirliğim, Umarım bundan faydalandığım için yapımcı topluluğuna yardım ederim.

Projelerimizde sıklıkla sensörler kullanıyoruz ancak verileri toplamanın, saklamanın ve aktarmanın bir yolunu bulmayı hemen buluyoruz Telefonlar veya diğer cihazlar ve kablosuz, hazır bir süreç değildi. Bu Eğitilebilirlik size rehberlik edecek

  • Sensörden Veri Alma (DHT 11) - sıcaklık ve nem sensörü.
  • Alınan verilerin SD kart modülü ile SD kartta saklanması.
  • Bluetooth kullanarak verileri kablosuz olarak özel yapılmış bir Android Uygulamasına aktarma.
  • Alınan sensör değerlerinin metin dosyası (.txt dosyası) olarak saklanması.

Adım 1: Bileşen Listesi

Bileşen Listesi
Bileşen Listesi
Bileşen Listesi
Bileşen Listesi
Bileşen Listesi
Bileşen Listesi

Bu harika projeyi yapmak için askerleri toplamak için aşağı inelim.

  • Arduino Uno (başka herhangi bir arduino da uygun olacaktır)
  • mikro SD kart modülü.
  • SD kart modülü (benim kullandığım 8 GB, >=32 GB kullanılması tavsiye edilir)
  • HC05 - Bluetooth modülü
  • DHT11 (Sıcaklık ve Nem Sensörü)
  • Bir sürü jumper.
  • Android telefon

Adım 2: Bağlantılar:

Bağlantılar
Bağlantılar

Bileşenlerin bir araya getirilmesi ve bağlanması proje için yarı yarıya tamamlandı. Bahsedilen ürünler, çoğu perakende elektronik mağazasında ve Amazon gibi çevrimiçi sitelerde kolayca bulunabilir.

Arduino - HC05 bağlantısı(Bluetooth):

  • +5V - Vcc
  • Gnd - Gnd
  • Pin 0 - Tx
  • Pin 1 - Rx

Arduino - SDcard modül bağlantısı:

  • +5V - Vcc
  • Gnd - Gnd
  • Pin 11 - MOSI (Master Out Slave In)
  • Pin 12 - MISO (Master In Slave Out)
  • Pin 13 - SCk (Saat senkron)
  • Pin 4 - CS (Çip Seçimi)

Arduino - HC05 bağlantısı(Bluetooth):

  • +5V - Vcc
  • Gnd - Gnd
  • Pin A0 - Sinyal

Adım 3: Prosedür

prosedür
prosedür

Tüm parçaları bir önceki adımda anlatıldığı gibi bağlayın, bununla amacımıza ulaşmak için Arduino Ide içerisine kod yazabiliriz.

Projemizin ikinci kısmı ise sensör değerlerini almak, değerleri görüntülemek ve mobilde bir dosyada saklamak için bir Android uygulamasına sahip olmaktır. Android Uygulamasını yapmak için Thunkable'ı kullandım ve bunun için apk ve aia sağladım.

Adım 4: Arduino Kodu:

Arduino Kodu aşağıda verilmiş ve açıklanmıştır.

Arduino kodu çoğunlukla SD kart kitaplığı ve DHT11 kitaplığı ile kendini açıklayıcıdır. Bluetooth, arduino'nun pin0 ve pin1 olan donanım serilerini kullanır, dolayısıyla bluetooth aktarımı, I2C protokolünü kullanan Serial print() işlevleriyle gerçekleşir ve SD kart modülü, onunla iletişim kurmak için SPI protokolünü kullanır.

/*

* SPI veriyoluna aşağıdaki şekilde takılı SD kart:

** MOSI - pin 11 ** MISO - pin 12 ** CLK - pin 13 ** CS - pin 4 (MKRZero SD için: SDCARD_SS_PIN) * *HC 05 modül bağlantısı: ** TX - pin 0 (varsayılan)[olabilir Softwareserial kullanılıyorsa değiştirilir] ** RX - pin 1 (varsayılan) [Softwareserial kullanılıyorsa değiştirilebilir]

*/

#Dahil etmek

#include #include

Dosya myFile;

dht DHT; #define DHT11_PIN A0

geçersiz kurulum() {

// Seri iletişimi açın ve bağlantı noktasının açılmasını bekleyin: Serial.begin(9600); Serial.println("Tip, \tDurum, \tNem(%), \tSıcaklık(C)"); while (!Seri) {; // seri bağlantı noktasının bağlanmasını bekleyin. Yalnızca yerel USB bağlantı noktası için gereklidir } DHTAcq(); sdCardWrite("test3.txt"); sdCardRead("test3.txt");

}

geçersiz DHTAcq()

{ Serial.println("DHT11,\t"); int chk = DHT.read11(DHT11_PIN); Seri.baskı(DHT.nem, 1); Seri.print(", \t"); Seri.baskı(DHT.sıcaklık, 1); gecikme(2000); }

void sdCardWrite(Dize dosyaAdıStr)

{ Serial.println("SD kart başlatılıyor"); if (!SD.begin(4)) { Serial.println("Başlatma başarısız."); dönüş; } Serial.println("Başlatma tamamlandı!"); // dosyayı aç. aynı anda yalnızca bir dosyanın açılabileceğine dikkat edin, // bu nedenle başka bir dosyayı açmadan önce bunu kapatmanız gerekir. myFile = SD.open(fileNameStr, FILE_WRITE); // dosya açıldıysa, ona yazın: if (myFile) { myFile.println("DHT11, \t"); int chk = DHT.read11(DHT11_PIN); myFile.print(DHT.nem, 1); myFile.print(", \t"); myFile.print(DHT.temperature, 1); myFile.close(); Serial.println("bitti!"); gecikme(200); /*Serial.print("test.txt'ye yazılıyor…"); myFile.println("1, 2, 3 testi."); // dosyayı kapat: myFile.close(); Serial.println("bitti."); */ } else { // dosya açılmadıysa bir hata yazdırın: Serial.println("test.txt açılırken hata oluştu"); } }

geçersiz sdCardRead(Dize dosyasıAdı)

{ // dosyayı okumak için yeniden açın: myFile = SD.open(fileName); if (myFile) { Serial.println("test.txt:"); // dosyadan başka bir şey kalmayana kadar oku: while (myFile.available()) { Serial.write(myFile.read()); } // dosyayı kapat: myFile.close(); } else { // dosya açılmadıysa bir hata yazdırın: Serial.println("test.txt açılırken hata oluştu"); } }

boşluk döngüsü () {

// kurulumdan sonra hiçbir şey olmuyor //Serial.println("test 1.. 2.. 3"); //gecikme(1000); }

Adım 5: Android Uygulaması:

Android uygulaması
Android uygulaması
Android uygulaması
Android uygulaması

Android uygulaması Thunkable uygulaması ile sürükle bırak programlama ile yapılmıştır. Verileri ekrandaki etikete kaydedecek ve AppInventor/Data konumunda kodu verilen dosya adıyla Verileri Sakla düğmesine basıldığında.

Proje, istenen sensör modülleri ile değiştirilerek, istediğimiz sensör verilerinin çevrimdışı depolanmasına sahip olacak şekilde genişletilebilir ve uygulama, verileri depodan almak ve uygulamaya uyacak şekilde manipüle etmek için genişletilebilir.

Önerilen: