İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Yalnızca Arduino'nun millis() işlevini kullanarak Tarih/Saate göre Veri Çizmek için bu InstructableArduino Tarih/Saat Çizme/Günlük Millis() ve PfodApp Kullanarak Günlüğe Kaydetme bölümüne bakın
Bu Eğitilebilir Tablo, Arduino sensör verilerini Android mobil cihazınıza nasıl çizeceğinizi ve daha sonra bilgisayarınıza indirmek için nasıl yakalayacağınızı gösterir. Bu talimatlar www.pfod.com.au adresinde de mevcuttur. Hiçbir Android programlaması gerekmez ve Arduino programlaması çok az gereklidir. pfodApp kullanarak Basit Mobil Veri Günlüğü'nün bir uzantısıdır.
Adım 1: Hızlı Başlangıç Çizimi
a) Bir Arduino kartı ve bir Bluetooth Modülü alın (Uno ve Bluetooth Shield veya FioV3+Bluetooth gibi) b) Arduino IDE'yi kurun c) Arduino kartını (bağlı bluetooth modülü yok) bir USB kablosuyla bağlayın. d) Bu çizimi Arduino IDE'ye kopyalayın ve derleyin ve Arduino kartına yükleyin) e) Bluetooth Shield modülünü Uno'ya bağlayın (Bluetooth Shield 9600baud için önceden yapılandırılmıştır AMA 3V/5V anahtarını 5V'a ayarlayın ve ayarlayın) To Board/To FT232 anahtarı To Board konumuna f) Android Mobile'ınızı pfodApp ile yükleyin. g) Cep telefonunuz ile Bluetooth modülü arasında pfodAppForAndroidGettingStarted.pdf içinde açıklandığı gibi bir bağlantı kurun h) pfodApp'i başlatın ve Bluetooth modülü aracılığıyla Arduino kartınıza bağlanın. Bitirdim. Cep telefonunuz şimdi A0 girişi için Arduino AtoD dönüştürücü sayılarını kaydedecek ve çizecek
Adım 2: Çizim Taslağı
pfodApp kullanarak çizim yapmak için iki şey gerekir: - a) bir veri akışı (CSV formatında) ve b) pfodDevice'den bir çizim komutu (Arduino) SimpleDataPlotting.ino, sadece iki şey yapar. İlk olarak saniyede bir kez A0 analog girişini okur ve mevcut saniyeleri ve sayıları CSV formatında gönderir, İkinci olarak pfodApp bağlanıp ana menüyü talep ettiğinde, çizim, ölçümleri çizmeye başlamak için çizim komutuyla yanıt verir. A0 analog girişini okumak ve o anki saniyeyi yazmak için saniyede bir çalıştırılan kod bluetooth bağlantısına kadar sayar. // saniyede bir A0 oku int val = analogRead(0); // A0 // geçerli saati ve okumanın csv formatında çıktısını al parser.print(thisMillis/1000); // ilk alan saniye cinsinden zamandır parser.print(", "); // alanları virgülle ayırır parser.println(val); // yeni satır veri kaydını sonlandırır
İşte pfodDevice'in (Arduino Uno'nun) ana menüsü için pfodApp isteğine yanıt veren kod.
bayt cmd = parser.parse(); if (cmd != 0) { // tam bir msj ayrıştırıldı { to } if ('.' == cmd) { // pfodApp ana menü istedi // "çizim ekranı aç" geri gönder parser.print(F ("{=Analog A0 Grafik|Zaman(sn)|Sayılar}")); // bu ana menüdür } else if ('!' == cmd) { // CloseConnection komutu closeConnection(parser.getPfodAppStream()); } else { // bilinmeyen komut parser.print(F("{}")); // her zaman bir pfod mesajı gönder, aksi takdirde pfodApp bağlantıyı kesecektir. } }
Cep telefonunuzun pfodApp'i bağlandığında, otomatik olarak ana menüyü sorar ({.} mesajını göndererek), taslaktaki ayrıştırıcı (çizimin altındaki koda bakın) {.}'yi ayrıştırır ve '.' emretmek. Çizim daha sonra bir çizim komutu gönderir{=Analog A0 Plot|Time(sec)|A0 Counts} Bu komut, pfodApp'e “Analog A0 Plot” adlı bir ekranı açmasını ve süreyi sayımlara göre çizmesini söyler. pfodApp daha sonra gelen ham verileri tarar ve iki alanlı satırları arar ve ilk alanı x değeri, ikincisini y değeri olarak alır ve bu noktayı çizime ekler. Bir çizim ekranı (veya ham veri ekranı) açıldığında, pfodApp tüm ham verileri cep telefonunuzdaki yerel bir dosyaya kaydetmeye başlar. pfodApp, siz pfodApp'ten çıkana kadar verileri kaydetmeye devam eder. Daha sonraki işlemler için bu dosyayı bilgisayarınıza indirebilirsiniz (sonraki adımlardan birine bakın). Çizim komutunda, bazı alanları yok saymanıza, çizim ölçeklerini ayarlamanıza, tek bir çizelgede birden fazla çizimi çizmenize vb. izin veren bir dizi başka seçenek vardır. Ayrıntılar ve örnekler için pfodSpecification'a bakın. pfodApp sadece çizim yapmaktan çok daha fazlasını yapabilir, bu örneklere bakın. Yukarıdaki grafik, birinin üzerinde iki grafik bulunan iki grafiğin bir örneğidir. Bu arsa ArduMower'dan Kendin yap robotik biçme makinesi! robotik bir çim biçme makinesini kontrol etmek için aynı pfodApp'ı kullanır. Aynı pfodApp, tüm pfodDevices'ı kontrol etmek için kullanılır. Kullanıcılara hangi ekranların gösterileceğini tamamen belirleyen pfodDevices'dir.
3. Adım: Daha Fazla Detay
Android Market'te bulunan en son pfodApp sürümü, bir pfodDevice (örneğin Arduino) tarafından gönderilen ham verilerin daha sonra kullanılmak üzere bir dosyaya kaydedilmesini ve çizilmesini sağlar. Dosyayı Android cep telefonunuzdan bilgisayarınıza nasıl indireceğinizi öğrenmek için pfodAppForAndroidGettingStarted.pdf dosyasına bakın. Çizim için iki şey gerekir: - a) bir veri akışı (CSV formatında) ve b) pfodDevice'den bir çizim komutu. Onları diğer verilerden ayıran { } içine alınmış pfod mesajları. Verileri çizmek istiyorsanız, verileri CSV formatında göndermeniz gerekir. Bu, virgülle ayrılmış ve yeni bir satırla sonlandırılan veri değerleridir (CR veya LF veya CR LF) Örneğin105, 680 pfodDevice kullanıcıya bir çizim görüntülemek istediğinde, pfodDevice bir çizim komutu gönderir. Arduino taslağınız, pfodApp çizimlerinin tam kontrolüne sahiptir. Plot komutu, çizim ekranına bir başlık verir ve hangi ham veri akışının çizileceğini ve bu akıştan hangi alanların çizileceğini belirtir. Farklı ham veri akışları, farklı sayıda virgülle ayrılmış alanlara sahiptir. çubuk sayısı | arsa komutu, çizmek istediğiniz veri akışındaki alan sayısıyla eşleşmelidir. Bu çizim için farklı sayıda alana sahip veri satırları yoksayılır. Çizilecek alanları seçmek, ölçekleri ve birimleri ayarlamak ve tek bir çizelgeye birden çok çizim koymak için çizim komutunun bir dizi seçeneği vardır. En basiti, x değerlerini ilk alan olarak ve y değerlerini aşağıdaki alanlar olarak göndermek, ardından çizim komutunda x ekseni ve y eksenini ör. {=Analog A0 Grafiği | Zaman(sn) | A0 Sayar } arsa başlığı | x değerleri alanı | y değerleri alanı Cep telefonunuza gönderilen ham verileri de görüntüleyebilirsiniz. “Ham Veri” ekranına cep telefonunuzun menüsünü kullanarak pfodApp'ten erişilebilir veya pfodDevice tarafından bir streamRawData mesajı, {=Ekranın Başlığı Buraya Gidiyor}, yani çizim komutunun kesilmiş bir versiyonu gönderilerek açılabilir. Her iki durumda da pfodApp ham veri ekranı açılır ve pfodDevice'den gönderilen verileri görüntüler. Ekran açıldığında, pfodApp verileri bir dosyaya kaydetmeye başlayacaktır. Dosyanın adı, ekran (veya bir çizim ekranı) her açıldığında görüntülenir. Cep telefonunuzun istemediğiniz verilerle dolmasını önlemek için pfodApp, her yeni bağlantıdan sonra Ham Veri ekranı veya çizim ekranı ilk kez açılana kadar cep telefonunun SD kartına veri yazmaya başlamaz. Yeni bir bağlantıdan sonra Raw Data ekranı ilk açıldığında, açıldığında dosyaya daha önce alınan (bağlantı yapıldığından beri) 4K bayta kadar veri yazılır. Bu veriler arsa için de mevcuttur. Çoğu durumda bu, bağlantı kurulduğundan beri gönderilen tüm ham verilerin kaydedileceği anlamına gelir. Bağlantı kapatıldığında son veri yazılır ve dosya kapatılır. Dosya önceki bir bağlantıdan zaten mevcutsa, sonraki her bağlantıda dosyaya eklenir. Dosyayı bilgisayarınızdan indirebilir ve silebilirsiniz. Dosyaya bilgisayarınızdan nasıl erişeceğinizi öğrenmek için pfodAppForAndroidGettingStarted.pdf dosyasına bakın.
Adım 4: SerialMonitor ile Test Etme
Bluetooth ile bağlanmadan önce Arduino IDE SerialMonitor kullanarak çizimi test edebilirsiniz. Önce bluetooth kartını çıkarın, çünkü USB programlama ve seri monitör bağlantısı ile aynı TX/RX bağlantılarını kullanır ve taslağı (SimpleDataPlotting.ino) Arduino IDE'ye kopyalayıp yapıştırın ve Arduino kartını programlayın. Ardından Arduino IDE SerialMonitor'u açın Uno kartı tarafından gönderilen verileri görebilirsiniz. Ardından {.} yazın ve getMainMenu komutunu göndermek için “Gönder”e tıklayın, {.} pfodApp bağlandığında ilk göndereceği şey budur. Çizim, Çizim komutuyla yanıt verir. {=Analog A0 Plot|Time(sec)|A0 Counts}, pfodApp'ten bir çizim ekranı açmasını ve verileri çizmeye başlamasını isteyecektir. Bu aynı zamanda verileri bir dosyaya kaydetmeye başlar. pfod'un (İşlem Keşfi Protokolü) desteklediği tüm mesajlar ve ekranlarla ilgili ayrıntılar için pfodSpecification'a bakın.
Adım 5: Bir Android Mobil ile Bağlanma
Her şey yolunda, artık Arduino IDE ve SerialMonitor'u kapatabilir ve daha önce gösterildiği gibi Bluetooth kalkanını takabilirsiniz. Android Mobil cihazınıza bağlanmak için önce Android Market'ten pfodApp yükleyin, ardından Bluetooth kalkanınızı cep telefonunuzla eşleştirmek ve bir Bluetooth pfodApp bağlantısı kurmak için pfodAppForAndroidGettingStarted.pdf kılavuzunu izleyin. Bağlantımı “Basit Veri Günlüğü” olarak adlandırdım. Ardından basit veri kaydediciye bağlanmak için “Basit Veri Günlüğü” bağlantısını seçin. pfodApp bağlanır bağlanmaz, eskizin {=Analog A0 Plot|Time(sec)|A0 Counts} mesajıyla yanıt verdiği {.} mesajını gönderir, bu pfodApp grafiğine verileri söyler ve ayrıca verileri kaydetmeye başlar. Bu çizimde A0'ı Gnd'ye ve 5.5V ve 3.3V'ye bağladım ve ayrıca sadece gürültü alarak yüzer halde bıraktım.
Adım 6: Verileri Bilgisayarınıza Aktarma
pfodAppForAndroidGettingStarted.pdf, cep telefonunuzu USB üzerinden bilgisayarınıza nasıl bağlayacağınızı ve bilgisayarınızdan göz atabilmeniz için USB yığın depolamayı nasıl açacağınızı ayrıntılarıyla anlatır. Tüm ham veri dosyalarını pfodAppRawData klasöründe bulacaksınız. Yukarıda gösterildiği gibi, Basit Veri Kaydedici, verileri /pfodAppRawData/Simple Data Logging.txt klasörüne kaydetmiştir. pfodApp, verileri kaydetmek için dosya adı olarak bağlantının adını kullanır. Basit Veri Kaydedici Uzantıları Artık basit bir veri kaydediciniz var Verilerinizi hem çizen hem de kaydeden, kendi verilerinizi geri göndermek için taslağı değiştirebilirsiniz. Verilerinizi, Bluetooth modülünüze bağlı olan aynı Seri bağlantıya CSV formatında yazmanız yeterlidir. İkiden fazla veri alanınız varsa, çizim komutunu değiştirmeniz gerekecektir. Ayrıntılar ve örnekler için pfodSpecification'a bakın.