Innholdsfortegnelse:

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

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

Video: IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CUSTOMIZATION WEBSEREVER: 11 Steps
Video: IOT123 - ASSIMILATE SENSOR HUB: ICOS10 IDC PANEL ASSEMBLY 2024, November
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

ASSIMILATE SENSOR/ACTOR Slaves legger inn metadata som brukes til å definere visualiseringene i Crouton. Denne bygningen legger til en webserver til ESP8266 Master, serverer noen konfigurasjonsfiler som kan endres av brukeren, og bruker deretter filene til å omdefinere visualiseringene. Så navnene på dashbordkortene og de fleste konfigurerbare egenskapene kan endres. Dette var nødvendig f.eks. DHT11 publiserer egenskaper for temperatur og fuktighet: hvis et nettsted har flere noder med separate DHT11 -sensorer, kan de ikke alle kalles temperatur (garasjetemp., gårdstemp …). Metadatalengdebegrensningen satt av I2C -bussen (16 tegn) eksisterer ikke, og rikere verdier kan brukes (opptil 64 tegn).

Valgfri grunnleggende autentisering kan konfigureres for redigeringsnettstedet, samt en ekskluderingsliste fra autentisering for andre ressurser.

En lavsidebryter som slår ned slaver når det er nødvendig, er også utviklet på et eksisterende datterbrett.

Som et teknisk notat var minnefotavtrykket 70% på grunn av en global metadataobjektgraf før du begynte denne bygningen. Det siste AssimilateBus -biblioteket har hatt brytende endringer som kobler den globale variabelen til mindre JSON -filer lagret i SPIFFS. Dette har brakt fotavtrykket tilbake til ~ 50%, noe som er tryggere for alle JSON -analyser/bygninger. AssimilateBusSlave -biblioteket forblir det samme (ASSIM_VERSION 2) gjennom disse endringene.

FUNKSJONER OG VISJON

For tiden er slaver (sensorer og aktører) frittstående og stoler på konvensjonsbaserte I2C -meldinger for å lese egenskaper eller handle på kommandoer. Mesteren henter metadataene og egenskapene fra slaver og sender dem til en MQTT -megler. Den starter også en webserver og serverer JSON -filer som kan redigeres for å konfigurere masteren og tilpasse metadataene/egenskapene som til slutt blir brukt av Crouton. De enkelte sensorene/skuespillerne blir lest/kommandert via Crouton uten at mesteren har noen forhåndskunnskap om hva slaver gjør.

Et av målene med ASSIMILATE IOT NETWORK er å tilpasse Crouton slik at mashup -redaktører som serveres fra IOT NODE webservere (som denne builden), legges til som webkomponenter som gir full kontroll over hva tingen gjør, dvs. at master ikke er programmert, slaver har grunnleggende funksjonssett, men Crouton -dashbordet innebærer alle forretningsreglene som trengs for å kjøre tingen!

Crouton -gaffelen blir sett på som et alternativ for desentralisert kontroll/konfigurasjon av ting. I hovedsak kan enhver MQTT -klient/GUI -kombinasjon administrere tingene dine, ettersom hver funksjon (sensorer og aktører) blir avslørt som MQTT -endepunkter.

Trinn 1: Crouton

Crouton
Crouton
Crouton
Crouton

Crouton. https://crouton.mybluemix.net/ Crouton er et dashbord som lar deg visualisere og kontrollere IOT -enhetene dine med minimalt oppsett. I hovedsak er det det enkleste dashbordet å sette opp for alle IOT -maskinvareentusiaster som bare bruker MQTT og JSON.

ASSIMILATE SLAVES (sensorer og aktører) har innebygde metadata og egenskaper som masteren bruker til å bygge opp deviceInfo json -pakken som Crouton bruker til å bygge dashbordet. Mellommannen mellom ASSIMILATE NODES og Crouton er en MQTT -megler som er nettstikkvennlig: Mygg brukes til demoen.

Ettersom ASSIMILATE MASTER (denne builden) ber om egenskaper, formaterer den responsverdiene i det nødvendige formatet for Crouton -oppdateringer.

Trinn 2: Nettserveren / redaktøren

Webserveren / redaktøren
Webserveren / redaktøren
Webserveren / redaktøren
Webserveren / redaktøren

Når Master -støvlene (denne builden) starter en innebygd webserver. IP -adressen sendes ut til seriekonsollen; til slutt vil dette bli publisert på Crouton -dashbordet.

Når du blar til angitt URL, lastes ACE EDITOR:

Ace er en innebygd kodeditor som er skrevet i JavaScript. Den matcher funksjonene og ytelsen til native redaktører som Sublime, Vim og TextMate.

Ess er populært blant innebygde webservere og gir et godt grensesnitt for redigering og lagring av JSON -filene.

Klikk på et filnavn til venstre for å lese filen fra SPIFFS på ESP8266, og laste innholdet for redigering til høyre. Filen kan lagres fra verktøylinjen øverst.

Slik laster du opp en fil:

  1. Velg Fil fra ditt lokale filsystem.
  2. Sett inn en mappebane (om nødvendig) i tekstboksen.
  3. Klikk på Last opp.
  4. Oppdater siden.

Trinn 3: Tilpasning av enheten

Enhetstilpasning
Enhetstilpasning

Konfigurasjonen av enheten (ESP8266) utføres gjennom filen device.json.

Noen av disse oppføringene (wifi_ssid, wifi_key) må endres før du laster opp dataene til SPIFFS (ESP8266 Sketch Data Upload).

Bla til roten til webserveren (vist i konsollutgangen som

REDIGERING

I ACE EDITOR velger du config/device.json.

Oppføringene er:

  • www_auth_username: autorisasjonsnavn for webserverfiler (tom for ikke autorisasjon).
  • www_auth_password: autorisasjonspassord for webserverfiler (hvis brukernavn er definert).
  • www_auth_exclude_files: semikolon avgrenset liste over filbaner som skal ekskluderes fra autorisasjonskontroller (hvis brukernavn er definert).
  • sensor_interval: millisekundene mellom publisering av data til MQTT -megleren.
  • ntp_server_name: navnet på tidsserveren som skal brukes.
  • time_zone: forskyvningen i timer for din lokale tid.
  • wifi_ssid: SSID for ditt lokale tilgangspunkt.
  • wifi_key: nøkkelen som skal brukes for SSID.
  • mqtt_broker: MQTT -megleradressen.
  • mqtt_username: brukernavnet som skal brukes for MQTT -megleren (tomt for ingen konto nødvendig).
  • mqtt_password: passordet som skal brukes fra MQTT -brukernavnet.
  • mqtt_port: meglerporten MQTT.
  • mqtt_device_name: navnet som skal brukes for MQTT -emner og Crouton -identifikasjon.
  • mqtt_device_description: beskrivelsen av enheten som vises i Crouton.
  • viz_color: fargen for å identifisere enhetskortene i Crouton (i gaffelversjonen)

Trinn 4: Tilpasning av eiendom

Eiendomstilpasning
Eiendomstilpasning
Eiendomstilpasning
Eiendomstilpasning
Eiendomstilpasning
Eiendomstilpasning

Hver av slaver har en nvc struct -matrise definert i definitions.h -filen:

// --------------------------------------- PUBLISERTE EIENDOMMER

nvc props [2] = {{"Fuktighet", "", sant}, {"Temperatur", "", falsk}}; // --------------------------------------- SLUTT PUBLISERTE EIENDOMMER

Hver av oppføringene har en indeks der den første er 0 (null).

Tilpassingen av eiendomsnavnet utføres gjennom filen user_props.json.

Bla til roten til webserveren (vist i konsollutgangen som

REDIGERING

I ACE EDITOR velger du config/user_props.json (eller laster opp en).

Strukturen er:

Den første nøkkelen er adressen til slaven i definitions.h -filen som identifisert av:

#define ADDRESS_SLAVE XX

  • Det neste nivået av nøkler er indeksen for eiendommen.
  • Verdien av denne nøkkelen er eiendomsnavnet som skal brukes i Crouton i stedet for eiendomsnavnet som er definert i definisjonsfilen.

Trinn 5: Tilpasning av metadata

Tilpasning av metadata
Tilpasning av metadata
Tilpasning av metadata
Tilpasning av metadata
Tilpasning av metadata
Tilpasning av metadata
Tilpasning av metadata
Tilpasning av metadata

På grunn av mengden mulige tilpasninger har hver slave sin egen metadataendringsfil. Filene skal ha formatet user_metas_.json.

Slaveadressen finnes i definitions.h -filen i ATTINY85 -skissene:

#define ADDRESS_SLAVE XX

Metadataene er definert i samme fil slik:

const static char viz1 PROGMEM = "VIZ_CARD_TYPE";

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

Den første linjen er navnet på metadataelementet.

Den andre linjen er verdien. Den har vanligvis et eiendomsindeks -suffiks.

Den tredje linjen er fortsettelsesflagget. 1 - fortsett, 0 - slutten av metadata (VCC_MV).

Bla til roten til webserveren (vist i konsollutgangen som

REDIGERING

I ACE EDITOR velger du config/user_metas_SLAVE_ADDRESS.json (eller laster opp en). Strukturen er:

  • En rekke navn/verdi -par.
  • Navn er navnet på metadataelementet som skal endres.
  • Verdi er endringen. Indeks -suffikset kontrolleres for erstatningen.

Trinn 6: Materialer og verktøy

Materialer og verktøy
Materialer og verktøy
Materialer og verktøy
Materialer og verktøy
Materialer og verktøy
Materialer og verktøy

ICOS10 (IDC) Shell Bill of Materials

  1. D1M BLOCK Pin Jig (1)
  2. D1M BLOCK -base og hus (1)
  3. Wemos D1 Mini (1)
  4. Wemos D1 Mini Protoboard Shield (1)
  5. 40P kvinnelige overskrifter (8P, 8P, 9P, 9P)
  6. Hannoverskrift 90º (3P, 3P, 3P, 2P, 1P, 2P)
  7. 1 "Dobbeltsidig protoboard (2)
  8. 2N7000 NFET (1)
  9. 6 pins innhyllet IDC mannlig topptekst (1)
  10. Tilkoblingskabel (~ 10)
  11. 0,5 mm fortinnet ledning (~ 4)
  12. 4G x 15 mm selvskruende skruer med knapphodet (2)
  13. 4G x 6 mm selvskruende forsenkede skruer (~ 20)
  14. Lodde og jern (1)

Trinn 7: Forberedelse av MCU

Image
Image
MCU -forberedelse
MCU -forberedelse

I denne bygningen bruker vi Wemos D1 Mini. Hvis du tidligere har bygget en D1M WIFI -BLOCK, kan du bruke den til den modulære maskinvarekomponenten. Hvis ikke, følg det neste avsnittet som et minimum.

SOLDE HOVEDPINENE PÅ MCUEN (ved hjelp av PIN -JIGGEN) Hvis du ikke kan skrive ut en PIN -JIG, følger du bare instruksjonene og improviserer: høyden (forskyvningen) på PIN -JIGGEN er 6,5 mm.

  1. Skriv ut/få en PIN -JIG fra denne siden.
  2. Før toppnålene gjennom bunnen av brettet (TX høyre-venstre) og inn i loddejiggen.
  3. Trykk pinnene ned på en hard, flat overflate.
  4. Trykk tavlen godt ned på jiggen.
  5. Lodd de 4 hjørnepinnene.
  6. Varm opp og plasser brettet/pinnene på nytt om nødvendig (brettet eller pinnene er ikke justert eller lodd).
  7. Lodd resten av pinnene.

OPPLADERING AV FIRMWARE

Kodelageret finner du her (øyeblikksbilde).

En ZIP av biblioteket finner du her (øyeblikksbilde).

Instruksjoner for "Import av et ZIP -bibliotek" her.

Når biblioteket er installert, kan du åpne eksempelet "mqtt_crouton_esp8266_customization_webserver".

Instruksjoner for hvordan du konfigurerer Arduino for Wemos D1 Mini her.

Avhengigheter: ArduinoJson, TimeLib, PubSubClient, NeoTimer (se vedlegg hvis du bryter endringer i depotene).

Laster opp til SPIFFS

Når koden er lastet inn i Arduino IDE, åpner du device.json i data/config -mappen:

  1. Endre verdien av wifi_ssid med WiFi SSID.
  2. Endre verdien av wifi_key med WiFi -nøkkelen.
  3. Endre verdien av mqtt_device_name med din foretrukne enhetsidentifikasjon (ingen sammenkobling nødvendig).
  4. Endre verdien av mqtt_device_description med din foretrukne enhetsbeskrivelse (i Crouton).
  5. Lagre device.json.
  6. Last opp datafilene til SPIFFS.

Trinn 8: Forberedelse av MCU -hus

Image
Image
MCU Boligforberedelse
MCU Boligforberedelse
MCU Boligforberedelse
MCU Boligforberedelse

MCU-huset avslører overskrifter for D1 Mini å koble til og overskrifter for datterkort som kommuniserer med Socket (sensorer og aktører) krets.

HOUSING HEADERS Dette er basert på et D1 Mini Protoboard, og bryter ut disse pinnene:

  1. Pins for D1M WIFI BLOCK/D1 Mini å koble til.
  2. Direkte utbrudd av de to kontaktradene fra D1M WIFI BLOCK/D1 Mini. Disse er bare tilgjengelige for enkelhets skyld under prototyping. Det forventes at datterbrettene vil blokkere all tilgang til disse overskriftene.
  3. 4 Utbrudd av de spesifikke pinnene som ble brukt av datterbrettene.

Slik legger du til D1M -kontaktene i HOUSING HEADER:

  1. Se videoen SOLDER USING THE SOCKET JIG.
  2. Før toppnålene gjennom bunnen av brettet (TX øverst til venstre på oversiden).
  3. Før jiggen over plasthodet og nivå begge overflatene.
  4. Snu jiggen og enheten, og trykk toppteksten fast på en hard, flat overflate.
  5. Trykk tavlen godt ned på jiggen.
  6. Lodd de 4 hjørnepinnene med minimal loddetinn (bare midlertidig justering av pinnene).
  7. Varm opp og plasser brettet/pinnene på nytt om nødvendig (brettet eller pinnene er ikke justert eller lodd).
  8. Lodd resten av pinnene.
  9. Fjern jiggen.
  10. Klipp av pinner over loddene.

Slik legger du til datterbrettutbruddene:

  1. Klipp 4 av 9P kvinnelige overskrifter.
  2. På toppen setter du inn 9P -hodene som vist, og loddes av på bunnen.

Slik legger du til direkte utbrudd:

  1. Klipp 2 av 8P kvinnelige overskrifter.
  2. På toppen setter du inn 8P -hodene som vist, og loddes av på bunnen.

For å koble overskriftene, på bunnen med TX -pinnen vendt opp:

  1. Spor og loddetinn fra RST -pinnen på tvers av 4 pinner.
  2. Spor og loddetinn fra A0 -pinnen på tvers av 4 pinner.
  3. Spor og loddetinn fra D1 -pinnen på tvers av 4 pinner.
  4. Spor og loddetinn fra D2 -pinnen på tvers av 4 pinner.
  5. Spor og loddetinn fra D0 -pinnen nedover 2 rader og over 4 pinner.
  6. Spor og loddetinn fra D7 -pinnen på tvers av 4 pinner.
  7. Spor og loddetinn fra GND -pinnen på tvers av 4 pinner.
  8. Spor og loddetinn fra 5V -pinnen på tvers av 4 pinner.
  9. Spor og loddetinn fra 3V3 -pinnen ned 45 ° over 4 pinner.

MONTERING AV FIKSUREN

HOUSING HEADERS er festet til MCU HOUSING, og dette er festet til BASE PLATE.

  1. Med den lange siden av HOUSING HEADERS pekende mot hullet, sett D1M CONTACTS inn i åpningene i MCU HOUSING og skyv nedover.
  2. Sett inn MCU -en på MCU -KONTAKTENE under påføring for å sikre riktig justering.
  3. Plasser HEADER -RAMMEN over toppen av monteringsarmaturene og fest med 2 av 4 x 16 mm skruer.
  4. Plasser de monterte armaturene med hullet peket mot kortsiden og fest med skruene 4G x 6 mm.

Trinn 9: Bygg Slaves Low-side Switch/RESET Daughter-board

Bygge Slaves Low-side Switch/RESET Daughter-board
Bygge Slaves Low-side Switch/RESET Daughter-board
Bygge Slaves Low-side Switch/RESET Daughter-board
Bygge Slaves Low-side Switch/RESET Daughter-board
Bygge Slaves Low-side Switch/RESET Daughter-board
Bygge Slaves Low-side Switch/RESET Daughter-board

Dette er en forbedring av REST datter-board utviklet siste build. Dette legger til en lavsidebryter som kobler slaver til GROUND. Hvis master blir tilbakestilt, vil slaver også, og initialiseringen som sprer metadataene starter på nytt.

MONTERING

  1. På innsiden setter du inn 9P 90 ° hannhodene (1), 1P 90 ° hannhodet (2), 2N7000 (3) og loddes av på utsiden.
  2. På innsiden, spor en gul ledning fra GUL1 til GUL 2 og loddetinn.
  3. På innsiden kan du spore en ledning fra SILVER1 til SILVER2 og lodde.
  4. På innsiden, spor en bar ledning fra SILVER3 til SILVER4 og loddetinn.

Trinn 10: Montering av hovedkomponentene

Montering av hovedkomponentene
Montering av hovedkomponentene
Montering av hovedkomponentene
Montering av hovedkomponentene
Montering av hovedkomponentene
Montering av hovedkomponentene
Montering av hovedkomponentene
Montering av hovedkomponentene
  1. Sørg for at SHELL er bygget og kretsen testet (kabel og stikkontakter).
  2. Bytt ut 2P hannhodet på 3V3 I2C DAUGHTER-BOARD med en 2P 90º 1P hannhodet.
  3. Sett inn 3V3 I2C DØRKORTET, med 3V3-pinnen på den ujevne enden av hodene (se bilde).
  4. Sett inn den nederste bryteren/tilbakestill datterbordet, med ledningen til innsiden (se bilde).
  5. Spor en Dupont-ledning mellom 90º 1P hannhodet på RESET DAUGHTER-BOARD til 3V3 I2C DAUGHTER-BOARD.
  6. Sett IDC-kontakten fra SHELL CABLE inn i IDC Header på 3V3 I2C DAUGHTER-BOARD.
  7. Sett forsiktig inn DØTTERKORTET/HUSET mellom kablene i SKALET og juster bunnhullene.
  8. Fest BASEMONTERINGEN til SKALET med skruene 4G x 6 mm.
  9. Fest eventuelle ASSIMILATE SENSORER du har laget.

Trinn 11: Neste trinn

Image
Image
Neste skritt
Neste skritt
Neste skritt
Neste skritt
  1. Pek nettleseren din på
  2. Sørg for at megleren er test.mosquitto.org.
  3. Klikk på Koble til.
  4. Skriv inn enhetsnavnet som mqtt_device_name i filen /config/device.json.
  5. Klikk på Legg til enhet.
  6. Klikk på Auto-connect.
  7. Slå på ICOS10 (5V MicroUSB).
  8. Bekreft via Crouton -dashbordet.

Anbefalt: