İçindekiler:

Atmosferik Kirlilik Görselleştirme: 4 Adım
Atmosferik Kirlilik Görselleştirme: 4 Adım

Video: Atmosferik Kirlilik Görselleştirme: 4 Adım

Video: Atmosferik Kirlilik Görselleştirme: 4 Adım
Video: SAYISALCILARA ÖZEL TYT COĞRAFYA FULL TEKRAR | SON TEKRAR KAMPI ♻ 2024, Kasım
Anonim
Atmosferik Kirlilik Görselleştirme
Atmosferik Kirlilik Görselleştirme

Hava kirliliği sorunu giderek daha fazla dikkat çekiyor. Bu sefer PM2.5'i Wio LTE ve yeni Lazer PM2.5 Sensörü ile izlemeye çalıştık.

Adım 1: Bu Projede Kullanılanlar

Donanım bileşenleri

  • Wio LTE AB Sürümü v1.3- 4G, Cat.1, GNSS, Espruino Uyumlu
  • Grove - Lazer PM2.5 Sensör (HM3301)
  • Koru - 16 x 2 LCD (Mavi Üzerine Beyaz)

Yazılım uygulamaları ve çevrimiçi hizmetler

  • Arduino IDE'si
  • PubNub Yayınla/Abone Ol API'si

2. Adım: Donanım Bağlantısı

Donanım Bağlantısı
Donanım Bağlantısı

Yukarıdaki resimdeki gibi, Wio LTE'nin LCD Grove ve PM2.5 Sensor Grove'a aynı anda bağlanabilmesi için I2C iletişimi için 2 grove hattı kestik. Bunu başarmak için bir I2C Hub kullanabilirsiniz.

Ve unutmayın, LTE antenini Wio LTE'ye bağlayın ve SIM kartınızı ona takın.

3. Adım: Web Yapılandırması

Web Yapılandırması
Web Yapılandırması

Bir PubNub hesabına giriş yapmak veya kaydolmak için burayı tıklayın, gerçek zamanlı veri iletmek için kullanılacaktır.

PubNub Admin Portal'da bir Demo Projesi göreceksiniz. Projeye girin, 2 anahtar var, Yayınlama Anahtarı ve Abone Olma Anahtarı, bunları Yazılım Programlama için hatırlayın.

Adım 4: Yazılım Programlama

Bölüm 1. Wio LTE

Wio LTE için bir PubNub kitaplığı olmadığından, gerçek zamanlı verilerimizi HTTP isteği aracılığıyla yayınlayabiliriz, bkz. PubNub REST API Belgesi.

resim
resim

Wio LTE'ye takılı SIM kartınızdan HTTP bağlantısı yapmak için önce APN'nizi ayarlamanız gerekir. Bunu bilmiyorsanız, lütfen mobil operatörünüze başvurun.

Ve APN'yi ayarladıktan sonra PubNub Yayınlama Anahtarınızı, Abone Anahtarınızı ve Kanalınızı ayarlayın. Burada bir Kanal, Yayıncıları ve Aboneleri ayırt etmek için kullanılır, Aboneler aynı Kanala sahip Yayıncılardan veri alacaktır.

Wio LTE'de Boot0 düğmesini basılı tutun, bir USB kablosuyla bilgisayarınıza bağlayın, Arduino IDE'deki kodu ona yükleyin. Yüklemeden sonra Wio LTE'yi sıfırlamak için RST düğmesine basın.

Bölüm 2. Web Sayfası

PubNub'a dönün, Demo Keyset'e girin ve soldaki Debug Console'a tıklayın, yeni bir sayfa açılacaktır.

resim
resim

Kanal adınızı Varsayılan Kanal metin kutusuna girin ve ardından İstemci Ekle düğmesini tıklayın. Bir süre bekleyin, Hata Ayıklama Konsolunda PM1.0, PM2.5 ve PM10 değerlerinin göründüğünü göreceksiniz.

Ama bizim için dostça değil, bu yüzden onu grafik olarak göstermeyi düşünüyoruz.

Öncelikle bilgisayarınızda yeni bir html dosyası oluşturun. Bir metin düzenleyici ile açın, ona temel html etiketleri ekleyin.

Ardından PubNub ve Chart.js'nin betiğini başa ekleyin, bu sayfaya bir başlık da ekleyebilirsiniz.

Tohum Toz Monitörü

Grafiği görüntülemek için bir yer olmalı, bu yüzden sayfanın gövdesine bir tuval ekliyoruz.

Ve gerçek zamanlı verilere abone olmak ve grafiği çizmek için javascript ekleyebilmemiz için komut dosyası etiketi ekleyin.

PubNub'dan gerçek zamanlı verilere abone olmak için bir PubNub nesnesi olmalıdır, var pubnub = new PubNub({

yayınlamaKey: "", aboneAnahtarı: "" });

ve ona bir dinleyici ekleyin.

pubnub.addListener({

mesaj: fonksiyon(mesaj) { } });

Fonksiyon mesajının msg parametresindeki mesaj üyesi ihtiyacımız olan veridir. Artık PubNub'dan gerçek zamanlı verilere abone olabiliriz:

pubnub.subscribe({

kanal: ["toz"] });

Ama bunu grafik olarak nasıl gösterebilirim? Gerçek zamanlı verileri tutmak için 4 dizi oluşturduk:

var chartLabels = new Array();

var chartPM1Data = new Array(); var chartPM25Data = new Array(); var chartPM10Data = new Array();

Bunlardan chartLabels dizisi, ulaşılan verileri tutmak için kullanılır, chartPM1Data, chartPM25Data ve chartPM10Data, sırasıyla PM1.0 verilerini, PM2.5 verilerini ve PM10 verilerini tutmak için kullanılır. Gerçek zamanlı veriler ulaştığında, bunları ayrı ayrı dizilere itin.

chartLabels.push(new Date().toLocalString());

chartPM1Data.push(msg.message.pm1); chartPM25Data.push(msg.message.pm25); chartPM10Data.push(msg.message.pm10);

Ardından grafiği görüntüleyin:

var ctx = document.getElementById("chart").getContext("2d");

var chart = new Chart(ctx, { type: "line", data: { labels: chartLabels, datasets: [{ label: "PM1.0", data: chartPM1Data, borderColor: "#FF6384", fill: false }, { label: "PM2.5", data: chartPM25Data, borderColor: "#36A2EB", fill: false }, { label: "PM10", data: chartPM10Data, borderColor: "#CC65FE", fill: false }] } });

Şimdi bu html dosyasını web tarayıcısı ile açın, veri değişikliklerini göreceksiniz.

Önerilen: