INHOUDSOPGAWE:

IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CUSTOMIZATION WEBSEREVER: 11 stappe
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CUSTOMIZATION WEBSEREVER: 11 stappe

Video: IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CUSTOMIZATION WEBSEREVER: 11 stappe

Video: IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CUSTOMIZATION WEBSEREVER: 11 stappe
Video: IOT123 - ASSIMILATE SENSOR HUB: ICOS10 IDC PANEL ASSEMBLY 2024, Julie
Anonim
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CUSTOMIZATION WEBSEREVER
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CUSTOMIZATION WEBSEREVER
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CUSTOMIZATION WEBSEREVER
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CUSTOMIZATION WEBSEREVER
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CUSTOMIZATION WEBSEREVER
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CUSTOMIZATION WEBSEREVER

Die ASSIMILATE SENSOR/ACTOR Slaves bevat metadata wat gebruik word vir die definiëring van visualisasies in Crouton. Hierdie build voeg 'n webbediener by die ESP8266 Master, bedien 'n paar config -lêers wat deur die gebruiker gewysig kan word, en gebruik dan die lêers om die visualisasies te herdefinieer. Die name van die paneelkaarte en die meeste instelbare eienskappe kan dus verander word. Dit was nodig bv. die DHT11 publiseer eienskappe van temperatuur en humiditeit: as 'n webwerf verskeie nodusse met aparte DHT11 -sensors het, kan hulle nie almal temperatuur genoem word nie (Garage Temp., Yard Temp …). Die beperking van die metadata -lengte wat deur die I2C Bus (16 tekens) gestel is, bestaan nie en ryker waardes kan toegepas word (tot 64 tekens).

Opsionele basiese verifikasie kan gekonfigureer word vir die wysigingswebblad, sowel as 'n uitsluitingslys van verifikasie vir ander bronne.

'N Laerskakelaar wat die slawe afskakel indien nodig, is ook op 'n bestaande dogterbord ontwikkel.

As 'n tegniese opmerking, was die geheue -voetspoor 70% vanweë 'n wêreldwye metadata -voorwerpgrafiek voordat u met die bou begin. Die nuutste AssimilateBus -biblioteek het veranderings aangebring wat die globale veranderlike in kleiner JSON -lêers wat in SPIFFS gestoor is, ontkoppel. Dit het die voetspoor teruggebring tot ~ 50%, wat veiliger is vir die hele JSON -ontleding/gebou. Die AssimilateBusSlave -biblioteek bly dieselfde (ASSIM_VERSION 2) gedurende hierdie veranderinge.

KENMERKE EN VISIE

Tans is die Slawe (sensors en akteurs) op hul eie en vertrou op konvensiegebaseerde I2C -boodskappe om eiendomme te lees of op bevele op te tree. Die meester haal die metadata en eiendomme by slawe op en stuur dit na 'n MQTT -makelaar. Dit begin ook 'n webbediener en bedien JSON -lêers wat bewerk kan word om die meester op te stel en die metadata/eienskappe aan te pas wat uiteindelik deur Crouton verbruik word. Die individuele sensors/akteurs word gelees/beveel via Crouton sonder dat die meester vooraf kennis dra van wat die slawe doen.

Een van die doelwitte van die ASSIMILATE IOT -NETWERK is om Crouton aan te pas sodat mashup -redakteurs van die IOT NODE -webbedieners (soos hierdie build) bygevoeg word as webkomponente wat volledige beheer gee oor wat die ding doen, dws die meester is nie geprogrammeer nie, die slawe het basiese funksiestelle, maar die Crouton -dashboard bevat alle sakereëls wat nodig is om die ding te bestuur!

Die Crouton -vurk word beskou as 'n opsie vir gedesentraliseerde beheer/opset van dinge. In wese kan elke MQTT -kliënt/GUI -kombinasie u dinge administreer, aangesien elke funksie (sensors en akteurs) blootgestel word as MQTT -eindpunte.

Stap 1: Crouton

Crouton
Crouton
Crouton
Crouton

Crouton. https://crouton.mybluemix.net/ Crouton is 'n dashboard waarmee u u IOT -toestelle kan visualiseer en beheer met minimale opstelling. In wese is dit die maklikste paneelbord om op te stel vir enige IOT -hardeware -entoesias wat slegs MQTT en JSON gebruik.

Die ASSIMILATE SLAVES (sensors en akteurs) bevat metadata en eienskappe wat die meester gebruik om die deviceInfo json -pakkie op te bou wat Crouton gebruik om die paneelbord te bou. Die tussenganger tussen ASSIMILATE NODES en Crouton is 'n MQTT -makelaar wat webvasvriendelik is: Mosquito word gebruik vir die demo.

Aangesien die ASSIMILATE MASTER (hierdie build) eiendomme versoek, formateer dit die antwoordwaardes in die vereiste formaat vir Crouton -opdaterings.

Stap 2: Die webbediener / redakteur

Die webbediener / redakteur
Die webbediener / redakteur
Die webbediener / redakteur
Die webbediener / redakteur

Namate die meester opstart (hierdie build), word 'n ingebedde webserver begin. Die IP -adres word na die Serial Console gestuur; uiteindelik sal dit op die Crouton -dashboard gepubliseer word.

As u na die genoemde URL blaai, word die ACE EDITOR gelaai:

Ace is 'n ingeboude kode -redakteur wat in JavaScript geskryf is. Dit pas by die funksies en prestasie van inheemse redakteurs soos Sublime, Vim en TextMate.

Ace is gewild onder ingebedde webservers en bied 'n goeie koppelvlak om die JSON -lêers te redigeer en op te slaan.

As u op 'n lêernaam aan die linkerkant klik, lees u die lêer van SPIFFS op die ESP8266 en laai u die inhoud om dit regs te redigeer. Die lêer kan vanaf die boonste werkbalk gestoor word.

Om 'n lêer op te laai:

  1. Kies lêer uit u plaaslike lêerstelsel.
  2. Voeg 'n gidspad (indien nodig) in die tekskassie in.
  3. Klik op Laai op.
  4. Herlaai die bladsy.

Stap 3: Aanpassing van toestelle

Toestelaanpassing
Toestelaanpassing

Die konfigurasie van die toestel (die ESP8266) word uitgevoer deur die device.json -lêer.

Sommige van hierdie inskrywings (wifi_ssid, wifi_key) moet gewysig word voordat u die data na SPIFFS oplaai (ESP8266 Sketch Data Upload).

Blaai na die wortel van die webserver (getoon in die konsole -uitvoer soos

REDIGERING

Kies config/device.json in die ACE EDITOR.

Die inskrywings is:

  • www_auth_username: magtigingsnaam vir webbedienerlêers (leeg vir nie magtiging nie).
  • www_auth_password: magtigingswagwoord vir webbedienerlêers (indien gebruikersnaam gedefinieer).
  • www_auth_exclude_files: 'n halfpunt-afgebakende lys van lêerpaaie om van die magtigingstoetse uit te sluit (indien gebruikersnaam gedefinieer).
  • sensor_interval: die millisekondes tussen die publisering van data aan die MQTT -makelaar.
  • ntp_server_name: die naam van die tydbediener om te gebruik.
  • time_zone: die verrekening in ure vir u plaaslike tyd.
  • wifi_ssid: die SSID van u plaaslike toegangspunt.
  • wifi_key: die sleutel wat u vir die SSID moet gebruik.
  • mqtt_broker: die MQTT -makelaarsadres.
  • mqtt_username: die gebruikersnaam wat vir die MQTT -makelaar gebruik moet word (leeg vir geen rekening nodig nie).
  • mqtt_password: die wagwoord om te gebruik uit die MQTT gebruikersnaam.
  • mqtt_port: die MQTT -makelaarspoort.
  • mqtt_device_name: die naam wat gebruik moet word vir MQTT -onderwerpe en Crouton -identifikasie.
  • mqtt_device_description: die beskrywing van die toestel wat in Crouton getoon word.
  • nl_color: die kleur om die toestelkaartjies in Crouton te identifiseer (in die gevurkte weergawe)

Stap 4: Aanpassing van eiendom

Eiendomsaanpassing
Eiendomsaanpassing
Eiendomsaanpassing
Eiendomsaanpassing
Eiendomsaanpassing
Eiendomsaanpassing

Elkeen van die Slawe het 'n nvc struct -skikking wat gedefinieer is in die definitions.h -lêer:

// --------------------------------------- PUBLISHED EIENDOMME

nvc rekwisiete [2] = {{"Humiditeit", "", waar}, {"Temperatuur", "", vals}}; // --------------------------------------- EINDE PUBLISHED EIENDOMME

Elkeen van die inskrywings het 'n indeks met die eerste een 0 (nul).

Die aanpassing van die eiendomsnaam word uitgevoer deur die user_props.json -lêer.

Blaai na die wortel van die webserver (getoon in die konsole -uitvoer soos

REDIGERING

Kies in die ACE EDITOR config/user_props.json (of laai een op).

Die struktuur is:

Die eerste sleutel is die adres van die slaaf in die definitions.h -lêer soos geïdentifiseer deur:

#definieer ADDRESS_SLAVE XX

  • Die volgende vlak sleutels is die indeks van die eiendom.
  • Die waarde van die sleutel is die Eiendomsnaam wat u in Crouton moet gebruik in plaas van die Eiendomsnaam wat in die definisieslêer gedefinieer word.

Stap 5: Aanpassing van metadata

Aanpassing van metadata
Aanpassing van metadata
Aanpassing van metadata
Aanpassing van metadata
Aanpassing van metadata
Aanpassing van metadata
Aanpassing van metadata
Aanpassing van metadata

As gevolg van die hoeveelheid moontlike aanpassings, het elke slaaf sy eie metadata -wysigingslêer. Die lêers moet in die formaat user_metas_.json wees.

Die slawe -adres word gevind in die definitions.h -lêer in die ATTINY85 -sketse:

#definieer ADDRESS_SLAVE XX

Die metadata word in dieselfde lêer soos volg gedefinieer:

const static char nl1 PROGMEM = "VIZ_CARD_TYPE";

const static char viz2 PROGMEM = "2: chart-doughnut"; const static char nl3 PROGMEM = "1";

Die eerste reël is die naam van die metadata -item.

Die tweede reël is die waarde. Dit het gewoonlik 'n agtervoegsel vir die eiendomsindeks.

Die derde reël is die voortsetting vlag. 1 - gaan voort, 0 - einde van metadata (VCC_MV).

Blaai na die wortel van die webserver (getoon in die konsole -uitvoer soos

REDIGERING

Kies in die ACE EDITOR config/user_metas_SLAVE_ADDRESS.json (of laai een op). Die struktuur is:

  • 'N Verskeidenheid naam/waarde -pare.
  • Naam is die naam van die metadata -item wat u wil verander.
  • Waarde is die verandering. Die indeks -agtervoegsel word nagegaan vir die vervanging.

Stap 6: Materiaal en gereedskap

Materiaal en gereedskap
Materiaal en gereedskap
Materiaal en gereedskap
Materiaal en gereedskap
Materiaal en gereedskap
Materiaal en gereedskap

ICOS10 (IDC) Shell Bill of Materials

  1. D1M BLOCK Pin Jig (1)
  2. D1M BLOCK basis en behuising (1)
  3. Wemos D1 Mini (1)
  4. Wemos D1 Mini Protoboard Shield (1)
  5. 40P vroulike kopstukke (8P, 8P, 9P, 9P)
  6. Manlike kop 90º (3P, 3P, 3P, 2P, 1P, 2P)
  7. 1 "dubbelzijdige protobord (2)
  8. 2N7000 NFET (1)
  9. IDC -manlike kop met 6 penne gehul (1)
  10. Aansluitdraad (~ 10)
  11. 0,5 mm vertinde draad (~ 4)
  12. 4G x 15 mm selfkopskroewe met knoppies (2)
  13. Self -tappende versinkte skroewe van 4G x 6 mm (~ 20)
  14. Soldeer en yster (1)

Stap 7: MCU -voorbereiding

Image
Image
MCU -voorbereiding
MCU -voorbereiding

In hierdie weergawe gebruik ons die Wemos D1 Mini. As u voorheen 'n D1M WIFI -BLOK gebou het, kan u dit vir die modulêre hardeware -komponent gebruik. Indien nie, volg die volgende afdeling ten minste.

VERKOOP VAN DIE HEADER PINS OP DIE MCU (met behulp van die PIN JIG) As u nie 'n PIN JIG kan druk nie, volg die instruksies en improviseer: die hoogte (offset) van die PIN JIG is 6.5mm.

  1. Druk/verkry 'n PIN JIG vanaf hierdie bladsy.
  2. Voer die koppenne deur die onderkant van die bord (TX regs-links) en in die soldeerpot.
  3. Druk die penne af op 'n harde, plat oppervlak.
  4. Druk die bord stewig op die mal vas.
  5. Soldeer die 4 hoekpenne.
  6. Verhit die bord/penne weer en plaas dit indien nodig (bord of penne nie in lyn of loodgieter nie).
  7. Soldeer die res van die penne.

OPLAAD VAN DIE FIRMWARE

Die kodebewaarplek kan hier gevind word (kiekie).

'N Poskode van die biblioteek kan hier gevind word (kiekie).

Instruksies vir die invoer van 'n zip -biblioteek hier.

Sodra die biblioteek geïnstalleer is, kan u die voorbeeld "mqtt_crouton_esp8266_customization_webserver" oopmaak.

Instruksies vir die opstel van Arduino vir die Wemos D1 Mini hier.

Afhanklikes: ArduinoJson, TimeLib, PubSubClient, NeoTimer (sien aanhangsels as u veranderinge in bewaarplekke breek).

LAAI OP NA SPIFFS

Sodra die kode in die Arduino IDE gelaai is, maak device.json oop in die data/config -lêergids:

  1. Verander die waarde van wifi_ssid met u WiFi SSID.
  2. Verander die waarde van wifi_key met u WiFi -sleutel.
  3. Verander die waarde van mqtt_device_name met u toestelidentifikasie wat u verkies (geen verbinding nodig nie).
  4. Verander die waarde van mqtt_device_description met u toestelbeskrywing wat u verkies (in Crouton).
  5. Stoor device.json.
  6. Laai die datalêers op na SPIFFS.

Stap 8: Voorbereiding van MCU -behuising

Image
Image
Voorbereiding van MCU -behuising
Voorbereiding van MCU -behuising
Voorbereiding van MCU -behuising
Voorbereiding van MCU -behuising

Die MCU-behuising stel die opskrifte vir die D1 Mini bloot om aan te sluit en opskrifte vir dogterborde wat met die Socket-kring (sensors en akteurs) kommunikeer.

HOUSING HEADERS Dit is gebaseer op 'n D1 Mini Protoboard en breek hierdie penne uit:

  1. Spelde vir die D1M WIFI BLOCK/D1 Mini om aan te sluit.
  2. Direkte uitbreek van die 2 rye kontakte van die D1M WIFI BLOCK/D1 Mini. Dit is slegs gerieflik tydens prototipering beskikbaar. Daar word verwag dat die dogterborde alle toegang tot hierdie opskrifte sal blokkeer.
  3. 4 Uitbrake van die spesifieke penne wat deur die dogterborde gebruik word.

Om die D1M -kontakte by die HOUSING HEADER te voeg:

  1. Kyk na die video van die VERKOPER MET DIE SOCKET JIG.
  2. Voer die koppenne deur die onderkant van die bord (TX links bo-aan die bokant).
  3. Voer mal oor plastiekopskrif en maak albei oppervlaktes gelyk.
  4. Draai die mal en die samestelling om en druk die kop stewig op 'n harde, plat oppervlak.
  5. Druk die bord stewig op die mal vas.
  6. Soldeer die 4 hoekpenne met minimale soldeer (net tydelike belyning van penne).
  7. Verhit die bord/penne weer en plaas dit indien nodig (bord of penne nie in lyn of loodgieter nie).
  8. Soldeer die res van die penne.
  9. Verwyder die mal.
  10. Sny penne bo soldate af.

Om die uitbreek van die dogterbord by te voeg:

  1. Sny 4 9P vroulike opskrifte af.
  2. Plaas die 9P -kopstukke aan die bokant, soos aangedui, en soldeer aan die onderkant af.

Om die direkte uitbrekings by te voeg:

  1. Sny 2 8P vroulike opskrifte af.
  2. Plaas die 8P -koppe aan die bokant soos aangedui, en soldeer aan die onderkant af.

Om die koppe aan te sluit, onderaan met die TX -pen omhoog:

  1. Trek en soldeer vanaf die RST -pen oor 4 penne.
  2. Trek en soldeer vanaf die A0 -pen oor 4 penne.
  3. Trek en soldeer vanaf die D1 -pen oor 4 penne.
  4. Trek en soldeer vanaf die D2 -pen oor 4 penne.
  5. Spoor en soldeer van die D0 -pen af 2 rye en oor 4 penne.
  6. Trek en soldeer vanaf die D7 -pen oor 4 penne.
  7. Trek en soldeer vanaf die GND -pen oor 4 penne.
  8. Spoor en soldeer vanaf die 5V -pen oor 4 penne.
  9. Spoor en soldeer vanaf die 3V3 -pen 45 ° af oor 4 penne.

VERBINDING VAN DIE VASTE

Die HOUSING HEADERS is op die MCU HOUSING aangebring en dit is op die BASE PLATE aangebring.

  1. Met die lang kant van die HOUSINGKOPPE na die gat gerig, steek die D1M -KONTAKTE in die openinge in die MCU -HUISING en druk afwaarts.
  2. Plaas die MCU tydens die aanbring op die MCU -KONTAKTE om die korrekte belyning te verseker.
  3. Plaas die HEADER -raam bo -op die monteerarmaturen en plak dit vas met twee 4G x 16 mm -skroewe.
  4. Plaas die saamgestelde toebehore met die gaatjie na die kort kant gerig en plak dit met die 4G x 6mm skroewe.

Stap 9: Bou die Slawe Laerskant-skakelaar/RESET Dogterbord

Bou die Slawe Laagkantskakelaar/RESET Dogterbord
Bou die Slawe Laagkantskakelaar/RESET Dogterbord
Bou die Slawe Laerskant-skakelaar/RESET Dogterbord
Bou die Slawe Laerskant-skakelaar/RESET Dogterbord
Bou die Slawe Laagkantskakelaar/RESET Dogterbord
Bou die Slawe Laagkantskakelaar/RESET Dogterbord

Dit is 'n verbetering van die REST-dogterbord wat die laaste gebou ontwikkel het. Dit voeg 'n lae-skakelaar by wat die slawe met GROUND verbind. As die meester herstel word, sal die slawe ook begin, en die inisialisering wat die metadata versprei, sal weer begin.

VERGADERING

  1. Plaas die 9P 90 ° manlike kopstukke (1), 1P 90 ° manlike kopstuk (2), die 2N7000 (3) aan die binnekant en soldeer aan die buitekant af.
  2. Aan die binnekant, spoor 'n geel draad van GEEL1 na GEEL2 en soldeer.
  3. Aan die binnekant, trek 'n kaal draad van SILVER1 na SILVER2 en soldeer.
  4. Aan die binnekant, trek 'n kaal draad van SILVER3 na SILVER4 en soldeer.

Stap 10: Monteer die belangrikste komponente

Die samestelling van die belangrikste komponente
Die samestelling van die belangrikste komponente
Die samestelling van die belangrikste komponente
Die samestelling van die belangrikste komponente
Die samestelling van die belangrikste komponente
Die samestelling van die belangrikste komponente
Die samestelling van die belangrikste komponente
Die samestelling van die belangrikste komponente
  1. Maak seker dat die SHELL gebou is en die stroombaan getoets is (kabel en voetstukke).
  2. Ruil die 2P Man-kop uit op die 3V3 I2C DAAGBOORD met 'n 2P 90º 1P Male Header.
  3. Plaas die 3V3 I2C DAUGHTER-BOARD, met die 3V3-pen op die vlekkant van die kopstukke (sien prent).
  4. Plaas die LAAGSYDIGE SKAKELAAR/RESET DOGTERBORD, met die draad na binne (sien prent).
  5. Spoor 'n Dupont-voorsprong tussen die 90º 1P manlike kop op die RESET DAUGHTER-BOARD na die 3V3 I2C DAUGHTER-BOARD.
  6. Steek die IDC-aansluiting van die SHELL CABLE in die IDC-kop op die 3V3 I2C DOGTERBOORD.
  7. Steek die DOGTERE/BEHUISE versigtig tussen die kabels in die SKEEL in en pas die basisgate.
  8. Bevestig die BASISMONTERING aan die SHELL met die 4G x 6mm skroewe.
  9. Heg enige ASSIMILATE SENSORS wat u gemaak het, aan.

Stap 11: Volgende stappe

Image
Image
Volgende stappe
Volgende stappe
Volgende stappe
Volgende stappe
  1. Wys u blaaier na
  2. Maak seker dat die makelaar test.mosquitto.org is.
  3. Klik op Verbind.
  4. Voer die invoer van die toestelnaam in as mqtt_device_name in die /config/device.json lêer.
  5. Klik op Toestel byvoeg.
  6. Klik op Outomatiese verbinding.
  7. Skakel u ICOS10 (5V MicroUSB) aan.
  8. Verifieer via die Crouton -dashboard.

Aanbeveel: