Innehållsförteckning:

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

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

Video: IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CUSTOMIZATION WEBSEREVER: 11 Steg
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 bäddar in metadata som används för att definiera visualiseringar i Crouton. Denna build lägger till en webbserver till ESP8266 Master, serverar några konfigurationsfiler som kan ändras av användaren och använder sedan dessa filer för att omdefiniera visualiseringarna. Så namnen på instrumentpanelskorten och de flesta konfigurerbara egenskaperna kan ändras. Detta var nödvändigt t.ex. DHT11 publicerar egenskaper för temperatur och luftfuktighet: om en webbplats har flera noder med separata DHT11 -sensorer kan alla inte kallas temperatur (garagetemp., varvtemp …). Metadatalängdsbegränsningen som ställts in av I2C -bussen (16 tecken) existerar inte och rikare värden kan tillämpas (upp till 64 tecken).

Valfri grundläggande autentisering kan konfigureras för redigeringswebbsidan, samt en uteslutningslista från autentisering för andra resurser.

En lågsidesbrytare som driver ner slavarna vid behov har också utvecklats på en befintlig dotterbräda.

Som en teknisk notering var minnesavtrycket 70% på grund av ett globalt metadataobjekt innan du startade den här byggnaden. Det senaste AssimilateBus -biblioteket har haft brytande ändringar som kopplar den globala variabeln till mindre JSON -filer sparade i SPIFFS. Detta har fått fotavtrycket tillbaka till ~ 50%, vilket är säkrare för all JSON -analys/byggnad. AssimilateBusSlave -biblioteket förblir detsamma (ASSIM_VERSION 2) under dessa ändringar.

FUNKTIONER OCH VISION

För närvarande är slavarna (sensorer och aktörer) fristående och förlitar sig på konventionella I2C -meddelanden för att läsa egenskaper eller agera på kommandon. Befälhavaren hämtar metadata och egenskaper från slavar och skickar dem till en MQTT -mäklare. Den startar också en webbserver och serverar JSON -filer som kan redigeras för att konfigurera mastern och anpassa metadata/egenskaper som så småningom förbrukas av Crouton. De enskilda sensorerna/skådespelarna läses/kommenderas via Crouton utan att befälhavaren har någon förkunskap om vad slavarna gör.

Ett av målen med ASSIMILATE IOT -NÄTVERKET är att anpassa Crouton så att mashup -redaktörer som serveras från IOT NODE -webbserverna (som den här versionen) läggs till som webbkomponenter som ger fullständig kontroll över vad saken gör, dvs mastern inte är programmerad, slavarna har grundläggande funktionsuppsättningar men Crouton -instrumentpanelen bäddar in alla affärsregler som behövs för att köra saken!

Crouton -gaffeln ses som ett alternativ för decentraliserad kontroll/konfiguration av saker. I huvudsak kan varje MQTT -klient/GUI -kombination administrera dina saker, eftersom varje funktion (sensorer och aktörer) exponeras som MQTT -slutpunkter.

Steg 1: Crouton

Crouton
Crouton
Crouton
Crouton

Crouton. https://crouton.mybluemix.net/ Crouton är en instrumentpanel som låter dig visualisera och styra dina IOT -enheter med minimal installation. I huvudsak är det den enklaste instrumentpanelen att installera för alla IOT -hårdvaruentusiaster som bara använder MQTT och JSON.

ASSIMILATE SLAVES (sensorer och aktörer) har inbäddade metadata och egenskaper som mastern använder för att bygga upp deviceInfo json -paketet som Crouton använder för att bygga instrumentpanelen. Förmedlaren mellan ASSIMILATE NODES och Crouton är en MQTT -mäklare som är webbkontaktvänlig: Mosquito används för demoen.

Eftersom ASSIMILATE MASTER (denna version) begär egenskaper formaterar den svarsvärdena i det format som krävs för Crouton -uppdateringar.

Steg 2: Webbservern / redigeraren

Webbservern / redigeraren
Webbservern / redigeraren
Webbservern / redigeraren
Webbservern / redigeraren

När Master stövlar (detta bygge) startas en inbäddad webbserver. IP -adressen matas ut till seriekonsolen; så småningom kommer detta att publiceras på Crouton -instrumentpanelen.

När du bläddrar till den angivna webbadressen laddas ACE EDITOR:

Ace är en inbyggbar kodredigerare skriven i JavaScript. Den matchar funktionerna och prestandan hos inhemska redaktörer som Sublime, Vim och TextMate.

Ace är populärt bland inbäddade webbserver och ger ett bra gränssnitt för att redigera och spara JSON -filer.

Klicka på ett filnamn till vänster för att läsa filen från SPIFFS på ESP8266 och ladda innehållet för redigering till höger. Filen kan sparas från det övre verktygsfältet.

Så här laddar du upp en fil:

  1. Välj Arkiv från ditt lokala filsystem.
  2. Infoga en mappsökväg (om det behövs) i textrutan.
  3. Klicka på Ladda upp.
  4. Uppdatera sidan.

Steg 3: Anpassning av enheter

Enhetsanpassning
Enhetsanpassning

Enhetens konfiguration (ESP8266) utförs via filen device.json.

Några av dessa poster (wifi_ssid, wifi_key) måste ändras innan du laddar upp data till SPIFFS (ESP8266 Sketch Data Upload).

Bläddra till roten till webservern (visas i konsolutmatningen som

REDIGERING

Välj config/device.json i ACE EDITOR.

Posterna är:

  • www_auth_username: användarnamn för behörighet för webbserverfiler (tomt för att inte auktorisera).
  • www_auth_password: auktoriseringslösenord för webbserverfiler (om användarnamn har definierats).
  • www_auth_exclude_files: semi-kolon avgränsad lista över filvägar som ska uteslutas från behörighetskontroller (om användarnamn har definierats).
  • sensor_interval: millisekunderna mellan publicering av data till MQTT -mäklaren.
  • ntp_server_name: namnet på den tidsserver som ska användas.
  • time_zone: förskjutningen i timmar för din lokala tid.
  • wifi_ssid: SSID för din lokala åtkomstpunkt.
  • wifi_key: nyckeln som ska användas för SSID.
  • mqtt_broker: MQTT -mäklaradressen.
  • mqtt_username: användarnamnet som ska användas för MQTT -mäklaren (tomt för inget konto behövs).
  • mqtt_password: lösenordet som ska användas från MQTT -användarnamnet.
  • mqtt_port: mäklarporten MQTT.
  • mqtt_device_name: namnet som ska användas för MQTT -ämnen och Crouton -identifiering.
  • mqtt_device_description: de3scription av enheten som visas i Crouton.
  • viz_color: färgen för att identifiera enhetskorten i Crouton (i den gafflade versionen)

Steg 4: Fastighetsanpassning

Fastighetsanpassning
Fastighetsanpassning
Fastighetsanpassning
Fastighetsanpassning
Fastighetsanpassning
Fastighetsanpassning

Var och en av slavarna har en nvc struct -array definierad i filen definitions.h:

// --------------------------------------- PUBLICERADE EGENSKAPER

nvc rekvisita [2] = {{"Luftfuktighet", "", sant}, {"Temperatur", "", falskt}}; // --------------------------------------- SLUT PUBLICERADE EGENSKAPER

Var och en av posterna har ett index där den första är 0 (noll).

Egenskapens namnanpassning åtgärdas genom filen user_props.json.

Bläddra till roten till webservern (visas i konsolutmatningen som

REDIGERING

I ACE EDITOR väljer du config/user_props.json (eller laddar upp en).

Strukturen är:

Den första nyckeln är slavens adress i filen definitions.h som identifieras av:

#define ADDRESS_SLAVE XX

  • Nästa nivå av nycklar är Index of the Property.
  • Värdet på den nyckeln är egenskapens namn som ska användas i Crouton istället för egendomsnamnet som definieras i definitionsfilen.

Steg 5: Anpassning av metadata

Metadata Anpassning
Metadata Anpassning
Metadata anpassning
Metadata anpassning
Metadata anpassning
Metadata anpassning
Metadata Anpassning
Metadata Anpassning

På grund av mängden möjliga anpassningar har varje slav sin egen metadatamodifieringsfil. Filerna ska vara i formatet user_metas_.json.

Slavadressen finns i filen definitions.h i ATTINY85 -skisserna:

#define ADDRESS_SLAVE XX

Metadata definieras i samma fil så här:

const static char viz1 PROGMEM = "VIZ_CARD_TYPE";

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

Den första raden är namnet på metadataobjektet.

Den andra raden är värdet. Det har i allmänhet ett fastighetsindex -suffix.

Den tredje raden är fortsättningsflaggan. 1 - fortsätt, 0 - slutet av metadata (VCC_MV).

Bläddra till roten till webservern (visas i konsolutmatningen som

REDIGERING

Välj ACE EDITOR config/user_metas_SLAVE_ADDRESS.json (eller ladda upp en). Strukturen är:

  • En uppsättning namn/värdepar.
  • Namn är namnet på metadataobjektet som ska ändras.
  • Värdet är förändringen. Index -suffixet kontrolleras för ersättningen.

Steg 6: Material och verktyg

Material och verktyg
Material och verktyg
Material och verktyg
Material och verktyg
Material och verktyg
Material och verktyg

ICOS10 (IDC) Shell Bill of Materials

  1. D1M BLOCK Pin Jig (1)
  2. D1M BLOCK bas och hus (1)
  3. Wemos D1 Mini (1)
  4. Wemos D1 Mini Protoboard Shield (1)
  5. 40P kvinnliga rubriker (8P, 8P, 9P, 9P)
  6. Manlig huvud 90º (3P, 3P, 3P, 2P, 1P, 2P)
  7. 1 "dubbelsidig protoboard (2)
  8. 2N7000 NFET (1)
  9. 6 -stifts höljt IDC -manhuvud (1)
  10. Anslutningstråd (~ 10)
  11. 0,5 mm förtennad tråd (~ 4)
  12. 4G x 15 mm självhäftande skruvar med knapphuvud (2)
  13. 4G x 6 mm självgängande försänkta skruvar (~ 20)
  14. Löd och järn (1)

Steg 7: MCU -förberedelse

Image
Image
MCU -förberedelse
MCU -förberedelse

I denna version använder vi Wemos D1 Mini. Om du tidigare har byggt ett D1M WIFI -BLOCK kan du använda det för den modulära maskinvarukomponenten. Om inte, följ som ett minimum följande avsnitt.

SÅLDER HUVUDPINNARNA PÅ MCUEN (med PIN -JIGGEN) Om du inte kan skriva ut en PIN -JIG är det bara att följa instruktionerna och improvisera: höjden (förskjutningen) på PIN -JIG: n är 6,5 mm.

  1. Skriv ut/skaffa en PIN -JIG från denna sida.
  2. Mata huvudstiften genom brädans botten (TX höger-vänster) och in i lödjiggen.
  3. Tryck ner stiften på en hård plan yta.
  4. Tryck ner brädan ordentligt på jiggen.
  5. Löd de 4 hörnstiften.
  6. Värm upp och placera ombord/stift om det behövs (brädan eller stiften är inte inriktade eller lod).
  7. Löd resten av tapparna.

UPPLADNING AV FIRMWARE

Kodförvaret finns här (ögonblicksbild).

En ZIP -fil av biblioteket finns här (ögonblicksbild).

Instruktioner för "Importera ett ZIP -bibliotek" här.

När biblioteket är installerat kan du öppna exemplet "mqtt_crouton_esp8266_customization_webserver".

Instruktioner för installation av Arduino för Wemos D1 Mini här.

Beroenden: ArduinoJson, TimeLib, PubSubClient, NeoTimer (se bilagor om du bryter ändringar i lagringsplatser).

LADDA UPP TILL SPIFFS

När koden har laddats in i Arduino IDE, öppna device.json i data/config -mappen:

  1. Ändra värdet av wifi_ssid med ditt WiFi SSID.
  2. Ändra värdet av wifi_key med din WiFi -nyckel.
  3. Ändra värdet på mqtt_device_name med din föredragna enhetsidentifiering (ingen koppling behövs).
  4. Ändra värdet på mqtt_device_description med din föredragna enhetsbeskrivning (i Crouton).
  5. Spara device.json.
  6. Ladda upp datafilerna till SPIFFS.

Steg 8: Förberedelse av MCU -bostäder

Image
Image
Förberedelse för MCU -bostäder
Förberedelse för MCU -bostäder
Förberedelse för MCU -bostäder
Förberedelse för MCU -bostäder

MCU-höljet exponerar rubriker för D1 Mini att ansluta till och rubriker för dotterkort som kommunicerar med Socket (sensorer och aktörer) krets.

HOUSING HEADERS Detta är baserat på ett D1 Mini Protoboard och bryter ut dessa stift:

  1. Pins för D1M WIFI BLOCK/D1 Mini att ansluta till.
  2. Direkt utbrott av de två raderna av kontakter från D1M WIFI BLOCK/D1 Mini. Dessa är endast tillgängliga för bekvämlighet medan prototyper. Det förväntas att dotterbrädorna blockerar all åtkomst till dessa rubriker.
  3. 4 Utbrott av de specifika stiften som används av dotterbrädorna.

Så här lägger du till D1M -kontakterna i HOUSING HEADER:

  1. Titta på filmen SOLDER USING THE SOCKET JIG.
  2. Mata huvudstiften genom brädans botten (TX överst till vänster på ovansidan).
  3. Mata jiggen över plasthuvudet och jämna ut båda ytorna.
  4. Vänd jiggen och enheten och tryck fast sidhuvudet på en hård, plan yta.
  5. Tryck ner brädan ordentligt på jiggen.
  6. Löd de fyra hörnstiften med minimal lödning (bara tillfällig inriktning av stiften).
  7. Värm upp och placera ombord/stift om det behövs (brädan eller stiften är inte inriktade eller lod).
  8. Löd resten av tapparna.
  9. Ta bort jiggen.
  10. Klipp av stiften ovanför lödare.

Så här lägger du till Daughter-board Breakouts:

  1. Klipp 4 av 9P kvinnliga rubriker.
  2. På toppen sätter du in 9P -huvuden enligt bilden och löds av på undersidan.

Så här lägger du till Direct Breakouts:

  1. Klipp 2 av 8P kvinnliga rubriker.
  2. På toppen sätter du in 8P -huvuden enligt bilden och löds av på undersidan.

För att ansluta rubrikerna på undersidan med TX -stiftet riktat uppåt:

  1. Spåra och löd från RST -stiftet över 4 stift.
  2. Spåra och löd från A0 -stiftet över 4 stift.
  3. Spåra och löd från D1 -stiftet över 4 stift.
  4. Spåra och löd från D2 -stiftet över 4 stift.
  5. Spåra och löd från D0 -stiftet ner 2 rader och över 4 stift.
  6. Spåra och löd från D7 -stiftet över 4 stift.
  7. Spåra och löd från GND -stiftet över 4 stift.
  8. Spåra och löd från 5V -stiftet över 4 stift.
  9. Spåra och löd från 3V3 -stiftet ner 45 ° över 4 stift.

MONTERING AV FIXTUREN

HUSHUVUDEN är fästa på MCU -HUSET och detta är fäst på BASE PLATE.

  1. Med långsidan av HUSHUVUDEN pekade på hålet, sätt in D1M -KONTAKTERNA i öppningarna i MCU -HUSET och tryck ner spolningen.
  2. Sätt i MCU: n på MCU -KONTAKTEN under påfästningen för att säkerställa korrekt inriktning.
  3. Placera HEADER RAM på toppen av monteringsarmaturerna och fäst med 2 av 4G x 16 mm skruvar.
  4. Placera de monterade armaturerna med hålet riktat mot kortsidan och fäst med skruvarna 4G x 6 mm.

Steg 9: Bygga Slaves Low-side Switch/RESET Daughter-board

Bygga Slavarna Lågsidesbrytare/ÅTERSTÄLL Dotterbräda
Bygga Slavarna Lågsidesbrytare/ÅTERSTÄLL Dotterbräda
Bygga Slavarna Lågsidesbrytare/ÅTERSTÄLL Dotterbräda
Bygga Slavarna Lågsidesbrytare/ÅTERSTÄLL Dotterbräda
Bygga Slavarna Lågsidesbrytare/ÅTERSTÄLL Dotterbräda
Bygga Slavarna Lågsidesbrytare/ÅTERSTÄLL Dotterbräda

Detta är en förbättring av den REST-dotterbräda som utvecklades senast. Detta lägger till en switch på lågsidan som ansluter slavarna till GROUND. Om mastern återställs kommer slavarna också, och initialiseringen som sprider metadata startar om.

HOPSÄTTNING

  1. På insidan sätter du in 9P 90 ° hanrubriker (1), 1P 90 ° hanrubrik (2), 2N7000 (3) och löds av på utsidan.
  2. På insidan, spåra en gul tråd från GUL1 till GUL 2 och löd.
  3. På insidan, spåra en bar tråd från SILVER1 till SILVER2 och löd.
  4. På insidan, spåra en bar tråd från SILVER3 till SILVER4 och löd.

Steg 10: Montering av huvudkomponenterna

Montering av huvudkomponenterna
Montering av huvudkomponenterna
Montering av huvudkomponenterna
Montering av huvudkomponenterna
Montering av huvudkomponenterna
Montering av huvudkomponenterna
Montering av huvudkomponenterna
Montering av huvudkomponenterna
  1. Se till att SHELL har byggts och kretsen testats (kabel och uttag).
  2. Byt ut 2P-manhuvudet på 3V3 I2C-DOTTERBORDET med ett 2P 90º 1P-manligt huvud.
  3. Sätt i 3V3 I2C-DOTTERKORTET med 3V3-stiftet på den trasiga änden av rubrikerna (se bild).
  4. Sätt i den LÅGSIDIGA KNAPPEN/ÅTERSTÄLL DOTTERBORDET, med tråden inuti (se bild).
  5. Spåra en Dupont-ledning mellan 90º 1P Man Header på RESET DAUGHTER-BOARD till 3V3 I2C DAUGHTER-BOARD.
  6. Sätt i IDC-uttaget från SHELL CABLE i IDC Header på 3V3 I2C DAUGHTER-BOARD.
  7. För försiktigt in DÖTTERKORTET/HUSET mellan kablarna i skalet och rikta in bottenhålen.
  8. Fäst BASMONTERINGEN på SKALET med skruvarna 4G x 6 mm.
  9. Fäst alla ASSIMILATE SENSORS du har gjort.

Steg 11: Nästa steg

Image
Image
Nästa steg
Nästa steg
Nästa steg
Nästa steg
  1. Rikta din webbläsare till
  2. Se till att mäklaren är test.mosquitto.org.
  3. Klicka på Anslut.
  4. Ange enhetsnamnsinmatningen som mqtt_device_name i filen /config/device.json.
  5. Klicka på Lägg till enhet.
  6. Klicka på Auto-connect.
  7. Slå på din ICOS10 (5V MicroUSB).
  8. Verifiera via Crouton -instrumentpanelen.

Rekommenderad: