Indholdsfortegnelse:

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

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

Video: IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CUSTOMIZATION WEBSEREVER: 11 trin
Video: IOT123 - ASSIMILATE SENSOR HUB: ICOS10 IDC PANEL ASSEMBLY 2024, Juli
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 integrerer metadata, der bruges til at definere visualiseringer i Crouton. Denne build tilføjer en webserver til ESP8266 Master, serverer nogle konfigurationsfiler, der kan ændres af brugeren, og bruger derefter disse filer til at omdefinere visualiseringerne. Så navnene på dashboardkortene og de fleste af de konfigurerbare egenskaber kan ændres. Dette var nødvendigt f.eks. DHT11 udgiver egenskaber for temperatur og fugtighed: Hvis et websted har flere noder med separate DHT11 -sensorer, kan de ikke alle kaldes temperatur (garagetemp., gårdstemp …). Metadatalængdebegrænsningen, der er angivet af I2C -bussen (16 tegn) eksisterer ikke, og der kan anvendes rigere værdier (op til 64 tegn).

Valgfri grundlæggende godkendelse kan konfigureres til redigeringssiden samt en ekskluderingsliste fra godkendelse for andre ressourcer.

En lavsideskontakt, der slukker slaverne, når det er nødvendigt, er også blevet udviklet på et eksisterende datterbræt.

Som en teknisk bemærkning var hukommelsens fodaftryk før denne build 70% på grund af en global metadata -objektgraf. Det seneste AssimilateBus -bibliotek har haft brydende ændringer, der afkobler den globale variabel til mindre JSON -filer gemt på SPIFFS. Dette har bragt fodaftrykket tilbage til ~ 50%, hvilket er mere sikkert for alle JSON -analyser/bygninger. AssimilateBusSlave -biblioteket forbliver det samme (ASSIM_VERSION 2) under disse ændringer.

FUNKTIONER OG VISION

I øjeblikket er slaverne (sensorer og aktører) uafhængige og er afhængige af konventionelle I2C -meddelelser for at læse egenskaber eller handle på kommandoer. Mesteren henter metadata og egenskaber fra slaver og sender dem til en MQTT -mægler. Det starter også en webserver og serverer JSON -filer, der kan redigeres for at konfigurere masteren og tilpasse de metadata/egenskaber, der til sidst forbruges af Crouton. De enkelte sensorer/skuespillere læses/kommanderes via Crouton uden at mesteren har nogen forudgående viden om, hvad slaverne gør.

Et af målene med ASSIMILATE IOT NETWORK er at tilpasse Crouton, så mashup -redaktører serveret fra IOT NODE webservere (som denne build), tilføjes som webkomponenter, der giver fuldstændig kontrol over, hvad tingen gør, dvs. at masteren ikke er programmeret, slaverne har grundlæggende funktionssæt, men Crouton -instrumentbrættet indeholder alle de forretningsregler, der er nødvendige for at køre tingen!

Crouton -gaflen ses som en mulighed for decentral kontrol/konfiguration af ting. I det væsentlige kan enhver MQTT -klient/GUI -kombination administrere dine ting, da hver funktion (sensorer og aktører) udsættes som MQTT -endepunkter.

Trin 1: Crouton

Crouton
Crouton
Crouton
Crouton

Crouton. https://crouton.mybluemix.net/ Crouton er et dashboard, der lader dig visualisere og styre dine IOT -enheder med minimal opsætning. I det væsentlige er det det nemmeste instrumentbræt at konfigurere for enhver IOT -hardwareentusiast, der kun bruger MQTT og JSON.

ASSIMILATE SLAVES (sensorer og aktører) har indlejrede metadata og egenskaber, som masteren bruger til at opbygge deviceInfo json -pakken, som Crouton bruger til at bygge dashboardet. Mellemlederen mellem ASSIMILATE NODES og Crouton er en MQTT -mægler, der er websockets venlig: Myg bruges til demoen.

Da ASSIMILATE MASTER (denne build) anmoder om egenskaber, formaterer den svarværdierne i det nødvendige format til Crouton -opdateringer.

Trin 2: Webserveren / Editoren

Webserveren / Editoren
Webserveren / Editoren
Webserveren / Editoren
Webserveren / Editoren

Når Master starter (denne build) startes en integreret webserver. IP -adressen udsendes til seriekonsollen; til sidst vil dette blive offentliggjort på Crouton -instrumentbrættet.

Når du søger til den angivne URL, indlæses ACE EDITOR:

Ace er en integreret kodeditor, der er skrevet i JavaScript. Det matcher funktionerne og ydeevnen for native -redaktører som Sublime, Vim og TextMate.

Ace er populær blandt integrerede webservere og giver en god grænseflade til redigering og gemning af JSON -filerne.

Hvis du klikker på et filnavn til venstre, læses filen fra SPIFFS på ESP8266 og indlæses indholdet til redigering til højre. Filen kan gemmes fra den øverste værktøjslinje.

Sådan uploades en fil:

  1. Vælg Fil fra dit lokale filsystem.
  2. Indsæt en mappesti (hvis det er nødvendigt) i tekstboksen.
  3. Klik på Upload.
  4. Opdater siden.

Trin 3: Tilpasning af enheden

Enhedstilpasning
Enhedstilpasning

Enhedens konfiguration (ESP8266) foretages via filen device.json.

Nogle af disse poster (wifi_ssid, wifi_key) skal ændres, før du uploader dataene til SPIFFS (ESP8266 Sketch Data Upload).

Gennemse til webserverens rod (vist i konsolens output som

REDIGERING

Vælg config/device.json i ACE EDITOR.

Posterne er:

  • www_auth_username: autorisationsnavn til webserverfiler (tom for ikke autorisation).
  • www_auth_password: autorisationsadgangskode til webserverfiler (hvis brugernavn er defineret).
  • www_auth_exclude_files: semikolon afgrænset liste over filstier, der skal udelukkes fra autorisationskontrol (hvis brugernavn er defineret).
  • sensor_interval: millisekunder mellem udgivelser af data til MQTT -mægleren.
  • ntp_server_name: navnet på den tidsserver, der skal bruges.
  • time_zone: forskydningen i timer for din lokale tid.
  • wifi_ssid: SSID for dit lokale adgangspunkt.
  • wifi_key: nøglen, der skal bruges til SSID.
  • mqtt_broker: MQTT -mægleradressen.
  • mqtt_username: brugernavnet, der skal bruges til MQTT -mægleren (tomt uden brug af konto).
  • mqtt_password: adgangskoden, der skal bruges fra MQTT -brugernavnet.
  • mqtt_port: MQTT -mæglerporten.
  • mqtt_device_name: det navn, der skal bruges til MQTT -emner og Crouton -identifikation.
  • mqtt_device_description: beskrivelsen af enheden vist i Crouton.
  • viz_color: farven til at identificere enhedskortene i Crouton (i den forked version)

Trin 4: Tilpasning af ejendomme

Tilpasning af ejendomme
Tilpasning af ejendomme
Tilpasning af ejendomme
Tilpasning af ejendomme
Tilpasning af ejendomme
Tilpasning af ejendomme

Hver af slaverne har et nvc struct -array defineret i filen definitions.h:

// --------------------------------------- UDGIVET EJENDOMMER

nvc props [2] = {{"Fugtighed", "", sand}, {"Temperatur", "", falsk}}; // --------------------------------------- SLUT PUBLICEREDE EGENSKABER

Hver af posterne har et indeks, hvor den første er 0 (nul).

Tilpasningen af ejendomsnavnet foretages via filen user_props.json.

Gå til roden af webserveren (vist i konsolens output som

REDIGERING

I ACE EDITOR skal du vælge config/user_props.json (eller uploade en).

Strukturen er:

Den første nøgle er Slaveens adresse i filen definitions.h som identificeret af:

#define ADDRESS_SLAVE XX

  • Det næste nøgleniveau er ejendomsindekset.
  • Værdien af denne nøgle er det egenskabsnavn, der skal bruges i Crouton i stedet for det egenskabsnavn, der er defineret i definitionsfilen.

Trin 5: Tilpasning af metadata

Tilpasning af metadata
Tilpasning af metadata
Tilpasning af metadata
Tilpasning af metadata
Tilpasning af metadata
Tilpasning af metadata
Tilpasning af metadata
Tilpasning af metadata

På grund af mængden af mulige tilpasninger har hver slave sin egen metadata -ændringsfil. Filerne skal have formatet user_metas_.json.

Slaveadressen findes i filen definitions.h i ATTINY85 -skitserne:

#define ADDRESS_SLAVE XX

Metadataene er defineret i den samme fil således:

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 linje er navnet på metadataelementet.

Den anden linje er værdien. Det har generelt et ejendomsindeks -suffiks.

Den tredje linje er fortsættelsesflaget. 1 - fortsæt, 0 - slutningen af metadata (VCC_MV).

Gennemse til webserverens rod (vist i konsolens output som

REDIGERING

Vælg ACE EDITOR config/user_metas_SLAVE_ADDRESS.json (eller upload en). Strukturen er:

  • En række navne/værdipar.
  • Navn er navnet på det metadataelement, der skal ændres.
  • Værdi er ændringen. Indekssuffikset kontrolleres for udskiftningen.

Trin 6: Materialer og værktøjer

Materialer og værktøjer
Materialer og værktøjer
Materialer og værktøjer
Materialer og værktøjer
Materialer og værktøjer
Materialer og værktøjer

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 kvindelige overskrifter (8P, 8P, 9P, 9P)
  6. Mandskærebord 90º (3P, 3P, 3P, 2P, 1P, 2P)
  7. 1 "Dobbeltsidet protoboard (2)
  8. 2N7000 NFET (1)
  9. 6 pin indhyllet IDC hanhoved (1)
  10. Tilslutningstråd (~ 10)
  11. 0,5 mm fortinnet tråd (~ 4)
  12. 4G x 15 mm selvskærende skruer med knaphoved (2)
  13. 4G x 6 mm selvskærende forsænkede skruer (~ 20)
  14. Lodde og jern (1)

Trin 7: Forberedelse af MCU

Image
Image
Forberedelse af MCU
Forberedelse af MCU

I denne build bruger vi Wemos D1 Mini. Hvis du tidligere har bygget en D1M WIFI BLOCK, kan du bruge det til den modulære hardwarekomponent. Hvis ikke, følg som et minimum det næste afsnit.

SOLGNING AF HOVEDSTIFTENE PÅ MCUEN (ved hjælp af PIN -JIG) Hvis du ikke kan udskrive en PIN -JIG, skal du bare følge instruktionerne og improvisere: Højden (forskydning) på PIN -JIG'en er 6,5 mm.

  1. Udskriv/hent en PIN -JIG fra denne side.
  2. Før hovedstifterne gennem bunden af brættet (TX højre-venstre) og ind i loddejiggen.
  3. Tryk stifterne ned på en hård, flad overflade.
  4. Tryk tavlen fast ned på jiggen.
  5. Lod de 4 hjørnestifter.
  6. Opvarm og placer brættet/benene igen, hvis det er nødvendigt (brættet eller stifterne er ikke justeret eller lodret).
  7. Lodde resten af stifterne.

OPLADNING AF FIRMWAREN

Kodelageret kan findes her (øjebliksbillede).

Et ZIP af biblioteket findes her (øjebliksbillede).

Instruktioner til "Import af et ZIP -bibliotek" her.

Når biblioteket er installeret, kan du åbne eksemplet "mqtt_crouton_esp8266_customization_webserver".

Instruktioner til opsætning af Arduino til Wemos D1 Mini her.

Afhængigheder: ArduinoJson, TimeLib, PubSubClient, NeoTimer (se vedhæftede filer, hvis du bryder ændringer i lagre).

UPLOAD TIL SPIFFS

Når koden er indlæst i Arduino IDE, skal du åbne device.json i data/config -mappen:

  1. Rediger værdien af wifi_ssid med dit WiFi SSID.
  2. Rediger værdien af wifi_key med din WiFi -nøgle.
  3. Rediger værdien af mqtt_device_name med din foretrukne enhedsidentifikation (ingen tilslutning nødvendig).
  4. Rediger værdien af mqtt_device_description med din foretrukne enhedsbeskrivelse (i Crouton).
  5. Gem device.json.
  6. Upload datafilerne til SPIFFS.

Trin 8: Forberedelse af MCU -boliger

Image
Image
Forberedelse af MCU -boliger
Forberedelse af MCU -boliger
Forberedelse af MCU -boliger
Forberedelse af MCU -boliger

MCU-huset viser, at headere til D1 Mini kan tilsluttes og headere til datterkort, der kommunikerer med Socket (sensorer og aktører) kredsløb.

HOUSING HEADERS Dette er baseret på et D1 Mini Protoboard, og bryder disse pins ud:

  1. Pins til D1M WIFI BLOCK/D1 Mini at oprette forbindelse til.
  2. Direkte breakouts af de 2 rækker kontakter fra D1M WIFI BLOCK/D1 Mini. Disse er kun tilgængelige for nemheds skyld under prototyper. Det forventes, at datter-boards vil blokere al adgang til disse headers.
  3. 4 Udbrud af de specifikke stifter, der bruges af datterbrædderne.

Sådan tilføjes D1M -kontakterne til HOUSING HEADER:

  1. Se videoen SOLDER BRUGER SOCKET JIG.
  2. Før headerstifterne gennem bunden af brættet (TX øverst til venstre på oversiden).
  3. Før jiggen over plasthovedet og niveau begge overflader.
  4. Vend jiggen og samlingen om, og tryk hovedet fast på en hård, flad overflade.
  5. Tryk tavlen fast ned på jiggen.
  6. Lod de 4 hjørnestifter ved hjælp af minimal lodning (kun midlertidig justering af stifter).
  7. Opvarm og placer brættet/benene igen, hvis det er nødvendigt (brættet eller stifterne er ikke justeret eller lodret).
  8. Lodde resten af stifterne.
  9. Fjern jiggen.
  10. Skær stifter af over lodder.

Sådan tilføjes datterbræt-breakouts:

  1. Skær 4 af 9P kvindelige overskrifter.
  2. På toppen skal du indsætte 9P Headers som vist, og lodde af på bunden.

Sådan tilføjes de direkte breakouts:

  1. Klip 2 af 8P kvindelige overskrifter.
  2. På toppen skal du indsætte 8P Headers som vist, og lodde af på bunden.

For at forbinde overskrifterne i bunden med TX -stiften vendt opad:

  1. Spor og lodde fra RST -stiften på tværs af 4 ben.
  2. Spor og lodde fra A0 -stiften på tværs af 4 ben.
  3. Spor og lod fra D1 -stiften på tværs af 4 ben.
  4. Spore og lodde fra D2 -stiften på tværs af 4 ben.
  5. Spor og loddet fra D0 -stiften ned ad 2 rækker og på tværs af 4 ben.
  6. Spore og lodde fra D7 -stiften på tværs af 4 ben.
  7. Spor og lodde fra GND -stiften på tværs af 4 ben.
  8. Spor og lodde fra 5V -stiften på tværs af 4 ben.
  9. Spor og lod fra 3V3 -stiften ned 45 ° på tværs af 4 ben.

SAMLING AF FIXTUREN

HOUSING HEADERS er fastgjort til MCU HOUSING, og dette er fastgjort til BASEPLADEN.

  1. Med den lange side af HOUSING HEADERS peget på hullet, skal du indsætte D1M CONTACTS i åbningerne i MCU HOUSING og skubbe nedad.
  2. Indsæt MCU'en på MCU -KONTAKTERNE under påsætning for at sikre den korrekte justering.
  3. Placer HEADER -RAMMEN over toppen af monteringsarmaturerne og fastgør med 2 af 4G x 16 mm skruer.
  4. Placer de samlede armaturer med hullet peget mod kortsiden og fastgør med skruerne 4G x 6 mm.

Trin 9: Opbygning af slavernes lavkontakt/RESET datterbræt

Bygning af slaverne Lavsidekontakt/RESET Datterbræt
Bygning af slaverne Lavsidekontakt/RESET Datterbræt
Bygning af slaverne Lavsidekontakt/RESET Datterbræt
Bygning af slaverne Lavsidekontakt/RESET Datterbræt
Bygning af slaverne Lavsidekontakt/RESET Datterbræt
Bygning af slaverne Lavsidekontakt/RESET Datterbræt

Dette er en forbedring af REST datter-board udviklet sidste build. Dette tilføjer en switch til lav side, der forbinder slaverne med GROUND. Hvis masteren nulstilles, vil slaverne også, og initialiseringen, der formerer metadataene, starter igen.

MONTAGE

  1. På indersiden indsættes 9P 90 ° hanhovederne (1), 1P 90 ° hanhovedet (2), 2N7000 (3) og loddes af på ydersiden.
  2. På indersiden skal du spore en gul ledning fra GUL1 til GUL2 og lodde.
  3. På indersiden skal du spore en bar ledning fra SILVER1 til SILVER2 og lodde.
  4. På indersiden skal du spore en bar ledning fra SILVER3 til SILVER4 og lodde.

Trin 10: Samling af hovedkomponenterne

Samling af hovedkomponenterne
Samling af hovedkomponenterne
Samling af hovedkomponenterne
Samling af hovedkomponenterne
Samling af hovedkomponenterne
Samling af hovedkomponenterne
Samling af hovedkomponenterne
Samling af hovedkomponenterne
  1. Sørg for, at SHELL er bygget og kredsløbet testet (kabel og stik).
  2. Skift 2P Male-header på 3V3 I2C DAUGHTER-BOARD ud med en 2P 90º 1P Male Header.
  3. Indsæt 3V3 I2C DAUGHTER-BOARD med 3V3 pin på den flossede ende af overskrifterne (se billede).
  4. Sæt LOW-SIDE SWITCH/RESET Daughter-Board, med ledningen indvendigt (se billede).
  5. Spor en Dupont-ledning mellem 90º 1P Male Header på RESET DAUGHTER-BOARD til 3V3 I2C DAUGHTER-BOARD.
  6. Indsæt IDC-stikket fra SHELL CABLE i IDC Header på 3V3 I2C DAUGHTER-BOARD.
  7. Sæt forsigtigt DØGTERBORDET/HUSET mellem kablerne i SKALET, og juster bundhullerne.
  8. Fastgør BASEMONTERINGEN til SKALET med skruerne 4G x 6 mm.
  9. Vedhæft eventuelle ASSIMILATE SENSORER, du har lavet.

Trin 11: Næste trin

Image
Image
Næste skridt
Næste skridt
Næste skridt
Næste skridt
  1. Ret din browser til
  2. Sørg for, at mægleren er test.mosquitto.org.
  3. Klik på Opret forbindelse.
  4. Indtast inputenheden Enhedsnavn som mqtt_device_name i filen /config/device.json.
  5. Klik på Tilføj enhed.
  6. Klik på Tilslut automatisk.
  7. Tænd for din ICOS10 (5V MicroUSB).
  8. Bekræft via Crouton -instrumentbrættet.

Anbefalede: