Inhoudsopgave:
- Stap 1: Crouton
- Stap 2: De webserver / editor
- Stap 3: Apparaataanpassing
- Stap 4: Aanpassing van eigendom
- Stap 5: Metadata aanpassen
- Stap 6: materialen en gereedschappen
- Stap 7: MCU-voorbereiding
- Stap 8: MCU Behuizing Voorbereiding
- Stap 9: De slaven bouwen Low-side Switch/RESET Dochterbord
- Stap 10: Montage van de belangrijkste componenten
- Stap 11: Volgende stappen
Video: IOT123 - ASSIMILEREN SENSOR HUB: ICOS10 AANPASSING WEBSEREVER - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
De ASSIMILATE SENSOR/ACTOR Slaves bevatten metadata die worden gebruikt voor het definiëren van visualisaties in Crouton. Deze build voegt een webserver toe aan de ESP8266 Master, serveert enkele configuratiebestanden die door de gebruiker kunnen worden gewijzigd en gebruikt die bestanden vervolgens om de visualisaties opnieuw te definiëren. Dus de namen van de dashboardkaarten en de meeste configureerbare eigenschappen kunnen worden gewijzigd. Dit was nodig b.v. de DHT11 publiceert temperatuur- en vochtigheidseigenschappen: als een site meerdere knooppunten heeft met afzonderlijke DHT11-sensoren, kunnen ze niet allemaal Temperatuur worden genoemd (Garage Temp., Yard Temp…). De beperking van de lengte van de metadata die is ingesteld door de I2C-bus (16 tekens) bestaat niet en rijkere waarden kunnen worden toegepast (tot 64 tekens).
Optionele basisverificatie kan worden geconfigureerd voor de bewerkingswebpagina, evenals een uitsluitingslijst van verificatie voor andere bronnen.
Op een bestaand dochterbord is ook een low-side schakelaar ontwikkeld die de slaves uitschakelt wanneer dat nodig is.
Als een technische opmerking, voordat met deze build werd begonnen, was de geheugenvoetafdruk 70% vanwege een globale metadata-objectgrafiek. De nieuwste AssimilateBus-bibliotheek heeft baanbrekende wijzigingen ondergaan die de globale variabele ontkoppelen in kleinere JSON-bestanden die zijn opgeslagen in SPIFFS. Dit heeft de footprint teruggebracht tot ~50%, wat veiliger is voor alle JSON-parsing/building. De AssimilateBusSlave-bibliotheek blijft tijdens deze wijzigingen hetzelfde (ASSIM_VERSION 2).
KENMERKEN EN VISIE
Momenteel zijn de slaves (sensoren en actoren) op zichzelf staand en vertrouwen ze op op conventies gebaseerde I2C-berichten om eigenschappen te lezen of op commando's te reageren. De Master haalt de metadata en eigenschappen van slaves op en stuurt deze naar een MQTT-makelaar. Het start ook een webserver en serveert JSON-bestanden die kunnen worden bewerkt om de master te configureren en de metadata/eigenschappen aan te passen die uiteindelijk door Crouton worden gebruikt. De afzonderlijke sensoren/actoren worden via Crouton uitgelezen/aangestuurd zonder dat de master enige voorkennis heeft van wat de slaves doen.
Een van de doelen van het ASSIMILATE IOT NETWORK is om Crouton aan te passen zodat mashup-editors die worden bediend vanaf de IOT NODE-webservers (zoals deze build), worden toegevoegd als webcomponenten die volledige controle geven over wat het ding doet, dwz de master is niet geprogrammeerd, de slaven hebben basisfuncties, maar het Crouton-dashboard bevat alle bedrijfsregels die nodig zijn om het ding te laten werken!
De Crouton-vork wordt gezien als een optie voor decentrale besturing/configuratie van dingen. In wezen kan elke MQTT-client/GUI-combinatie uw zaken beheren, aangezien elke functie (sensoren en actoren) wordt blootgesteld als MQTT-eindpunten.
Stap 1: Crouton
Crouton. https://crouton.mybluemix.net/ Crouton is een dashboard waarmee u uw IOT-apparaten kunt visualiseren en bedienen met minimale instellingen. In wezen is het het gemakkelijkste dashboard om in te stellen voor elke IOT-hardwareliefhebber die alleen MQTT en JSON gebruikt.
De ASSIMILATE SLAVES (sensoren en acteurs) hebben ingesloten metadata en eigenschappen die de master gebruikt om het deviceInfo json-pakket op te bouwen dat Crouton gebruikt om het dashboard te bouwen. De tussenpersoon tussen ASSIMILATE NODES en Crouton is een MQTT-makelaar die websocketsvriendelijk is: Mosquito wordt gebruikt voor de demo.
Aangezien de ASSIMILATE MASTER (deze build) eigenschappen aanvraagt, worden de responswaarden in de vereiste indeling voor Crouton-updates opgemaakt.
Stap 2: De webserver / editor
Als de Master opstart (deze build) wordt een embedded webserver gestart. Het IP-adres wordt uitgevoerd naar de seriële console; uiteindelijk zal dit worden gepubliceerd op het Crouton-dashboard.
Wanneer u naar de vermelde URL bladert, wordt de ACE EDITOR geladen:
Ace is een insluitbare code-editor geschreven in JavaScript. Het komt overeen met de functies en prestaties van native editors zoals Sublime, Vim en TextMate.
Ace is populair bij embedded webservers en biedt een goede interface voor het bewerken en opslaan van de JSON-bestanden.
Als u op een bestandsnaam aan de linkerkant klikt, wordt het bestand van SPIFFS op de ESP8266 gelezen en wordt de inhoud aan de rechterkant geladen voor bewerking. Het bestand kan worden opgeslagen vanaf de bovenste werkbalk.
Een bestand uploaden:
- Kies Bestand van uw lokale bestandssysteem.
- Voeg een mappad in (indien nodig) in het tekstvak.
- Klik op Uploaden.
- Ververs de pagina.
Stap 3: Apparaataanpassing
De configuratie van het apparaat (de ESP8266) wordt uitgevoerd via het bestand device.json.
Sommige van deze gegevens (wifi_ssid, wifi_key) moeten worden gewijzigd voordat u de gegevens uploadt naar SPIFFS (ESP8266 Sketch Data Upload).
Blader naar de root van de webserver (weergegeven in de console-uitvoer zoals
BEWERKEN
Kies in de ACE EDITOR config/device.json.
De inzendingen zijn:
- www_auth_username: autorisatie gebruikersnaam voor webserverbestanden (leeg voor geen autorisatie).
- www_auth_password: autorisatiewachtwoord voor webserverbestanden (indien gebruikersnaam gedefinieerd).
- www_auth_exclude_files: door puntkomma's gescheiden lijst van bestandspaden die moeten worden uitgesloten van autorisatiecontroles (indien gebruikersnaam gedefinieerd).
- sensor_interval: de milliseconden tussen publicaties van gegevens naar de MQTT-makelaar.
- ntp_server_name: de naam van de te gebruiken tijdserver.
- time_zone: de afwijking in uren voor uw lokale tijd.
- wifi_ssid: de SSID van uw lokale toegangspunt.
- wifi_key: de sleutel die moet worden gebruikt voor de SSID.
- mqtt_broker: het adres van de MQTT-makelaar.
- mqtt_username: de gebruikersnaam die moet worden gebruikt voor de MQTT-makelaar (leeg omdat er geen account nodig is).
- mqtt_password: het te gebruiken wachtwoord van de MQTT-gebruikersnaam.
- mqtt_port: de MQTT-brokerpoort.
- mqtt_device_name: de naam die moet worden gebruikt voor MQTT-onderwerpen en Crouton-identificatie.
- mqtt_device_description: de beschrijving van het apparaat dat wordt weergegeven in Crouton.
- viz_color: de kleur om de apparaatkaarten in Crouton te identificeren (in de gevorkte versie)
Stap 4: Aanpassing van eigendom
Elk van de Slaves heeft een nvc struct-array gedefinieerd in het bestand definitions.h:
//--------------------------------------- GEPUBLICEERDE EIGENSCHAPPEN
nvc props[2] ={ {"Vochtigheid", "", true}, {"Temperatuur", "", false} }; //--------------------------------------- EINDE GEPUBLICEERDE EIGENSCHAPPEN
Elk van de items heeft een index waarvan de eerste 0 (nul) is.
De aanpassing van de eigenschapsnaam wordt uitgevoerd via het bestand user_props.json.
Blader naar de root van de webserver (weergegeven in de console-uitvoer zoals
BEWERKEN
Kies in de ACE EDITOR config/user_props.json (of upload er een).
De structuur is:
De eerste sleutel is het adres van de slave in het bestand definitions.h zoals geïdentificeerd door:
#define ADDRESS_SLAVE XX
- Het volgende sleutelniveau is de index van de eigenschap.
- De waarde van die sleutel is de eigenschapsnaam die in Crouton moet worden gebruikt in plaats van de eigenschapsnaam die is gedefinieerd in het definitiebestand.
Stap 5: Metadata aanpassen
Vanwege de hoeveelheid mogelijke aanpassingen heeft elke slave zijn eigen metadata-modificatiebestand. De bestanden moeten de indeling user_metas_.json hebben.
Het slave-adres is te vinden in het bestand definitions.h in de ATTINY85-schetsen:
#define ADDRESS_SLAVE XX
De metadata wordt als volgt in hetzelfde bestand gedefinieerd:
const static char viz1 PROGMEM = "VIZ_CARD_TYPE";
const static char viz2 PROGMEM = "2:chart-donut"; const static char viz3 PROGMEM = "1";
De eerste regel is de naam van het metadata-item.
De tweede regel is de waarde. Het heeft over het algemeen een achtervoegsel voor de eigenschapsindex.
De derde regel is de vervolgvlag. 1 - doorgaan, 0 - einde van metadata (VCC_MV).
Blader naar de root van de webserver (weergegeven in de console-uitvoer zoals
BEWERKEN
Kies in de ACE EDITOR config/user_metas_SLAVE_ADDRESS.json (of upload er een). De structuur is:
- Een array van naam/waarde-paren.
- Naam is de naam van het metadata-item dat moet worden gewijzigd.
- Waarde is de verandering. Het indexachtervoegsel wordt gecontroleerd voor de vervanging.
Stap 6: materialen en gereedschappen
ICOS10 (IDC) Shell stuklijst
- D1M BLOCK-penmal (1)
- D1M BLOCK basis en behuizing (1)
- Wemos D1 Mini (1)
- Wemos D1 Mini Protoboard-schild (1)
- 40P vrouwelijke headers (8P, 8P, 9P, 9P)
- Mannelijke kop 90º (3P, 3P, 3P, 2P, 1P, 2P)
- 1" Dubbelzijdig protoboard (2)
- 2N7000 NFET (1)
- 6-pins gehulde IDC mannelijke kop (1)
- Aansluitdraad (~10)
- 0,5 mm vertinde draad (~ 4)
- 4G x 15mm Zelftappende schroeven met bolkop (2)
- 4G x 6 mm zelftappende verzonken schroeven (~20)
- Soldeer en ijzer (1)
Stap 7: MCU-voorbereiding
In deze build gebruiken we de Wemos D1 Mini. Als u eerder een D1M WIFI BLOCK heeft gebouwd, kunt u die gebruiken voor de modulaire hardwarecomponent. Als dat niet het geval is, volgt u minimaal het volgende gedeelte.
DE HEADER PINS OP DE MCU SOLDEREN (met behulp van de PIN JIG)Als u een PIN JIG niet kunt afdrukken, volgt u gewoon de instructies en improviseert u: de hoogte (offset) van de PIN JIG is 6,5 mm.
- Print/verkrijg een PIN JIG van deze pagina.
- Voer de header-pinnen door de onderkant van het bord (TX rechts-links) en in de soldeermal.
- Druk de pinnen naar beneden op een harde, vlakke ondergrond.
- Druk het bord stevig op de mal.
- Soldeer de 4 hoekpinnen.
- Verwarm het bord/de pinnen opnieuw en positioneer ze indien nodig (het bord of de pinnen zijn niet uitgelijnd of loodrecht).
- Soldeer de rest van de pinnen.
DE FIRMWARE UPLOADEN
De coderepository is hier te vinden (momentopname).
Een ZIP van de bibliotheek is hier te vinden (momentopname).
Instructies voor "Een ZIP-bibliotheek importeren" hier.
Zodra de bibliotheek is geïnstalleerd, kunt u het voorbeeld "mqtt_crouton_esp8266_customization_webserver" openen.
Instructies voor het instellen van Arduino voor de Wemos D1 Mini hier.
Afhankelijkheden: ArduinoJson, TimeLib, PubSubClient, NeoTimer (zie bijlagen als wijzigingen in repositories worden verbroken).
UPLOADEN NAAR SPIFFS
Nadat de code in de Arduino IDE is geladen, opent u device.json in de map data/config:
- Wijzig de waarde van wifi_ssid met uw WiFi SSID.
- Wijzig de waarde van wifi_key met uw WiFi-sleutel.
- Wijzig de waarde van mqtt_device_name met de apparaatidentificatie van uw voorkeur (verbinden is niet nodig).
- Wijzig de waarde van mqtt_device_description met de apparaatbeschrijving van uw voorkeur (in Crouton).
- Sla device.json op.
- Upload de gegevensbestanden naar SPIFFS.
Stap 8: MCU Behuizing Voorbereiding
De MCU-behuizing toont headers voor de D1 Mini om in te pluggen en headers voor dochterborden die communiceren met het Socket (sensoren en actoren) circuit.
HUISVESTING HEADERS Dit is gebaseerd op een D1 Mini Protoboard, en breekt deze pinnen uit:
- Pinnen voor de D1M WIFI BLOCK/D1 Mini om verbinding mee te maken.
- Directe Breakouts van de 2 rijen contacten van de D1M WIFI BLOCK/D1 Mini. Deze zijn alleen beschikbaar voor het gemak tijdens het maken van prototypes. De verwachting is dat de dochterborden alle toegang tot deze headers zullen blokkeren.
- 4 Breakouts van de specifieke pinnen die door de dochterborden worden gebruikt.
Om de D1M-contacten toe te voegen aan de HOUSING HEADER:
- Bekijk de video SOLDEREN MET DE SOCKET JIG.
- Voer de header-pinnen door de onderkant van het bord (TX linksboven aan de bovenzijde).
- Voer de mal over het plastic maaibord en breng beide oppervlakken waterpas.
- Draai de mal en de montage om en druk de kop stevig op een harde, vlakke ondergrond.
- Druk het bord stevig op de mal.
- Soldeer de 4 hoekpinnen met minimaal soldeer (alleen tijdelijke uitlijning van de pinnen).
- Verwarm het bord/de pinnen opnieuw en positioneer ze indien nodig (het bord of de pinnen zijn niet uitgelijnd of loodrecht).
- Soldeer de rest van de pinnen.
- Verwijder de mal.
- Knip pinnen af boven soldeer.
Om de dochterbord-breakouts toe te voegen:
- Knip 4 9P Female headers af.
- Plaats aan de bovenkant de 9P-headers zoals afgebeeld en soldeer aan de onderkant af.
Om de directe breakouts toe te voegen:
- Knip 2 8P Female headers af.
- Plaats aan de bovenkant de 8P-headers zoals afgebeeld en soldeer aan de onderkant af.
Om de headers aan te sluiten, aan de onderkant met de TX-pin naar boven gericht:
- Traceer en soldeer vanaf de RST-pin over 4 pinnen.
- Traceer en soldeer van de A0-pin over 4 pinnen.
- Traceer en soldeer vanaf de D1-pin over 4 pinnen.
- Traceer en soldeer van de D2-pin over 4 pinnen.
- Traceer en soldeer vanaf de D0-pin 2 rijen en over 4 pinnen.
- Traceer en soldeer van de D7-pin over 4 pinnen.
- Traceer en soldeer vanaf de GND-pin over 4 pinnen.
- Traceer en soldeer van de 5V-pin over 4 pinnen.
- Traceer en soldeer vanaf de 3V3-pin 45° naar beneden over 4 pinnen.
DE ARMATUUR MONTEREN
De HOUSING HEADERS is bevestigd aan de MCU HOUSING en deze is bevestigd aan de BASE PLATE.
- Plaats de D1M CONTACTEN in de openingen in de MCU HOUSING met de lange zijde van de BEHUIZING-KOPPELINGEN naar het gat gericht en druk ze vlak naar beneden.
- Plaats de MCU op de MCU CONTACTEN tijdens het aanbrengen om de juiste uitlijning te garanderen.
- Plaats het HEADER FRAME over de bovenkant van de monteerbare armaturen en bevestig met 2 schroeven van 4G x 16 mm.
- Plaats de gemonteerde armaturen met het gat naar de korte kant gericht en bevestig met de 4G x 6 mm schroeven.
Stap 9: De slaven bouwen Low-side Switch/RESET Dochterbord
Dit is een verbetering van het REST-dochterbord dat de laatste build is ontwikkeld. Dit voegt een low-side schakelaar toe die de slaves verbindt met GROUND. Als de master wordt gereset, zullen de slaves dat ook doen en begint de initialisatie die de metadata verspreidt opnieuw.
SAMENKOMST
- Plaats aan de binnenkant de 9P 90° mannelijke headers (1), 1P 90° mannelijke header (2), de 2N7000 (3), en soldeer aan de buitenkant af.
- Trek aan de binnenkant een gele draad van GEEL1 naar GEEL2 en soldeer.
- Trek aan de binnenkant een blanke draad van SILVER1 naar SILVER2 en soldeer.
- Trek aan de binnenkant een blanke draad van SILVER3 naar SILVER4 en soldeer.
Stap 10: Montage van de belangrijkste componenten
- Zorg ervoor dat de SHELL is gebouwd en het circuit is getest (kabel en stopcontacten).
- Verwissel de 2P mannelijke header op het 3V3 I2C DOCHTER-BOARD met een 2P 90º 1P mannelijke header.
- Plaats het 3V3 I2C DOCHTERBORD, met de 3V3-pin op het rafelige uiteinde van de headers (zie foto).
- Plaats de LOW-SIDE SWITCH/RESET DOCHTER-BOARD, met de draad naar binnen (zie foto).
- Traceer een Dupont-kabel tussen de 90º 1P mannelijke kop op het RESET DOCHTERBORD naar het 3V3 I2C DOCHTERBORD.
- Steek de IDC-aansluiting van de SHELL-KABEL in de IDC-header op het 3V3 I2C-DOCHTERBORD.
- Steek voorzichtig de DOCHTERPLANKEN/HUISING tussen de kabels in de SHELL en lijn de basisgaten uit.
- Bevestig de BASISMONTAGE aan de SHELL met de 4G x 6 mm schroeven.
- Bevestig alle ASSIMILAAT-SENSOREN die u hebt gemaakt.
Stap 11: Volgende stappen
- Ga met uw browser naar
- Zorg ervoor dat de makelaar test.mosquitto.org is.
- Klik op Verbinden.
- Voer de invoer van de apparaatnaam in als mqtt_device_name in het bestand /config/device.json.
- Klik op Apparaat toevoegen.
- Klik op Automatisch verbinden.
- Zet uw ICOS10 (5V MicroUSB) aan.
- Verifieer via het Crouton-dashboard.
Aanbevolen:
Een aanpassing aan Bertus52x11's linkshandige DSLR-houder. (met toegevoegde mondgreep): 4 stappen
Een aanpassing aan Bertus52x11's linkshandige DSLR-houder. (met toegevoegde mondgreep): Dus eerder vandaag plaatste bertus52x11 het slimste idee. Gericht op mensen die alleen hun linkerarm kunnen gebruiken - permanent of tijdelijk. Zijn oorspronkelijke idee was om een duimhaak toe te voegen aan de statiefaansluiting eronder, zodat de camera kan worden vastgehouden
Ga ermee om Oogbescherming (voor aanpassing van het gezichtsvermogen bij het wakker worden): 35 stappen
Ga ermee om Oogbescherming (voor aanpassing van het gezichtsvermogen bij het ontwaken): Groot probleem: wanneer we uit de slaap ontwaken en onze vriend de kamerverlichting aandoet, worden de meesten van ons onmiddellijk verblind door de lichten omdat onze ogen tijd nodig hebben om zich aan te passen van een donkere omgeving naar een lichte. Wat gaan we doen als we willen oplossen
IOT123 - ASSIMILEER SENSOR: TEMT6000: 4 stappen
IOT123 - ASSIMILATE SENSOR: TEMT6000: ASSIMILATE SENSORS zijn omgevingssensoren die een toegevoegde hardware- en software-abstractielaag hebben, waardoor het mogelijk is om volledig nieuwe typen toe te voegen aan een ASSIMILATE SENSOR HUB en de metingen naar een MQTT-server te pompen zonder toegevoegde code
IOT123 - ASSIMILAEREN SENSOR: MAX9812: 4 stappen
IOT123 - ASSIMILEER SENSOR: MAX9812: Microfoonversterker Geluid MIC 3.3V / 5V Vaste versterking 20dB. Deze build is gebaseerd op de I2C MAX9812 BRICK. Als u instelbare versterking nodig hebt, raad ik aan deze sensor te vervangen door de MAX4466.ASSIMILATE SENSORS zijn omgevingssensoren die een toegevoegde har
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 ALGEMENE SHELL (AANSLUITDRAAD) Montage: 4 stappen
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 GENERIC SHELL (AANSLUITDRAAD) Montage: UPDATE We raden u aan het IDC-circuit (niet HOOKUP) te gebruiken voor meer betrouwbaarheid. Deze HOOKUP-assemblage is geschikt voor niet-missiekritieke werking als u tijd heeft om het circuit te verifiëren. Ik vond wat draden (bovenste laag panelen: rood/geel) niet lang genoeg