İçindekiler:
- Adım 1: İhtiyacımız Olan Ekipman.. !
- 2. Adım: Donanım Bağlantıları
- 3. Adım: Kodlayın
- Adım 4: Kodun Çalışması
- Adım 5: Uygulamalar ve Özellikler
- Adım 6: Daha İleri Gitmek için Kaynaklar
Video: Web Sunucusu Üzerinden Harita Yönlendirme: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
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.. !
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ı
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
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ı
Ş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:
Led'i İnternet Üzerinden Nodemcu Kullanarak Blynk Uygulaması Üzerinden Kontrol Etme: 5 Adım
Led'i Nodemcu Kullanarak İnternet Üzerinden Blynk Uygulaması İle Kontrol Etme: Herkese Merhaba Bugün Size İnternet Üzerinden Akıllı Telefon Kullanarak Bir LED'i Nasıl Kontrol Edebileceğinizi Göstereceğiz
Tarayıcı Üzerinden İnternet Üzerinden Cihazları Kontrol Edin. (IoT): 6 Adım
Tarayıcı Üzerinden İnternet Üzerinden Cihazları Kontrol Edin. (IoT): Bu Instructable'da size LED'ler, Röleler, motorlar vb. cihazları web tarayıcısı üzerinden internet üzerinden nasıl kontrol edebileceğinizi göstereceğim. Ve kontrollere herhangi bir cihaz üzerinden güvenli bir şekilde erişebilirsiniz. Burada kullandığım web platformu RemoteMe.org ziyareti
Web Tabanlı Kontrol Panelli Web Bağlantılı SMART LED Animasyon Saati, Zaman Sunucusu Senkronize: 11 Adım (Resimlerle)
Web-Bağlantılı SMART LED Animasyon Saati Web Tabanlı Kontrol Panelli, Zaman Sunucusu Senkronize: Bu saatin hikayesi çok eskilere dayanıyor - 30 yıldan fazla. Babam bu fikre ben 10 yaşımdayken öncülük etti, LED devriminden çok önce - LED'lerin parlaklığının mevcut göz kamaştırıcı parlaklığının 1/1000 olduğu zamanlarda. Gerçek
Web Sitenize Bir Platial Harita Yerleştirin: 8 Adım
Web Sitenize Platial Harita Yerleştirin: Platial'de bir harita bulduğunuzda veya kendi haritanızı oluşturduğunuzda, o haritayı blogunuza veya web sitenize koymak isteyeceksiniz. Bu talimat, bunun nasıl yapılacağına ilişkin adımlarda size yol gösterecektir. Herhangi bir Platial haritası herkes tarafından yayınlanabilir
Dosyaları LAN Üzerinden BitTorrent Üzerinden Aktarma: 6 Adım
Dosyaları LAN Üzerinden BitTorrent Üzerinden Aktarma: Bazen dosyaları bir ağ üzerinden birkaç bilgisayara aktarmanız gerekebilir. Bir flash sürücüye veya CD/DVD'ye koyabilseniz de, her bilgisayara gidip dosyaları kopyalamanız gerekir ve tüm dosyaları kopyalamak biraz zaman alabilir (özellikle f