İçindekiler:

IOT123 - ASSİMİLAT SENSÖR HUB: ICOS10 ÖZELLEŞTİRME WEB SUNUCUSU: 11 Adım
IOT123 - ASSİMİLAT SENSÖR HUB: ICOS10 ÖZELLEŞTİRME WEB SUNUCUSU: 11 Adım

Video: IOT123 - ASSİMİLAT SENSÖR HUB: ICOS10 ÖZELLEŞTİRME WEB SUNUCUSU: 11 Adım

Video: IOT123 - ASSİMİLAT SENSÖR HUB: ICOS10 ÖZELLEŞTİRME WEB SUNUCUSU: 11 Adım
Video: IOT123 - ASSIMILATE SENSOR HUB: ICOS10 IDC PANEL ASSEMBLY 2024, Kasım
Anonim
IOT123 - ASSİMİLAT SENSÖR HUB: ICOS10 ÖZELLEŞTİRME WEB SUNUCUSU
IOT123 - ASSİMİLAT SENSÖR HUB: ICOS10 ÖZELLEŞTİRME WEB SUNUCUSU
IOT123 - ASSİMİLAT SENSÖR HUB: ICOS10 ÖZELLEŞTİRME WEB SUNUCUSU
IOT123 - ASSİMİLAT SENSÖR HUB: ICOS10 ÖZELLEŞTİRME WEB SUNUCUSU
IOT123 - ASSİMİLAT SENSÖR HUB: ICOS10 ÖZELLEŞTİRME WEB SUNUCUSU
IOT123 - ASSİMİLAT SENSÖR HUB: ICOS10 ÖZELLEŞTİRME WEB SUNUCUSU

ASSIMILATE SENSOR/ACTOR Slaves, Crouton'da tanımlayıcı görselleştirmeler için kullanılan meta verileri yerleştirir. Bu yapı, ESP8266 Master'a bir web sunucusu ekler, kullanıcı tarafından değiştirilebilen bazı yapılandırma dosyaları sunar ve ardından görselleştirmeleri yeniden tanımlamak için bu dosyaları kullanır. Böylece pano kartlarının adları ve yapılandırılabilir özelliklerin çoğu değiştirilebilir. Bu gerekliydi; DHT11, Sıcaklık ve Nem özelliklerini yayınlar: bir sahada ayrı DHT11 sensörleri olan birkaç düğüm varsa, bunların tümüne Sıcaklık (Garaj Sıcaklığı, Yard Sıcaklığı…) adı verilemez. I2C Bus (16 karakter) tarafından ayarlanan meta veri uzunluğu kısıtlaması mevcut değildir ve daha zengin değerler uygulanabilir (64 karaktere kadar).

İsteğe bağlı Temel Kimlik Doğrulama, düzenleme web sayfası için yapılandırılabilir ve diğer kaynaklar için Kimlik Doğrulama'dan bir hariç tutma listesi.

Mevcut bir ek kart üzerinde, gerektiğinde bağımlı birimleri kapatan bir alçak taraf anahtarı da geliştirilmiştir.

Teknik bir not olarak, bu derlemeye başlamadan önce, global bir meta veri nesne grafiği nedeniyle bellek ayak izi %70 idi. En son AssimilateBus kitaplığında, global değişkeni SPIFFS'ye kaydedilen daha küçük JSON dosyalarına ayıran önemli değişiklikler oldu. Bu, tüm JSON ayrıştırma/bina için daha güvenli olan ayak izini ~%50'ye geri getirdi. AssimilateBusSlave kitaplığı, bu değişiklikler boyunca aynı kalır (ASSIM_VERSION 2).

ÖZELLİKLER VE VİZYON

Şu anda Köleler (sensörler ve aktörler) bağımsızdır ve özellikleri okumak veya komutlara göre hareket etmek için konvansiyonel I2C mesajlarına güvenir. Master, kölelerden meta verileri ve özellikleri alır ve bir MQTT aracısına gönderir. Ayrıca bir web sunucusu başlatır ve ana sunucuyu yapılandırmak ve sonunda Crouton tarafından tüketilen meta verileri/özellikleri özelleştirmek için düzenlenebilen JSON dosyalarını sunar. Bağımsız sensörler/aktörler, master'ın slave'lerin ne yaptığına dair önceden bilgisi olmadan Crouton aracılığıyla okunur/komut edilir.

ASSIMILATE IOT NETWORK'ün hedeflerinden biri, Crouton'u özelleştirmek, böylece IOT NODE web sunucularından sunulan mashup editörleri (bu yapı gibi), şeyin ne yaptığı konusunda tam kontrol sağlayacak web bileşenleri olarak eklenir, yani master programlanmaz, kölelerin temel özellik setleri vardır, ancak Crouton panosu, şeyi çalıştırmak için gereken tüm iş kurallarını içerir!

Crouton çatalı, şeylerin merkezi olmayan kontrolü/yapılandırılması için bir seçenek olarak görülüyor. Özünde, her işlev (sensörler ve aktörler) MQTT uç noktaları olarak gösterildiğinden, herhangi bir MQTT istemcisi/GUI kombinasyonu, eşyalarınızı yönetebilir.

Adım 1: Kruton

kruton
kruton
kruton
kruton

kruton. https://crouton.mybluemix.net/ Crouton, IOT cihazlarınızı minimum kurulumla görselleştirmenizi ve kontrol etmenizi sağlayan bir panodur. Esasen, yalnızca MQTT ve JSON kullanan herhangi bir IOT donanımı meraklısı için kurulumu en kolay panodur.

ASSIMILATE SLAVES (sensörler ve aktörler), master'ın Crouton'un gösterge panosunu oluşturmak için kullandığı deviceInfo json paketini oluşturmak için kullandığı gömülü meta verilere ve özelliklere sahiptir. ASSIMILATE NODES ve Crouton arasındaki aracı, web yuvaları dostu bir MQTT aracısıdır: Demo için Sivrisinek kullanılır.

ASSIMILATE MASTER (bu yapı) özellikleri talep ettiğinden, yanıt değerlerini Crouton güncellemeleri için gerekli biçimde biçimlendirir.

2. Adım: Web Sunucusu / Düzenleyici

Web sunucusu / Düzenleyici
Web sunucusu / Düzenleyici
Web sunucusu / Düzenleyici
Web sunucusu / Düzenleyici

Ana önyükleme yaparken (bu yapı) gömülü bir web sunucusu başlatılır. IP Adresi Seri Konsola gönderilir; sonunda bu, Crouton panosunda yayınlanacaktır.

Belirtilen URL'ye göz attığınızda, ACE EDITOR yüklenecektir:

Ace, JavaScript ile yazılmış, gömülebilir bir kod düzenleyicisidir. Sublime, Vim ve TextMate gibi yerel düzenleyicilerin özellikleri ve performansıyla eşleşir.

Ace, gömülü web sunucuları arasında popülerdir ve JSON dosyalarını düzenlemek ve kaydetmek için iyi bir arayüz sağlar.

Soldaki bir dosya adına tıklamak, dosyayı ESP8266'daki SPIFFS'den okuyacak ve içeriği sağ tarafa düzenlemek için yükleyecektir. Dosya üst araç çubuğundan kaydedilebilir.

Dosya yüklemek için:

  1. Yerel dosya sisteminizden Dosya'yı seçin.
  2. Metin kutusuna bir klasör yolu (gerekirse) ekleyin.
  3. Yükle'yi tıklayın.
  4. Sayfayı yenileyin.

3. Adım: Cihaz Özelleştirme

Cihaz Özelleştirme
Cihaz Özelleştirme

Cihazın konfigürasyonu (ESP8266), device.json dosyası aracılığıyla gerçekleştirilir.

Verileri SPIFFS'ye (ESP8266 Sketch Data Upload) yüklemeden önce bu girişlerden bazılarının (wifi_ssid, wifi_key) değiştirilmesi gerekecektir.

Web sunucusunun kök dizinine göz atın (konsol çıktısında https://192.168.8.104/ gibi gösterilir).

DÜZENLEME

ACE EDITOR'da config/device.json öğesini seçin.

Girişler:

  • www_auth_username: web sunucusu dosyaları için yetkilendirme kullanıcı adı (yetkilendirme olmadığı için boş).
  • www_auth_password: web sunucusu dosyaları için yetkilendirme şifresi (kullanıcı adı tanımlanmışsa).
  • www_auth_exclude_files: Yetkilendirme kontrollerinden hariç tutulacak dosya yollarının noktalı virgülle ayrılmış listesi (kullanıcı adı tanımlanmışsa).
  • sensor_interval: MQTT Broker'a veri yayınları arasındaki milisaniye.
  • ntp_server_name: Kullanılacak zaman sunucusunun adı.
  • time_zone: yerel saatiniz için saat cinsinden fark.
  • wifi_ssid: yerel Erişim Noktanızın SSID'si.
  • wifi_key: SSID için kullanılacak anahtar.
  • mqtt_broker: MQTT aracı adresi.
  • mqtt_username: MQTT aracısı için kullanılacak kullanıcı adı (hesaba gerek olmadığı için boş).
  • mqtt_password: MQTT kullanıcı adından kullanılacak şifre.
  • mqtt_port: MQTT aracı bağlantı noktası.
  • mqtt_device_name: MQTT konuları ve Crouton tanımlaması için kullanılacak ad.
  • mqtt_device_description: Crouton'da gösterilen cihazın açıklaması.
  • viz_color: Crouton'daki cihaz kartlarını tanımlayan renk (çatallı versiyonda)

4. Adım: Mülk Özelleştirme

Özellik Özelleştirme
Özellik Özelleştirme
Özellik Özelleştirme
Özellik Özelleştirme
Özellik Özelleştirme
Özellik Özelleştirme

Slave'lerin her biri,defined.h dosyasında tanımlanan bir nvc yapı dizisine sahiptir:

//------------------------------------------ YAYINLANMIŞ ÖZELLİKLER

nvc props[2] ={ {"Nem", "", true}, {"Sıcaklık", "", false} }; //------------------------------------------ YAYINLANAN ÖZELLİKLERİ SONLANDIR

Girişlerin her biri, ilki 0 (sıfır) olan bir dizine sahiptir.

Özellik adı özelleştirmesi, user_props.json dosyası aracılığıyla gerçekleştirilir.

Web sunucusunun kök dizinine göz atın (konsol çıktısında https://192.168.8.104/ gibi gösterilir).

DÜZENLEME

ACE EDITOR'da config/user_props.json öğesini seçin (veya bir tane yükleyin).

Yapı:

İlk anahtar, aşağıdakiler tarafından tanımlandığı gibi defines.h dosyasındaki Kölenin Adresidir:

#define ADDRESS_SLAVE XX

  • Bir sonraki anahtar seviyesi, Mülkiyet Dizinidir.
  • Bu anahtarın değeri, tanımlar dosyasında tanımlanan Özellik Adı yerine Crouton'da kullanılacak Özellik Adıdır.

Adım 5: Meta Veri Özelleştirme

Meta Veri Özelleştirme
Meta Veri Özelleştirme
Meta Veri Özelleştirme
Meta Veri Özelleştirme
Meta Veri Özelleştirme
Meta Veri Özelleştirme
Meta Veri Özelleştirme
Meta Veri Özelleştirme

Olası özelleştirmelerin miktarı nedeniyle, her bağımlı kendi meta veri değişiklik dosyasına sahiptir. Dosyalar user_metas_.json biçiminde olmalıdır.

Köle adresi ATTINY85 eskizlerindeki defines.h dosyasında bulunur:

#define ADDRESS_SLAVE XX

Meta veriler şu şekilde aynı dosyada tanımlanır:

const statik karakter viz1 PROGMEM = "VIZ_CARD_TYPE";

const statik karakter viz2 PROGMEM = "2:chart-donut"; const statik karakter viz3 PROGMEM = "1";

İlk satır, meta veri öğesinin adıdır.

İkinci satır değerdir. Genellikle bir özellik dizini son ekine sahiptir.

Üçüncü satır, devam bayrağıdır. 1 - devam et, 0 - meta verinin sonu (VCC_MV).

Web sunucusunun kök dizinine göz atın (konsol çıktısında https://192.168.8.104/ gibi gösterilir).

DÜZENLEME

ACE EDITOR'da config/user_metas_SLAVE_ADDRESS.json'u seçin (veya bir tane yükleyin). Yapı:

  • Ad/değer çiftleri dizisi.
  • Ad, değiştirilecek meta veri öğesinin adıdır.
  • Değer, değişimdir. Dizin soneki değiştirme için kontrol edilir.

Adım 6: Malzemeler ve Araçlar

Malzemeler ve Araçlar
Malzemeler ve Araçlar
Malzemeler ve Araçlar
Malzemeler ve Araçlar
Malzemeler ve Araçlar
Malzemeler ve Araçlar

ICOS10 (IDC) Kabuk Malzeme Listesi

  1. D1M BLOK Pim Jig (1)
  2. D1M BLOK taban ve muhafaza (1)
  3. Wemos D1 Mini (1)
  4. Wemos D1 Mini Protoboard Kalkanı (1)
  5. 40P Kadın Başlıklar (8P, 8P, 9P, 9P)
  6. Erkek Başlık 90º (3P, 3P, 3P, 2P, 1P, 2P)
  7. 1" Çift taraflı protokol (2)
  8. 2N7000 NFET (1)
  9. 6 Pinli Örtülü IDC Erkek Başlık (1)
  10. Bağlantı kablosu (~10)
  11. 0,5 mm Kalaylı Tel (~4)
  12. 4G x 15mm Düğme başlı vidalar (2)
  13. 4G x 6mm kendinden kılavuzlu havşa başlı vidalar (~20)
  14. Lehim ve Demir (1)

7. Adım: MCU Hazırlığı

Image
Image
MCU Hazırlığı
MCU Hazırlığı

Bu yapıda Wemos D1 Mini kullanıyoruz. Daha önce bir D1M WIFI BLOK oluşturduysanız, bunu modüler donanım bileşeni için kullanabilirsiniz. Değilse, asgari olarak bir sonraki bölümü izleyin.

MCU ÜZERİNDEKİ BAŞLIK PİMLERİNİ LEHİMLEME (PIN JIG kullanarak) Bir PIN JIG yazdıramıyorsanız, talimatları izleyin ve doğaçlama yapın: PIN JIG'in yüksekliği (ofset) 6,5 mm'dir.

  1. Bu sayfadan bir PIN JIG yazdırın/alın.
  2. Başlık pimlerini kartın altından (TX sağ-sol) ve lehim mastarına besleyin.
  3. Pimleri sert düz bir yüzeye bastırın.
  4. Tahtayı jig üzerine sıkıca bastırın.
  5. 4 köşe pimini lehimleyin.
  6. Gerekirse kartı/pimleri yeniden ısıtın ve yeniden konumlandırın (tahta veya pimler hizalanmamış veya çekül).
  7. Pimlerin geri kalanını lehimleyin.

YAZILIMIN YÜKLENMESİ

Kod deposu burada bulunabilir (anlık görüntü).

Kütüphanenin bir ZIP'i burada bulunabilir (anlık görüntü).

"ZIP Kitaplığını İçe Aktarma" talimatları burada.

Kitaplık kurulduktan sonra "mqtt_crouton_esp8266_customization_webserver" örneğini açabilirsiniz.

Wemos D1 Mini için Arduino kurma talimatları burada.

Bağımlılıklar: ArduinoJson, TimeLib, PubSubClient, NeoTimer (depolardaki değişiklikleri bozuyorsanız eklere bakın).

SPIFFS'E YÜKLE

Kod Arduino IDE'ye yüklendikten sonra data/config klasöründe device.json'u açın:

  1. WiFi SSID'niz ile wifi_ssid değerini değiştirin.
  2. WiFi Anahtarınızla wifi_key değerini değiştirin.
  3. mqtt_device_name değerini tercih ettiğiniz Cihaz Kimliği ile değiştirin (katılma gerekmez).
  4. mqtt_device_description değerini tercih ettiğiniz Cihaz Açıklaması ile değiştirin (Cruton'da).
  5. device.json'ı kaydedin.
  6. Veri dosyalarını SPIFFS'ye yükleyin.

Adım 8: MCU Muhafaza Hazırlığı

Image
Image
MCU Muhafaza Hazırlığı
MCU Muhafaza Hazırlığı
MCU Muhafaza Hazırlığı
MCU Muhafaza Hazırlığı

MCU Muhafazası, D1 Mini'nin takılması için başlıklar ve Soket (sensörler ve aktörler) devresi ile iletişim kuran ek kartlar için başlıklar sunar.

GÖVDE BAŞLIKLARI Bu, bir D1 Mini Protoboard'a dayanır ve şu pinleri ayırır:

  1. D1M WIFI BLOCK/D1 Mini'nin bağlanacağı pinler.
  2. D1M WIFI BLOCK/D1 Mini'den 2 sıra kontağın Doğrudan Kesintileri. Bunlar yalnızca prototipleme sırasında kolaylık sağlamak için kullanılabilir. Ek panoların bu başlıklara tüm erişimi engellemesi bekleniyor.
  3. 4 Ek panolar tarafından kullanılan belirli pimlerin kırılmaları.

D1M Kişilerini GÖVDE BAŞLIĞINA eklemek için:

  1. SOKET JIG KULLANARAK LEHİM videosunu izleyin.
  2. Başlık pimlerini kartın altından geçirin (üstte sol üstte TX).
  3. Jig'i plastik başlık üzerine besleyin ve her iki yüzeyi de düzleştirin.
  4. Makası ve tertibatı ters çevirin ve başlığı sert düz bir yüzeye sıkıca bastırın.
  5. Tahtayı jig üzerine sıkıca bastırın.
  6. Minimum lehim kullanarak 4 köşe pimini lehimleyin (pimlerin yalnızca geçici olarak hizalanması).
  7. Gerekirse kartı/pimleri yeniden ısıtın ve yeniden konumlandırın (tahta veya pimler hizalanmamış veya çekül).
  8. Pimlerin geri kalanını lehimleyin.
  9. Jigi çıkarın.
  10. Lehimlerin üzerindeki pimleri kesin.

Ek Pano Aralarını eklemek için:

  1. 9P Dişi başlıklardan 4'ü kesin.
  2. Üstte, 9P Başlıklarını gösterildiği gibi yerleştirin ve alttan lehimleyin.

Doğrudan Araları eklemek için:

  1. 8P Dişi başlıklardan 2 tanesini kesin.
  2. Üstte, 8P Başlıklarını gösterildiği gibi yerleştirin ve alttan lehimleyin.

Başlıkları bağlamak için, altta TX pimi yukarı bakacak şekilde:

  1. RST pininden 4 pin boyunca takip edin ve lehimleyin.
  2. A0 pininden 4 pin boyunca izleyin ve lehimleyin.
  3. D1 piminden 4 pim boyunca izleyin ve lehimleyin.
  4. D2 pininden 4 pin boyunca izleyin ve lehimleyin.
  5. D0 piminden 2 sıra aşağı ve 4 pim boyunca izleyin ve lehimleyin.
  6. D7 piminden 4 pim boyunca izleyin ve lehimleyin.
  7. GND piminden 4 pim boyunca izleyin ve lehimleyin.
  8. 5V pinden 4 pin boyunca izleyin ve lehimleyin.
  9. 3V3 piminden 4 pim boyunca 45° aşağı doğru takip edin ve lehimleyin.

ARMATÜRÜN MONTAJI

GÖVDE BAŞLIKLARI MCU GÖVDE'ye yapıştırılmıştır ve bu, TABAN PLAKASI'na yapıştırılmıştır.

  1. GÖVDE BAŞLIKLARININ uzun tarafı deliğe bakacak şekilde, D1M KONTAKLARI MCU GÖVDE içindeki açıklıklara sokun ve aynı hizada aşağı doğru bastırın.
  2. Doğru hizalamayı sağlamak için sabitleme sırasında MCU'yu MCU KONTAKLARINA takın.
  3. BAŞLIK ÇERÇEVESİ'ni montaj armatürlerinin üstüne yerleştirin ve 2 adet 4G x 16mm vidayla sabitleyin.
  4. Monte edilen armatürleri delik kısa tarafa bakacak şekilde yerleştirin ve 4G x 6mm vidalarla sabitleyin.

Adım 9: Bağımlı Alt Taraf Anahtarını/SIFIRLAMA Ek Kartının Oluşturulması

Köleleri Oluşturma Düşük Taraf Anahtarı/RESET Ek Kartı
Köleleri Oluşturma Düşük Taraf Anahtarı/RESET Ek Kartı
Köleleri Oluşturma Düşük Taraf Anahtarı/SIFIRLAMA Ek kartı
Köleleri Oluşturma Düşük Taraf Anahtarı/SIFIRLAMA Ek kartı
Köleleri Oluşturma Düşük Taraf Anahtarı/SIFIRLAMA Ek kartı
Köleleri Oluşturma Düşük Taraf Anahtarı/SIFIRLAMA Ek kartı

Bu, son derlemede geliştirilen REST ek kartının bir geliştirmesidir. Bu, slave'leri GROUND'a bağlayan bir alçak taraf anahtarı ekler. Master sıfırlanırsa, köleler de olacak ve meta verileri yayan başlatma yeniden başlayacaktır.

TOPLANTI

  1. İçeride, 9P 90° Erkek Başlıkları (1), 1P 90° Erkek Başlıkları (2), 2N7000'i (3) takın ve dış kısımları lehimleyin.
  2. İçeride, SARI1'den SARI2'ye kadar sarı bir kablo çizin ve lehimleyin.
  3. İçeride, GÜMÜŞ1'den GÜMÜŞ2'ye çıplak bir tel çizin ve lehimleyin.
  4. İçeride, GÜMÜŞ3'ten GÜMÜŞ4'e çıplak bir tel çizin ve lehimleyin.

Adım 10: Ana Bileşenlerin Birleştirilmesi

Ana Bileşenlerin Birleştirilmesi
Ana Bileşenlerin Birleştirilmesi
Ana Bileşenlerin Birleştirilmesi
Ana Bileşenlerin Birleştirilmesi
Ana Bileşenlerin Birleştirilmesi
Ana Bileşenlerin Birleştirilmesi
Ana Bileşenlerin Birleştirilmesi
Ana Bileşenlerin Birleştirilmesi
  1. SHELL'in kurulduğundan ve devrenin test edildiğinden (kablo ve prizler) emin olun.
  2. 3V3 I2C DAUGHTER-BOARD üzerindeki 2P Erkek başlığını 2P 90º 1P Erkek Başlık ile değiştirin.
  3. 3V3 I2C DAUGHTER-BOARD'ı 3V3 pimi başlıkların pürüzlü ucunda olacak şekilde yerleştirin (resme bakın).
  4. DÜŞÜK TARAF ANAHTARI/SIFIRLAMA KILAVUZU'nu tel içeride olacak şekilde yerleştirin (resme bakın).
  5. RESET DAUGHTER-BOARD'daki 90º 1P Erkek Başlık ile 3V3 I2C DAUGHTER-BOARD arasındaki bir Dupont ucunu takip edin.
  6. IDC Soketini SHELL CABLE'dan 3V3 I2C DAUGHTER-BOARD'daki IDC Başlığına takın.
  7. DAUGHTER-BOARDS/HOUSING'i KABUK içindeki kablolar arasına dikkatlice yerleştirin ve taban deliklerini hizalayın.
  8. TABAN MONTAJINI 4G x 6mm vidalarla KABUK'a sabitleyin.
  9. Yaptığınız herhangi bir ASSİMİLAT SENSÖRÜ takın.

11. Adım: Sonraki Adımlar

Image
Image
Sonraki adımlar
Sonraki adımlar
Sonraki adımlar
Sonraki adımlar
  1. Tarayıcınızı https://crouton.mybluemix.net/crouton/connections adresine yönlendirin.
  2. Aracının test.mosquitto.org olduğundan emin olun.
  3. Bağlan'a tıklayın.
  4. Aygıt adı girişini /config/device.json dosyasına mqtt_device_name olarak girin.
  5. Cihaz Ekle'yi tıklayın.
  6. Otomatik bağlan'ı tıklayın.
  7. ICOS10'unuzu (5V MicroUSB) çalıştırın.
  8. Crouton panosu aracılığıyla doğrulayın.

Önerilen: