Cuprins:

IOT123 - ASIMILAȚI CUBUL SENZORULUI: PAGINA DE PERSONALIZARE ICOS10 WEBSEREVER: 11 pași
IOT123 - ASIMILAȚI CUBUL SENZORULUI: PAGINA DE PERSONALIZARE ICOS10 WEBSEREVER: 11 pași

Video: IOT123 - ASIMILAȚI CUBUL SENZORULUI: PAGINA DE PERSONALIZARE ICOS10 WEBSEREVER: 11 pași

Video: IOT123 - ASIMILAȚI CUBUL SENZORULUI: PAGINA DE PERSONALIZARE ICOS10 WEBSEREVER: 11 pași
Video: IOT123 - BYKO LIVE RIDE 2024, Iulie
Anonim
IOT123 - ASIMILAȚI CUBUL SENZORULUI: ICOS10 CUSTOMIZATION WEBSEREVER
IOT123 - ASIMILAȚI CUBUL SENZORULUI: ICOS10 CUSTOMIZATION WEBSEREVER
IOT123 - ASIMILAȚI CUBUL SENZORULUI: ICOS10 CUSTOMIZATION WEBSEREVER
IOT123 - ASIMILAȚI CUBUL SENZORULUI: ICOS10 CUSTOMIZATION WEBSEREVER
IOT123 - ASIMILAȚI CUBUL SENZORULUI: ICOS10 CUSTOMIZATION WEBSEREVER
IOT123 - ASIMILAȚI CUBUL SENZORULUI: ICOS10 CUSTOMIZATION WEBSEREVER

ASSIMILATE SENSOR / ACTOR Slaves încorporează metadate care sunt utilizate pentru vizualizările definitorii în Crouton. Această versiune adaugă un server web ESP8266 Master, servește câteva fișiere de configurare care pot fi modificate de utilizator, apoi folosește acele fișiere pentru a redefini vizualizările. Așadar, numele cardurilor de bord și majoritatea proprietăților configurabile pot fi schimbate. Acest lucru era necesar de ex. DHT11 publică proprietăți de temperatură și umiditate: dacă un site are mai multe noduri cu senzori DHT11 separați, toți nu pot fi numiți temperatură (temp. garaj, temperatură curte …). Restricția de lungime a metadatelor setată de I2C Bus (16 caractere) nu există și pot fi aplicate valori mai bogate (până la 64 de caractere).

Autentificarea de bază opțională este cofigurabilă pentru pagina web de editare, precum și o listă de excludere din autentificarea pentru alte resurse.

Un comutator în partea de jos, care oprește sclavii atunci când este necesar, a fost, de asemenea, dezvoltat pe o placă fiică existentă.

Ca o notă tehnică, înainte de a începe această construcție, amprenta de memorie a fost de 70% din cauza unui grafic global de obiecte de metadate. Cea mai recentă bibliotecă AssimilateBus a avut modificări de rupere care decuplează variabila globală în fișiere JSON mai mici salvate în SPIFFS. Acest lucru a readus amprenta la ~ 50%, ceea ce este mai sigur pentru toate analiza / construirea JSON. Biblioteca AssimilateBusSlave rămâne aceeași (ASSIM_VERSION 2) pe parcursul acestor modificări.

CARACTERISTICI ȘI VIZIUNE

În prezent, sclavii (senzori și actori) sunt autonumiți și se bazează pe mesaje I2C convenționale pentru a citi proprietăți sau pentru a acționa pe comenzi. Maestrul preia metadatele și proprietățile de la sclavi și le trimite unui broker MQTT. De asemenea, pornește un server web și servește fișiere JSON care pot fi editate pentru a configura masterul și a personaliza metadatele / proprietățile consumate în cele din urmă de Crouton. Senzorii / actorii individuali sunt citiți / comandați prin Crouton fără ca maestrul să aibă cunoștințe prealabile despre ceea ce fac sclavii.

Unul dintre obiectivele rețelei ASSIMILATE IOT este de a personaliza Crouton astfel încât editorii de mashup deserviți de pe serverele web IOT NODE (cum ar fi această versiune), să fie adăugați ca componenți web care vor da controlul complet asupra a ceea ce face, adică masterul nu este programat, sclavii au seturi de caracteristici de bază, dar tabloul de bord Crouton încorporează toate regulile de afaceri necesare pentru a rula treaba!

Furca Crouton este văzută ca o opțiune pentru control / configurare descentralizată a lucrurilor. În esență, orice combinație MQTT client / GUI vă poate administra lucrurile, deoarece fiecare funcție (senzori și actori) este expusă ca puncte finale MQTT.

Pasul 1: Crouton

Crouton
Crouton
Crouton
Crouton

Crouton. https://crouton.mybluemix.net/ Crouton este un tablou de bord care vă permite să vizualizați și să controlați dispozitivele IOT cu o configurare minimă. În esență, este cel mai ușor tablou de bord de configurat pentru orice entuziast hardware IOT care utilizează doar MQTT și JSON.

ASSIMILATE SLAVES (senzori și actori) au încorporate metadate și proprietăți pe care masterul le folosește pentru a construi pachetul json deviceInfo pe care Crouton îl folosește pentru a construi tabloul de bord. Intermediarul între ASSIMILATE NODES și Crouton este un broker MQTT care este prietenos cu websockets-urile: Mosquito este folosit pentru demo.

Pe măsură ce ASSIMILATE MASTER (această construcție) solicită proprietăți, formatează valorile răspunsului în formatul necesar pentru actualizările Crouton.

Pasul 2: Webserver / Editor

Webserver / Editor
Webserver / Editor
Webserver / Editor
Webserver / Editor

Pe măsură ce Masterul pornește (această construcție) este pornit un server web încorporat. Adresa IP este transmisă Consolei Seriale; în cele din urmă, acest lucru va fi publicat în tabloul de bord Crouton.

Când navigați la adresa URL menționată, ACE EDITOR va fi încărcat:

Ace este un editor de cod încorporabil scris în JavaScript. Se potrivește cu caracteristicile și performanța editorilor nativi precum Sublime, Vim și TextMate.

Ace este popular printre serverele de internet încorporate și oferă o interfață bună pentru editarea și salvarea fișierelor JSON.

Dând clic pe un nume de fișier din stânga, se va citi fișierul din SPIFFS pe ESP8266 și se va încărca conținutul pentru editare în dreapta. Fișierul poate fi salvat din bara de instrumente de sus.

Pentru a încărca un fișier:

  1. Alegeți Fișier din sistemul de fișiere local.
  2. Introduceți o cale a folderului (dacă este necesar) în caseta de text.
  3. Faceți clic pe Încărcare.
  4. Reincarca Pagina.

Pasul 3: Personalizarea dispozitivului

Personalizare dispozitiv
Personalizare dispozitiv

Configurarea dispozitivului (ESP8266) este acționată prin fișierul device.json.

Unele dintre aceste intrări (wifi_ssid, wifi_key) vor trebui modificate înainte de a încărca datele în SPIFFS (ESP8266 Sketch Data Upload).

Răsfoiți la rădăcina serverului web (afișat în ieșirea consolei, cum ar fi

EDITARE

În ACE EDITOR alegeți config / device.json.

Intrările sunt:

  • www_auth_username: nume de utilizator autorizare pentru fișiere server web (gol pentru neautorizare).
  • www_auth_password: parola de autorizare pentru fișierele serverului web (dacă este definit numele de utilizator).
  • www_auth_exclude_files: listă delimitată de punct și virgolă a căilor de fișiere pentru a exclude din verificările de autorizare (dacă este definit numele de utilizator).
  • senzor_interval: milisecundele dintre publicarea datelor către brokerul MQTT.
  • ntp_server_name: numele serverului de timp de utilizat.
  • time_zone: decalajul în ore pentru ora locală.
  • wifi_ssid: SSID-ul punctului de acces local.
  • wifi_key: cheia de utilizat pentru SSID.
  • mqtt_broker: adresa brokerului MQTT.
  • mqtt_username: numele de utilizator pe care îl utilizați pentru brokerul MQTT (gol, fără cont necesar).
  • mqtt_password: parola de utilizat din numele de utilizator MQTT.
  • mqtt_port: portul de broker MQTT.
  • mqtt_device_name: numele de utilizat pentru subiectele MQTT și identificarea Crouton.
  • mqtt_device_description: de3scrierea dispozitivului afișată în Crouton.
  • viz_color: culoarea pentru identificarea cardurilor dispozitivului din Crouton (în versiunea cu furcă)

Pasul 4: Personalizarea proprietății

Personalizarea proprietății
Personalizarea proprietății
Personalizarea proprietății
Personalizarea proprietății
Personalizarea proprietății
Personalizarea proprietății

Fiecare dintre sclavi are o matrice struct nvc definită în fișierul definition.h:

// --------------------------------------- PROPRIETĂȚI PUBLICATE

nvc props [2] = {{"Umiditate", "", adevărat}, {"Temperatură", "", fals}}; // --------------------------------------- ÎNCHEIȚI PROPRIETĂȚILE PUBLICATE

Fiecare dintre intrări are un index, primul fiind 0 (zero).

Personalizarea numelui proprietății este acționată prin fișierul user_props.json.

Răsfoiți la rădăcina serverului web (afișat în ieșirea consolei, cum ar fi

EDITARE

În ACE EDITOR alegeți config / user_props.json (sau încărcați unul).

Structura este:

Prima cheie este adresa sclavului din fișierul definition.h, astfel cum este identificat de:

#define ADDRESS_SLAVE XX

  • Următorul nivel de taste este Indexul proprietății.
  • Valoarea acelei chei este numele proprietății de utilizat în Crouton în locul numelui proprietății definit în fișierul de definiții.

Pasul 5: Personalizarea metadatelor

Personalizarea metadatelor
Personalizarea metadatelor
Personalizarea metadatelor
Personalizarea metadatelor
Personalizarea metadatelor
Personalizarea metadatelor
Personalizarea metadatelor
Personalizarea metadatelor

Datorită cantității de personalizări posibile, fiecare sclav are propriul fișier de modificare a metadatelor. Fișierele trebuie să fie în format user_metas_.json.

Adresa sclavă se găsește în fișierul definition.h din schițele ATTINY85:

#define ADDRESS_SLAVE XX

Metadatele sunt definite în același fișier ca acesta:

const static char viz1 PROGMEM = "VIZ_CARD_TYPE";

const static char viz2 PROGMEM = "2: chart-donut"; const static char viz3 PROGMEM = "1";

Primul rând este numele elementului de metadate.

A doua linie este valoarea. În general, are un sufix index de proprietate.

A treia linie este steagul de continuare. 1 - continua, 0 - sfârșitul metadatelor (VCC_MV).

Răsfoiți la rădăcina serverului web (afișat în ieșirea consolei, cum ar fi

EDITARE

În ACE EDITOR alegeți config / user_metas_SLAVE_ADDRESS.json (sau încărcați unul). Structura este:

  • O matrice de perechi nume / valoare.
  • Numele este numele elementului de metadate de modificat.
  • Valoarea este schimbarea. Sufixul index este verificat pentru înlocuire.

Pasul 6: Materiale și instrumente

Materiale și instrumente
Materiale și instrumente
Materiale și instrumente
Materiale și instrumente
Materiale și instrumente
Materiale și instrumente

ICOS10 (IDC) Lista materialelor Shell

  1. D1M BLOCK Pin Jig (1)
  2. Baza și carcasa D1M BLOCK (1)
  3. Wemos D1 Mini (1)
  4. Wemos D1 Mini Protoboard Shield (1)
  5. Anteturi feminine 40P (8P, 8P, 9P, 9P)
  6. Antet masculin 90º (3P, 3P, 3P, 2P, 1P, 2P)
  7. 1 "Protoboard dublu față (2)
  8. 2N7000 NFET (1)
  9. Antet masculin IDC acoperit cu 6 pini (1)
  10. Sârmă de conectare (~ 10)
  11. Sârmă de tablă de 0,5 mm (~ 4)
  12. Șuruburi autofiletante 4G x 15mm (2)
  13. Șuruburi autofiletante 4G x 6mm (~ 20)
  14. Sudură și fier (1)

Pasul 7: Pregătirea MCU

Image
Image
Pregătirea MCU
Pregătirea MCU

În această versiune folosim Wemos D1 Mini. Dacă ați construit anterior un D1M WIFI BLOCK, îl puteți utiliza pentru componenta hardware modulară. În caz contrar, urmați secțiunea următoare ca minim.

SOLDAREA PIN-urilor antetului pe MCU (folosind PIN JIG) Dacă nu puteți tipări un PIN JIG, urmați instrucțiunile și improvizați: înălțimea (offset) PIN-ului JIG este de 6,5 mm.

  1. Imprimați / obțineți un PIN JIG din această pagină.
  2. Introduceți pinii antetului prin partea inferioară a plăcii (TX dreapta-stânga) și în dispozitivul de lipit.
  3. Apăsați pinii în jos pe o suprafață plană tare.
  4. Apăsați ferm placa în jos pe jig.
  5. Lipiți cele 4 știfturi de colț.
  6. Reîncălziți și repoziționați placa / pinii dacă este necesar (placa sau pinii nu sunt aliniați sau plumbi).
  7. Lipiți restul știfturilor.

ÎNCĂRCAREA FIRMWARE-ULUI

Depozitul de coduri poate fi găsit aici (instantaneu).

Un ZIP al bibliotecii poate fi găsit aici (instantaneu).

Instrucțiuni pentru „Importarea unei biblioteci ZIP” aici.

Odată instalată biblioteca, puteți deschide exemplul „mqtt_crouton_esp8266_customization_webserver”.

Instrucțiuni pentru configurarea Arduino pentru Wemos D1 Mini aici.

Dependențe: ArduinoJson, TimeLib, PubSubClient, NeoTimer (consultați atașamentele dacă se modifică modificările din depozite).

ÎNCĂRCAȚI LA SPIFFS

După ce codul a fost încărcat în IDE-ul Arduino, deschideți device.json în folderul de date / config:

  1. Modificați valoarea wifi_ssid cu SSID-ul dvs. WiFi.
  2. Modificați valoarea wifi_key cu cheia WiFi.
  3. Modificați valoarea mqtt_device_name cu identificarea dispozitivului dvs. preferată (nu este necesară asocierea).
  4. Modificați valoarea mqtt_device_description cu Descrierea dispozitivului dvs. preferată (în Crouton).
  5. Salvați device.json.
  6. Încărcați fișierele de date în SPIFFS.

Pasul 8: Pregătirea locuinței MCU

Image
Image
Pregătirea locuinței MCU
Pregătirea locuinței MCU
Pregătirea locuinței MCU
Pregătirea locuinței MCU

Carcasa MCU expune anteturile pentru conectarea D1 Mini și anteturile pentru plăcile fiice care comunică cu circuitul Socket (senzori și actori).

PĂRȚI DE CARCASĂ Acesta se bazează pe un Mini Protoboard D1 și rupe acești pini:

  1. Pinii pentru D1M WIFI BLOCK / D1 Mini la care să vă conectați.
  2. Breakouts directe ale celor 2 rânduri de contacte de la D1M WIFI BLOCK / D1 Mini. Acestea sunt disponibile numai pentru comoditate în timp ce se realizează prototipuri. Este de așteptat ca plăcile fiice să blocheze tot accesul la aceste anteturi.
  3. 4 Breakouts ale pinilor specifici utilizați de plăcile fiice.

Pentru a adăuga contactele D1M la HEADING HEADER:

  1. Urmăriți SOLDERUL UTILIZând videoclipul SOCKET JIG.
  2. Introduceți pinii antetului prin partea de jos a plăcii (TX sus-stânga în partea de sus).
  3. Alimentați jigul peste capul de plastic și nivelați ambele suprafețe.
  4. Întoarceți jigul și ansamblul și apăsați ferm antetul pe o suprafață plană tare.
  5. Apăsați ferm placa în jos pe jig.
  6. Lipiți cei 4 pini de colț folosind lipirea minimă (doar alinierea temporară a pini).
  7. Reîncălziți și repoziționați placa / pinii dacă este necesar (placa sau pinii nu sunt aliniați sau plumbi).
  8. Lipiți restul știfturilor.
  9. Scoateți jigul.
  10. Tăiați știfturile deasupra lipitelor.

Pentru a adăuga Daughter-board Breakouts:

  1. Tăiați 4 anteturi feminine 9P.
  2. În partea de sus, introduceți anteturile 9P așa cum se arată și lipiți în partea de jos.

Pentru a adăuga Breakouts directe:

  1. Tăiați 2 anteturi feminine 8P.
  2. În partea de sus, introduceți anteturile 8P așa cum se arată și lipiți în partea de jos.

Pentru a conecta anteturile, în partea de jos cu pinul TX orientat în sus:

  1. Urmăriți și lipiți de la pinul RST pe 4 pini.
  2. Urmăriți și lipiți de la pinul A0 pe 4 pini.
  3. Urmăriți și lipiți de la pinul D1 pe 4 pini.
  4. Urmăriți și lipiți de la pinul D2 pe 4 pini.
  5. Urmăriți și lipiți de la pinul D0 în jos pe 2 rânduri și pe 4 pini.
  6. Urmăriți și lipiți de la pinul D7 pe 4 pini.
  7. Urmăriți și lipiți de la pinul GND pe 4 pini.
  8. Urmăriți și lipiți de la pinul de 5V pe 4 pini.
  9. Urmăriți și lipiți de la pinul 3V3 în jos 45 ° pe 4 pini.

ASAMBLAREA FIXĂRII

CAPETELE DE CARCASĂ sunt atașate la CARCASA MCU, iar aceasta este fixată pe PLACA DE BAZĂ.

  1. Cu partea lungă a CAPETELOR DE CARCASĂ îndreptate spre gaură, introduceți CONTACTUL D1M în deschiderile din CARCASĂ MCU și împingeți în jos.
  2. Introduceți MCU în contactele MCU în timpul fixării pentru a asigura alinierea corectă.
  3. Așezați CADRUL PENTRU PĂRȚI peste partea superioară a corpurilor de asamblare și fixați-l cu 2 șuruburi 4G x 16mm.
  4. Așezați corpurile montate cu orificiul îndreptat spre partea scurtă și fixați-le cu șuruburile 4G x 6mm.

Pasul 9: Construirea comutatorului partea scăzută a sclavilor / RESET-fișierului

Construirea sclavilor Comutator lateral / RESET Placă filială
Construirea sclavilor Comutator lateral / RESET Placă filială
Construirea sclavilor Comutator lateral / RESET Placă filială
Construirea sclavilor Comutator lateral / RESET Placă filială
Construirea sclavilor Comutator lateral / RESET Placă filială
Construirea sclavilor Comutator lateral / RESET Placă filială

Aceasta este o îmbunătățire a board-ului REST dezvoltat ultima versiune. Acest lucru adaugă un comutator lateral care conectează sclavii la Pământ. Dacă masterul este resetat, sclavii vor de asemenea și inițializarea propagării metadatelor va începe din nou.

ASAMBLARE

  1. În interior, introduceți anteturile masculine 9P 90 ° (1), antetele masculine 1P 90 ° (2), 2N7000 (3) și lipiți-le pe exterior.
  2. În interior, urmăriți un fir galben de la GALBEN1 la GALBEN2 și lipiți.
  3. În interior, urmăriți un fir gol de la SILVER1 la SILVER2 și lipiți.
  4. În interior, urmăriți un fir gol de la SILVER3 la SILVER4 și lipiți.

Pasul 10: Asamblarea componentelor majore

Asamblarea componentelor majore
Asamblarea componentelor majore
Asamblarea componentelor majore
Asamblarea componentelor majore
Asamblarea componentelor majore
Asamblarea componentelor majore
Asamblarea componentelor majore
Asamblarea componentelor majore
  1. Asigurați-vă că SHELL a fost construit și că circuitul a fost testat (cablu și prize).
  2. Schimbați antetul mascul 2P pe 3V3 I2C DAUGHTER-BOARD cu un antet masculin 2P 90º 1P.
  3. Introduceți 3V3 I2C DAUGHTER-BOARD, cu știftul 3V3 pe capătul zdrențuit al antetelor (a se vedea imaginea).
  4. Introduceți comutatorul LOW-SIDE / RESET DAUGHTER-BOARD, cu firul în interior (a se vedea imaginea).
  5. Urmăriți un cablu Dupont între antetul mascul 90º 1P de pe RESET DAUGHTER-BOARD la 3V3 I2C DAUGHTER-BOARD.
  6. Introduceți soclul IDC din CABLUL SHELL în antetul IDC de pe 3V3 I2C DAUGHTER-BOARD.
  7. Introduceți cu grijă PLĂCILE / CĂSUȚIA FIȘICĂ între cablurile din SHELL și aliniați orificiile de bază.
  8. Fixați ansamblul de bază pe carcasă cu șuruburile 4G x 6mm.
  9. Atașați orice SENSORI ASIMILATI pe care i-ați făcut.

Pasul 11: Pașii următori

Image
Image
Pasii urmatori
Pasii urmatori
Pasii urmatori
Pasii urmatori
  1. Îndreptați browserul către
  2. Asigurați-vă că brokerul este test.mosquitto.org.
  3. Faceți clic pe Conectare.
  4. Introduceți numele dispozitivului introdus ca mqtt_device_name în fișierul /config/device.json.
  5. Faceți clic pe Adăugați dispozitiv.
  6. Faceți clic pe Conectare automată.
  7. Porniți ICOS10 (5V MicroUSB).
  8. Verificați prin tabloul de bord Crouton.

Recomandat: