İçindekiler:

Web Sunucusu Üzerinden Harita Yönlendirme: 6 Adım
Web Sunucusu Üzerinden Harita Yönlendirme: 6 Adım

Video: Web Sunucusu Üzerinden Harita Yönlendirme: 6 Adım

Video: Web Sunucusu Üzerinden Harita Yönlendirme: 6 Adım
Video: Windows Server IIS ve DNS ile Web Sitesi Yayınlama 2024, Kasım
Anonim
Web Sunucusu Üzerinden Harita Yönlendirme
Web Sunucusu Üzerinden Harita Yönlendirme

Nesnelerin İnterneti (IoT), şu anda gezegendeki popüler konulardan biridir. Ve internetle birlikte her geçen gün hızla büyüyor. Nesnelerin İnterneti, basit evleri, ışıklarınızdan kilitlerinize kadar her şeyin akıllı telefonunuzdan veya masaüstünüzden kontrol edilebildiği akıllı evlere dönüştürüyor. Bu herkesin sahip olmak istediği lüks.

Her zaman elimizdeki araçlarla oynuyoruz ve sınırlarımızın bir sonraki adımına geçmek için çalışmaya devam ediyoruz. Müşterilerimize en son teknolojiler ve fikirler hakkında bir vizyon kazandırmaya çalışıyoruz. Böylece evinizi akıllı evlere dönüştürebilir ve fazla çaba harcamadan lüksün tadını çıkarabilirsiniz.

Bugün, IoT'nin en önemli konularından biri olan Dijital Harita Yönlendirmesi üzerinde çalışmayı düşünüyoruz.

Herhangi bir cihazın veya herhangi bir şeyin hareketlerini izleyebileceğimiz bir web sunucusu kuracağız (Kimi gözetlemek istediğiniz size kalmış;)). Bu projeyi bazı değişikliklerle bir sonraki seviyeye yükseltmeyi her zaman düşünebilirsiniz ve aşağıdaki yorumlarda bize söylemeyi unutmayın.

Hadi başlayalım.. !!

Adım 1: İhtiyacımız Olan Ekipman.. !

İhtiyacımız Olan Ekipman.. !!
İhtiyacımız Olan Ekipman.. !!
İhtiyacımız Olan Ekipman.. !!
İhtiyacımız Olan Ekipman.. !!
İhtiyacımız Olan Ekipman.. !!
İhtiyacımız Olan Ekipman.. !!
İhtiyacımız Olan Ekipman.. !!
İhtiyacımız Olan Ekipman.. !!

1. LSM9DS0 Sensörü

STMicroelectronics tarafından üretilen 3'ü 1 arada sensör olan LSM9DS0, 3D dijital doğrusal hızlanma sensörü, 3D dijital açısal hız sensörü ve 3D dijital manyetik sensör içeren bir paket sistemdir. LSM9DS0, ±2g/±4g/±6g/±8g/±16g'lik bir doğrusal ivme tam ölçeğine, ±2/±4/±8/±12 gauss'luk bir manyetik alan tam ölçeğine ve ±245'lik bir açısal hıza sahiptir. /±500/±2000 dps.

2. Adafruit Huzzah ESP8266

Espressif'in ESP8266 işlemcisi, tam WiFi ön ucuna (hem istemci hem de erişim noktası olarak) ve DNS destekli TCP/IP yığınına sahip 80 MHz'lik bir mikro denetleyicidir. ESP8266, IoT uygulama geliştirme için inanılmaz bir platformdur. ESP8266, Arduino Wire Language ve Arduino IDE kullanarak uygulamaları izlemek ve kontrol etmek için olgun bir platform sağlar.

3. ESP8266 USB Programlayıcı

ESP8266 ana bilgisayar adaptörü, ESP8266'nın Adafruit Huzzah versiyonu için Dcube Store tarafından özel olarak tasarlandı ve I²C arayüzüne izin verdi.

4. I2C Bağlantı Kablosu

5. Mini USB Kablosu

Mini USB kablosu Güç kaynağı, Adafruit Huzzah ESP8266'ya güç sağlamak için ideal bir seçimdir.

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

Donanım Bağlantıları
Donanım Bağlantıları
Donanım Bağlantıları
Donanım Bağlantıları
Donanım Bağlantıları
Donanım Bağlantıları

Genel olarak, bağlantı kurmak bu projede en kolay kısımdır. Talimatları ve resimleri takip edin ve sorun yaşamamalısınız.

Öncelikle Adafruit Huzzah ESP8266'yı alın ve üzerine USB Programlayıcıyı (İçe Bakan I²C Portlu) yerleştirin. USB Programlayıcıya hafifçe basın ve bu adımı pasta kadar kolay bir şekilde bitirdik (Yukarıdaki resme bakın).

Sensör Bağlantısı Adafruit Huzzah ESP8266Sensörü alın ve I²C Kablosunu ona bağlayın. Bu kablonun düzgün çalışması için lütfen I²C Çıkışının DAİMA I²C Girişine bağlandığını unutmayın. Aynısı, üzerine USB Programlayıcı monte edilmiş Adafruit Huzzah ESP8266 için de izlenmelidir (Yukarıdaki resme bakın).

ESP8266 USB Programmer yardımı ile ESP'yi programlamak çok kolaydır. Tek yapmanız gereken sensörü USB Programlayıcıya takmak ve hazırsınız. Donanımı bağlamayı çok kolaylaştırdığı için bu adaptörü kullanmayı tercih ediyoruz. ESP'nin pinlerini sensöre lehimlemek veya pin diyagramlarını ve veri sayfasını okumakla uğraşmayın. Aynı anda birden fazla sensör kullanabilir ve üzerinde çalışabiliriz, sadece bir zincir yapmanız yeterlidir. Bu tak ve çalıştır USB Programlayıcı olmadan yanlış bağlantı yapma riski çok fazladır. Kötü bir kablolama, sensörünüzün yanı sıra wifi'nizi de öldürebilir.

Not: Kahverengi kablo her zaman bir aygıtın çıkışı ile başka bir aygıtın girişi arasındaki Toprak (GND) bağlantısını izlemelidir.

Devreye Güç Verme

Mini USB kablosunu Adafruit Huzzah ESP8266'nın güç girişine takın. Aydınlat ve işte, gitmeye hazırız!

3. Adım: Kodlayın

kod
kod

Adafruit Huzzah ESP8266 ve LSM9DS0 Sensörü için ESP Kodu, github depomuzda mevcuttur.

Kodlara geçmeden önce Readme dosyasında verilen talimatları okuduğunuzdan ve Adafruit Huzzah ESP8266'nızı buna göre kurduğunuzdan emin olun. ESP'yi kurmak sadece 5 dakika sürecektir.

Kod uzun ama hayal edebileceğiniz en basit formda ve anlamakta zorluk çekmeyeceksiniz.

Size kolaylık sağlamak için, bu sensör için çalışan ESP kodunu buradan da kopyalayabilirsiniz:

// Bir özgür irade lisansıyla dağıtılır.// İlişkili eserlerinin lisanslarına uyması koşuluyla, istediğiniz şekilde, kârlı veya ücretsiz olarak kullanın. // LSM9DSO // Bu kod, dcubestore.com adresinde bulunan TCS3414_I2CS I2C Mini Modülü ile çalışmak üzere tasarlanmıştır.

#Dahil etmek

#Dahil etmek

#Dahil etmek

#Dahil etmek

// LSM9DSO Gyro I2C adresi 6A(106)

#define Addr_Gyro 0x6A // LSM9DSO Accl I2C adresi 1E(30) #define Addr_Accl 0x1E

const char* ssid = "ssid'iniz";

const char* şifre = "şifreniz"; int xGyro, yGyro, zGyro, xAccl, yAccl, zAccl, xMag, yMag, zMag;

ESP8266WebServer sunucusu(80);

geçersiz tutamaç()

{ imzasız int veri[6];

// I2C İletimini Başlat

Wire.beginTransmission(Adr_Gyro); // Kontrol kaydı seç 1 Wire.write(0x20); // Veri hızı = 95Hz, X, Y, Z-Ekseni etkin, güç açık Wire.write(0x0F); // I2C İletimini Durdur Wire.endTransmission();

// I2C İletimini Başlat

Wire.beginTransmission(Adr_Gyro); // Kontrol kaydı seç 4 Wire.write(0x23); // Tam ölçekli 2000 dps, sürekli güncelleme Wire.write(0x30); // I2C İletimini Durdur Wire.endTransmission();

// I2C İletimini Başlat

Wire.beginTransmission(Adr_Accl); // Kontrol kaydı seç 1 Wire.write(0x20); // Hızlanma veri hızı = 100Hz, X, Y, Z-Ekseni etkin, güç açık Wire.write(0x67); // Wire.endTransmission() cihazında I2C İletimini durdur;

// I2C İletimini Başlat

Wire.beginTransmission(Adr_Accl); // Kontrol kaydı seç 2 Wire.write(0x21); // Tam ölçek seçimi +/- 16g Wire.write(0x20); // I2C İletimini Durdur Wire.endTransmission();

// I2C İletimini Başlat

Wire.beginTransmission(Adr_Accl); // Kontrol kaydı seç 5 Wire.write(0x24); // Manyetik yüksek çözünürlük, çıkış veri hızı = 50Hz Wire.write(0x70); // I2C İletimini Durdur Wire.endTransmission();

// I2C İletimini Başlat

Wire.beginTransmission(Adr_Accl); // Kontrol kaydı seç 6 Wire.write(0x25); // Manyetik tam ölçekli +/- 12 gauss Wire.write(0x60); // I2C İletimini Durdur Wire.endTransmission();

// I2C İletimini Başlat

Wire.beginTransmission(Adr_Accl); // Kontrol kaydı seç 7 Wire.write(0x26); // Normal mod, manyetik sürekli dönüştürme modu Wire.write(0x00); // I2C İletimini Durdur Wire.endTransmission(); gecikme(300);

for (int i = 0; i < 6; i++) { // I2C Transmission Wire.beginTransmission(Addr_Gyro); // Veri kaydını seçin Wire.write((40 + i)); // I2C İletimini Durdur Wire.endTransmission();

// 1 bayt veri iste

Wire.requestFrom(Addr_Gyro, 1);

// 6 bayt veri oku

// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb if (Wire.available() == 1) { data = Wire.read(); } }

// Verileri dönüştür

int xGyro = ((veri[1] * 256) + veri[0]); int yGyro = ((veri[3] * 256) + veri[2]); int zGyro = ((veri[5] * 256) + veri[4]);

for (int i = 0; i < 6; i++) { // I2C Transmission Wire.beginTransmission(Addr_Accl); // Veri kaydını seçin Wire.write((40 + i)); // I2C İletimini Durdur Wire.endTransmission();

// 1 bayt veri iste

Wire.requestFrom(Adr_Accl, 1);

// 6 bayt veri oku

// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb // zAccl lsb, zAccl msb if (Wire.available() == 1) { data = Wire.read(); } }

// Verileri dönüştür

int xAccl = ((veri[1] * 256) + veri[0]); int yAccl = ((veri[3] * 256) + veri[2]); int zAccl = ((veri[5] * 256) + veri[4]);

for (int i = 0; i < 6; i++) { // I2C Transmission Wire.beginTransmission(Addr_Accl); // Veri kaydını seçin Wire.write((8 + i)); // I2C İletimini Durdur Wire.endTransmission();

// 1 bayt veri iste

Wire.requestFrom(Adr_Accl, 1);

// 6 bayt veri oku

// xMag lsb, xMag msb, yMag lsb, yMag msb // zMag lsb, zMag msb if (Wire.available() == 1) { data = Wire.read(); } }

// Verileri dönüştür

int xMag = ((veri[1] * 256) + veri[0]); int yMag = ((veri[3] * 256) + veri[2]); int zMag = ((veri[5] * 256) + veri[4]);

// Verileri seri monitöre çıkar

Serial.print("X-Ekseni Döndürme: "); Serial.println(xGyro); Serial.print("Y-Ekseni Döndürme: "); Serial.println(yGyro); Serial.print("Z-Ekseni Döndürme: "); Serial.println(zGyro); Serial.print("X Ekseninde Hızlanma: "); Serial.println(xAccl); Serial.print("Y Ekseninde İvme: "); Seri.println(yAccl); Serial.print("Z Ekseninde İvme: "); Serial.println(zAccl); Serial.print("X Ekseninde Manyetik Alan: "); Serial.println(xMag); Serial.print("Y Ekseninde Manyetik Alan: "); Serial.println(yMag); Serial.print("Z-Ekseninde manyetik dosyalanmış: "); Serial.println(zMag);

// Web sunucusuna veri çıkışı

server.sendContent ("

DCUBE MAĞAZASI

www.dcubestore.com

"" LSM9DS0 Sensör I2C Mini Modül

);

server.sendContent ("

X-Ekseni döndürme = " + String(xGyro)); server.sendContent ("

Y ekseni döndürme = " + String(yGyro)); server.sendContent ("

Z-Ekseni döndürme = " + String(zGyro)); server.sendContent ("

X Ekseninde Hızlanma = " + String(xAccl)); server.sendContent ("

Y Ekseninde Hızlanma = " + String(yAccl)); server.sendContent ("

Z Ekseninde Hızlanma = " + String(zAccl)); server.sendContent ("

X-Axis = " + String(xMag)); server.sendContent ("

Y Ekseninde dosyalanmış manyetik = " + String(yMag)); server.sendContent ("

Z-Ekseninde dosyalanmış manyetik = " + String(zMag)); delay(1000); }

geçersiz kurulum()

{ // I2C iletişimini MASTER Wire.begin(2, 14) olarak başlat; // Seri iletişimi başlat, baud hızını ayarla = 115200 Serial.begin(115200);

// WiFi ağına bağlan

WiFi.begin(ssid, şifre);

// Bağlantı için bekleyin

while (WiFi.status() != WL_CONNECTED) { gecikme(500); Seri.print("."); } Serial.println(""); Serial.print("Bağlandı"); Serial.println(ssid);

// ESP8266'nın IP adresini al

Serial.print("IP adresi:"); Serial.println(WiFi.localIP());

// sunucuyu başlat

server.on("/", tanıtıcı kök); server.begin(); Serial.println("HTTP sunucusu başlatıldı"); }

boşluk döngüsü()

{ server.handleClient(); }

Adım 4: Kodun Çalışması

Kodun Çalışması
Kodun Çalışması

Şimdi kodu indirin (veya git pull) ve Arduino IDE'de açın.

Kodu derleyin ve yükleyin ve Seri Monitördeki çıktıyı görün.

Not: Yüklemeden önce, koda SSID ağınızı ve şifrenizi girdiğinizden emin olun.

ESP8266'nın IP adresini Seri Monitörden kopyalayın ve web tarayıcınıza yapıştırın. 3 eksende dönme ekseni, ivme ve manyetik alan okuması olan bir web sayfası göreceksiniz.

Sensörün Seri Monitör ve Web Sunucu üzerindeki çıktısı yukarıdaki resimde gösterilmektedir.

Adım 5: Uygulamalar ve Özellikler

LSM9DS0, 3B dijital doğrusal hızlanma sensörü, 3B dijital açısal hız sensörü ve 3B dijital manyetik sensör içeren bir paket içi sistemdir. Bu üç özelliği ölçerek, bir nesnenin hareketi hakkında çok fazla bilgi edinebilirsiniz. Bir manyetometre ile Dünya'nın manyetik alanının kuvvetini ve yönünü ölçerek yönünüzü tahmin edebilirsiniz. Telefonunuzdaki bir ivmeölçer, yerçekimi kuvvetinin yönünü ölçebilir ve yönü tahmin edebilir (portre, yatay, düz vb.). Yerleşik jiroskoplara sahip dörtlü helikopterler, ani yuvarlanma veya eğimlere dikkat edebilir. Bunu Global Konumlandırma Sisteminde (GPS) kullanabiliriz.

Diğer bazı uygulamalar arasında İç mekan navigasyonu, Akıllı kullanıcı arayüzleri, Gelişmiş hareket tanıma, Oyun ve sanal gerçeklik giriş cihazları vb. bulunur.

ESP8266'nın yardımıyla kapasitesini daha da arttırabiliriz. Cihazlarımızı kontrol edebilir ve masaüstü bilgisayarlarımızdan ve mobil cihazlarımızdan performansı izleyebiliriz. Verileri çevrimiçi olarak saklayabilir ve yönetebilir ve herhangi bir zamanda değişiklikler için inceleyebiliriz. Daha fazla uygulama arasında Ev Otomasyonu, Ağ Ağı, Endüstriyel Kablosuz Kontrol, Bebek Monitörleri, Sensör Ağları, Giyilebilir Elektronikler, Wi-Fi Konum Farkında Cihazlar, Wi-Fi Konum Sistemi İşaretçileri sayılabilir.

Adım 6: Daha İleri Gitmek için Kaynaklar

LSM9DS0 ve ESP8266 hakkında daha fazla bilgi için aşağıdaki bağlantılara göz atın:

  • LSM9DS0 Sensör Veri Sayfası
  • LSM9DS0 Kablolama Şeması
  • ESP8266 Veri Sayfası

Önerilen: