Spisu treści:

IOT123 - ASYMILUJ KONCENTRATOR CZUJNIKÓW: DOSTOSOWYWANIE SERWERA INTERNETOWEGO ICOS10: 11 kroków
IOT123 - ASYMILUJ KONCENTRATOR CZUJNIKÓW: DOSTOSOWYWANIE SERWERA INTERNETOWEGO ICOS10: 11 kroków

Wideo: IOT123 - ASYMILUJ KONCENTRATOR CZUJNIKÓW: DOSTOSOWYWANIE SERWERA INTERNETOWEGO ICOS10: 11 kroków

Wideo: IOT123 - ASYMILUJ KONCENTRATOR CZUJNIKÓW: DOSTOSOWYWANIE SERWERA INTERNETOWEGO ICOS10: 11 kroków
Wideo: Маленький город Польши поразил. 20 тысяч жителей и такое... 2024, Lipiec
Anonim
IOT123 - ASYMILUJ KONCENTRATOR CZUJNIKÓW: SERWER INTERNETOWY DOSTOSOWYWANIA ICOS10
IOT123 - ASYMILUJ KONCENTRATOR CZUJNIKÓW: SERWER INTERNETOWY DOSTOSOWYWANIA ICOS10
IOT123 - ASYMILUJ KONCENTRATOR CZUJNIKÓW: SERWER INTERNETOWY DOSTOSOWYWANIA ICOS10
IOT123 - ASYMILUJ KONCENTRATOR CZUJNIKÓW: SERWER INTERNETOWY DOSTOSOWYWANIA ICOS10
IOT123 - ASYMILUJ KONCENTRATOR CZUJNIKÓW: SERWER INTERNETOWY DOSTOSOWYWANIA ICOS10
IOT123 - ASYMILUJ KONCENTRATOR CZUJNIKÓW: SERWER INTERNETOWY DOSTOSOWYWANIA ICOS10

Moduły ASIMILATE SENSOR/ACTOR Slaves osadzają metadane, które są używane do definiowania wizualizacji w Crouton. Ta kompilacja dodaje serwer sieciowy do ESP8266 Master, udostępnia niektóre pliki konfiguracyjne, które użytkownik może modyfikować, a następnie wykorzystuje te pliki do przedefiniowania wizualizacji. Tak więc nazwy kart pulpitu nawigacyjnego i większość konfigurowalnych właściwości można zmienić. Było to konieczne m.in. DHT11 publikuje właściwości temperatury i wilgotności: jeśli witryna ma kilka węzłów z oddzielnymi czujnikami DHT11, nie można ich wszystkich nazwać temperaturą (temperatura garażu, temperatura podwórza…). Ograniczenie długości metadanych ustawione przez magistralę I2C (16 znaków) nie istnieje i można zastosować bogatsze wartości (do 64 znaków).

Opcjonalne uwierzytelnianie podstawowe można skonfigurować dla strony edycji, a także listę wykluczeń z uwierzytelniania dla innych zasobów.

Przełącznik niskiego poziomu, który w razie potrzeby wyłącza urządzenia podrzędne, został również opracowany na istniejącej płycie-córce.

Uwaga techniczna, przed rozpoczęciem tej kompilacji zużycie pamięci wynosiło 70% z powodu globalnego wykresu obiektów metadanych. Najnowsza biblioteka AssimilateBus zawiera przełomowe zmiany, które rozdzielają zmienną globalną na mniejsze pliki JSON zapisywane w SPIFFS. Spowodowało to przywrócenie śladu do ~ 50%, co jest bezpieczniejsze dla wszystkich analizowań/kompilacji JSON. Biblioteka AssimilateBusSlave pozostaje taka sama (ASSIM_VERSION 2) podczas tych zmian.

CECHY I WIZJA

Obecnie Slaves (czujniki i aktorzy) są samowystarczalne i opierają się na komunikatach I2C opartych na konwencji, aby czytać właściwości lub działać na polecenia. Master pobiera metadane i właściwości od urządzeń podrzędnych i wysyła je do brokera MQTT. Uruchamia również serwer sieciowy i udostępnia pliki JSON, które można edytować, aby skonfigurować wzorzec i dostosować metadane/właściwości, które ostatecznie są używane przez Croutona. Poszczególne czujniki/aktory są odczytywane/sterowane przez Crouton bez wcześniejszej wiedzy kapitana o tym, co robią niewolnicy.

Jednym z celów ASSIMILATE IOT NETWORK jest dostosowanie Croutona tak, aby edytory mashup obsługiwane z serwerów internetowych IOT NODE (takie jak ten build) były dodawane jako webcomponents, które dadzą pełną kontrolę nad tym, co robi, np. master nie jest zaprogramowany, niewolnicy mają podstawowe zestawy funkcji, ale deska rozdzielcza Croutona zawiera wszystkie zasady biznesowe potrzebne do uruchomienia rzeczy!

Widelec Crouton jest postrzegany jako opcja do zdecentralizowanej kontroli / konfiguracji rzeczy. Zasadniczo każda kombinacja klienta MQTT/GUI może administrować Twoimi rzeczami, ponieważ każda funkcja (czujniki i aktorzy) są ujawniane jako punkty końcowe MQTT.

Krok 1: Grzanka

Grzanka
Grzanka
Grzanka
Grzanka

Grzanka. https://crouton.mybluemix.net/ Crouton to pulpit nawigacyjny, który umożliwia wizualizację i sterowanie urządzeniami IOT przy minimalnej konfiguracji. Zasadniczo jest to najłatwiejszy pulpit nawigacyjny do skonfigurowania dla każdego entuzjasty sprzętu IOT przy użyciu tylko MQTT i JSON.

ASSIMILATE SLAVES (czujniki i aktorzy) mają wbudowane metadane i właściwości, których master używa do budowania pakietu json deviceInfo, którego używa Crouton do budowania pulpitu nawigacyjnego. Pośrednikiem między ASSIMILATE NODES a Croutonem jest broker MQTT, który jest przyjazny dla gniazd sieciowych: do demonstracji używa się Mosquito.

Ponieważ ASSIMILATE MASTER (ta kompilacja) żąda właściwości, formatuje wartości odpowiedzi w wymaganym formacie dla aktualizacji Crouton.

Krok 2: Serwer WWW / Edytor

Serwer WWW/redaktor
Serwer WWW/redaktor
Serwer WWW/redaktor
Serwer WWW/redaktor

Podczas rozruchu Master (ta kompilacja) uruchamiany jest wbudowany serwer WWW. Adres IP jest wysyłany do konsoli szeregowej; ostatecznie zostanie to opublikowane na pulpicie nawigacyjnym Crouton.

Kiedy przejdziesz do podanego adresu URL, ACE EDITOR zostanie załadowany:

Ace to wbudowany edytor kodu napisany w JavaScript. Pasuje do funkcji i wydajności natywnych edytorów, takich jak Sublime, Vim i TextMate.

Ace jest popularny wśród wbudowanych serwerów internetowych i zapewnia dobry interfejs do edycji i zapisywania plików JSON.

Kliknięcie na nazwę pliku po lewej stronie spowoduje odczytanie pliku z SPIFFS na ESP8266 i załadowanie zawartości do edycji po prawej stronie. Plik można zapisać z górnego paska narzędzi.

Aby przesłać plik:

  1. Wybierz Plik z lokalnego systemu plików.
  2. Wstaw ścieżkę folderu (w razie potrzeby) w polu tekstowym.
  3. Kliknij Prześlij.
  4. Odśwież stronę.

Krok 3: Dostosowanie urządzenia

Dostosowanie urządzenia
Dostosowanie urządzenia

Konfiguracja urządzenia (ESP8266) odbywa się za pośrednictwem pliku device.json.

Niektóre z tych wpisów (wifi_ssid, wifi_key) będą musiały zostać zmodyfikowane przed przesłaniem danych do SPIFFS (przesyłanie danych szkicu ESP8266).

Przejdź do katalogu głównego serwera WWW (pokazanego w danych wyjściowych konsoli, np.

REDAGOWANIE

W ACE EDITOR wybierz config/device.json.

Wpisy to:

  • www_auth_username: nazwa użytkownika autoryzacji dla plików serwera WWW (pusta, jeśli nie autoryzuje).
  • www_auth_password: hasło autoryzacji plików serwera WWW (jeśli zdefiniowano nazwę użytkownika).
  • www_auth_exclude_files: rozdzielona średnikami lista ścieżek plików do wykluczenia z kontroli autoryzacji (jeśli zdefiniowano nazwę użytkownika).
  • sensor_interval: milisekundy między publikacjami danych do brokera MQTT.
  • ntp_server_name: nazwa używanego serwera czasu.
  • strefa_czasowa: przesunięcie w godzinach dla czasu lokalnego.
  • wifi_ssid: identyfikator SSID lokalnego punktu dostępowego.
  • wifi_key: klucz do użycia dla SSID.
  • mqtt_broker: adres brokera MQTT.
  • mqtt_username: nazwa użytkownika używana przez brokera MQTT (pusta, jeśli konto nie jest potrzebne).
  • mqtt_password: hasło do użycia z nazwy użytkownika MQTT.
  • mqtt_port: port brokera MQTT.
  • mqtt_device_name: nazwa używana dla tematów MQTT i identyfikacji Crouton.
  • mqtt_device_description: opis urządzenia pokazanego w Crouton.
  • viz_color: kolor identyfikujący karty urządzeń w Crouton (w wersji rozwidlonej)

Krok 4: Dostosowywanie właściwości

Dostosowanie właściwości
Dostosowanie właściwości
Dostosowanie właściwości
Dostosowanie właściwości
Dostosowanie właściwości
Dostosowanie właściwości

Każdy ze Slaves ma tablicę struktury nvc zdefiniowaną w pliku definitions.h:

//---------------------------------------- PUBLIKOWANE WŁAŚCIWOŚCI

nvc props [2] ={ {"Wilgotność", "", prawda}, {"Temperatura", "", fałsz} }; //---------------------------------------- ZAKOŃCZ OPUBLIKOWANE WŁAŚCIWOŚCI

Każdy z wpisów ma indeks, przy czym pierwszy z nich ma wartość 0 (zero).

Dostosowanie nazwy właściwości odbywa się za pośrednictwem pliku user_props.json.

Przejdź do katalogu głównego serwera WWW (pokazanego w danych wyjściowych konsoli, np.

REDAGOWANIE

W ACE EDITOR wybierz config/user_props.json (lub prześlij jeden).

Struktura to:

Pierwszym kluczem jest Adres Slave w pliku definitions.h identyfikowany przez:

#define ADDRESS_SLAVE XX

  • Kolejny poziom kluczy to Indeks Nieruchomości.
  • Wartością tego klucza jest nazwa właściwości, która ma być używana w Crouton zamiast nazwy właściwości zdefiniowanej w pliku definicji.

Krok 5: Dostosowywanie metadanych

Dostosowywanie metadanych
Dostosowywanie metadanych
Dostosowywanie metadanych
Dostosowywanie metadanych
Dostosowywanie metadanych
Dostosowywanie metadanych
Dostosowywanie metadanych
Dostosowywanie metadanych

Ze względu na ilość możliwych dostosowań, każdy slave posiada własny plik modyfikacji metadanych. Pliki mają być w formacie user_metas_.json.

Adres slave znajduje się w pliku definitions.h w szkicach ATTINY85:

#define ADDRESS_SLAVE XX

Metadane są zdefiniowane w tym samym pliku w następujący sposób:

const static char viz1 PROGMEM = "VIZ_CARD_TYPE";

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

Pierwsza linia to nazwa elementu metadanych.

Druga linia to wartość. Zwykle ma przyrostek indeksu właściwości.

Trzecia linia to flaga kontynuacji. 1 - kontynuuj, 0 - koniec metadanych (VCC_MV).

Przejdź do katalogu głównego serwera WWW (pokazanego w danych wyjściowych konsoli, np.

REDAGOWANIE

W ACE EDITOR wybierz config/user_metas_SLAVE_ADDRESS.json (lub prześlij jeden). Struktura to:

  • Tablica par nazwa/wartość.
  • Nazwa to nazwa elementu metadanych do zmiany.
  • Wartość to zmiana. Sufiks indeksu jest sprawdzany pod kątem wymiany.

Krok 6: Materiały i narzędzia

Materiały i narzędzia
Materiały i narzędzia
Materiały i narzędzia
Materiały i narzędzia
Materiały i narzędzia
Materiały i narzędzia

Zestawienie materiałów powłoki ICOS10 (IDC)

  1. Przyrząd do bloczków D1M (1)
  2. Podstawa i obudowa BLOCK D1M (1)
  3. Wemos D1 Mini (1)
  4. Wemos D1 Mini Tarcza Protoboard (1)
  5. Nagłówki żeńskie 40P (8P, 8P, 9P, 9P)
  6. Głowica męska 90º (3P, 3P, 3P, 2P, 1P, 2P)
  7. Dwustronna płyta prototypowa 1" (2)
  8. 2N7000 NFET (1)
  9. 6-stykowe osłonięte męskie złącze IDC (1)
  10. Przewód przyłączeniowy (~10)
  11. Drut ocynowany 0,5 mm (~4)
  12. Wkręty samogwintujące 4G x 15mm z łbem kulistym (2)
  13. Samogwintujące wkręty z łbem stożkowym 4G x 6mm (~20)
  14. Lut i żelazo (1)

Krok 7: Przygotowanie MCU

Image
Image
Przygotowanie MCU
Przygotowanie MCU

W tej wersji używamy Wemos D1 Mini. Jeśli wcześniej zbudowałeś D1M WIFI BLOCK, możesz użyć go do modułowego komponentu sprzętowego. Jeśli nie, jako absolutne minimum postępuj zgodnie z następną sekcją.

LUTOWANIE PINÓW NAGŁÓWEK NA MCU (przy użyciu PIN JIG) Jeśli nie możesz wydrukować PIN JIG, postępuj zgodnie z instrukcjami i improwizuj: wysokość (przesunięcie) PIN JIG wynosi 6,5 mm.

  1. Wydrukuj/uzyskaj PIN JIG z tej strony.
  2. Przełóż szpilki nagłówka przez spód płytki (TX od prawej do lewej) i do uchwytu lutowniczego.
  3. Dociśnij szpilki do twardej, płaskiej powierzchni.
  4. Mocno dociśnij deskę do przyrządu.
  5. Przylutuj 4 kołki narożne.
  6. Podgrzej i ponownie umieść płytkę/kołki w razie potrzeby (płyta lub kołki nie są wyrównane lub nie są ustawione w pionie).
  7. Przylutuj resztę pinów.

PRZESYŁANIE OPROGRAMOWANIA

Repozytorium kodu można znaleźć tutaj (migawka).

ZIP biblioteki można znaleźć tutaj (migawka).

Instrukcje dotyczące „Importowania biblioteki ZIP” znajdują się tutaj.

Po zainstalowaniu biblioteki możesz otworzyć przykład „mqtt_crouton_esp8266_customization_webserver”.

Instrukcja konfiguracji Arduino dla Wemos D1 Mini tutaj.

Zależności: ArduinoJson, TimeLib, PubSubClient, NeoTimer (patrz załączniki w przypadku łamania zmian w repozytoriach).

PRZEŚLIJ DO SPIFF

Po załadowaniu kodu do Arduino IDE otwórz device.json w folderze data/config:

  1. Zmodyfikuj wartość wifi_ssid za pomocą swojego identyfikatora SSID Wi-Fi.
  2. Zmodyfikuj wartość wifi_key za pomocą klucza WiFi.
  3. Zmodyfikuj wartość mqtt_device_name za pomocą preferowanej identyfikacji urządzenia (bez konieczności łączenia).
  4. Zmodyfikuj wartość mqtt_device_description za pomocą preferowanego opisu urządzenia (w Crouton).
  5. Zapisz plik device.json.
  6. Prześlij pliki danych do SPIFFS.

Krok 8: Przygotowanie obudowy MCU

Image
Image
Przygotowanie obudowy MCU
Przygotowanie obudowy MCU
Przygotowanie obudowy MCU
Przygotowanie obudowy MCU

Obudowa MCU odsłania gniazda do podłączenia D1 Mini i gniazda dla płyt-córek, które komunikują się z obwodem Socket (czujniki i aktory).

OBUDOWA NAGŁÓWEK Oparta na miniprotoboardzie D1 i wyłamuje te szpilki:

  1. Piny do podłączenia D1M WIFI BLOCK/D1 Mini.
  2. Bezpośrednie wyrwania 2 rzędów styków z D1M WIFI BLOCK/D1 Mini. Są one dostępne tylko dla wygody podczas prototypowania. Oczekuje się, że płyty-córki zablokują wszelki dostęp do tych nagłówków.
  3. 4 Wyłamania określonych kołków używanych przez karty rozszerzeń.

Aby dodać kontakty D1M do NAGŁÓWEK OBUDOWY:

  1. Obejrzyj film o LUTOWANIU Z UŻYCIEM GNIAZDO JIG.
  2. Przełóż szpilki nagłówka przez spód płytki (TX w lewym górnym rogu na górze).
  3. Przesuń przyrząd nad plastikową głowicę i wyrównaj obie powierzchnie.
  4. Odwróć przyrząd i zespół i mocno dociśnij głowicę do twardej płaskiej powierzchni.
  5. Mocno dociśnij deskę do przyrządu.
  6. Przylutuj 4 kołki narożne przy użyciu minimalnego lutu (tylko tymczasowe wyrównanie kołków).
  7. Podgrzej i ponownie umieść płytkę/kołki w razie potrzeby (płyta lub kołki nie są wyrównane lub nie są ustawione w pionie).
  8. Przylutuj resztę pinów.
  9. Usuń przyrząd.
  10. Odetnij piny nad lutami.

Aby dodać wyłamania płyty rozszerzenia:

  1. Odciąć 4 żeńskie nagłówki 9P.
  2. Na górze włóż nagłówki 9P, jak pokazano, i przylutuj na dole.

Aby dodać bezpośrednie wybicia:

  1. Odciąć 2 żeńskie nagłówki 8P.
  2. Na górze włóż nagłówki 8P, jak pokazano, i przylutuj na dole.

Aby podłączyć nagłówki, na dole z pinem TX skierowanym do góry:

  1. Śledź i lutuj od pinu RST przez 4 piny.
  2. Śledź i lutuj od pinu A0 przez 4 piny.
  3. Śledź i lutuj od pinu D1 przez 4 piny.
  4. Śledź i lutuj od pinu D2 przez 4 piny.
  5. Śledź i lutuj od pinu D0 w dół 2 rzędy i przez 4 piny.
  6. Śledź i lutuj od pinu D7 przez 4 piny.
  7. Śledź i lutuj od pinu GND na 4 pinach.
  8. Śledź i lutuj od pinu 5V przez 4 piny.
  9. Śledź i lutuj od pinu 3V3 w dół 45° na 4 pinach.

MONTAŻ OPRAWY

GŁOWICE OBUDOWY są przymocowane do OBUDOWY MCU i jest przymocowana do PŁYTY PODSTAWOWEJ.

  1. Z dłuższym bokiem NAGŁÓWEK OBUDOWY skierowanym do otworu, włóż STYKI D1M do otworów w OBUDOWIE MCU i dociśnij do dołu.
  2. Włóż MCU do STYKÓW MCU podczas mocowania, aby zapewnić prawidłowe wyrównanie.
  3. Umieść HEADER FRAME na górze uchwytów montażowych i przymocuj za pomocą 2 śrub 4G x 16mm.
  4. Umieść zmontowane uchwyty otworem skierowanym w stronę krótszego boku i przymocuj śrubami 4G x 6mm.

Krok 9: Budowanie płyty głównej przełącznika low-side Slaves/RESET

Budowanie płyty głównej przełącznika niskiego napięcia/RESETU Slaves
Budowanie płyty głównej przełącznika niskiego napięcia/RESETU Slaves
Budowanie płyty głównej przełącznika niskiego napięcia/RESETU Slaves
Budowanie płyty głównej przełącznika niskiego napięcia/RESETU Slaves
Budowanie płyty głównej przełącznika niskiego napięcia/RESETU Slaves
Budowanie płyty głównej przełącznika niskiego napięcia/RESETU Slaves

Jest to rozszerzenie płyty-córki REST opracowanej w ostatniej wersji. Dodaje to przełącznik low side, który łączy urządzenia podrzędne z GROUND. Jeśli urządzenie nadrzędne zostanie zresetowane, urządzenia podrzędne również zostaną zresetowane, a inicjalizacja propagująca metadane rozpocznie się od nowa.

MONTAŻ

  1. Od wewnątrz włóż męskie złączki 9P 90° (1), 1P 90° męskie złączki (2), 2N7000 (3) i przylutuj na zewnątrz.
  2. Wewnątrz prześledź żółty przewód od ŻÓŁTEGO1 do ŻÓŁTEGO2 i przylutuj.
  3. Wewnątrz prześledź goły drut od SILVER1 do SILVER2 i lut.
  4. Wewnątrz prześledź goły drut od SILVER3 do SILVER4 i lut.

Krok 10: Montaż głównych komponentów

Montaż głównych komponentów
Montaż głównych komponentów
Montaż głównych komponentów
Montaż głównych komponentów
Montaż głównych komponentów
Montaż głównych komponentów
Montaż głównych komponentów
Montaż głównych komponentów
  1. Upewnij się, że obudowa SHELL została zbudowana, a obwód przetestowany (kabel i gniazda).
  2. Zamień męski nagłówek 2P na 3V3 I2C DAUGHTER-BOARD na męski nagłówek 2P 90º 1P.
  3. Włóż PŁYTĘ CIĘŻAROWĄ 3V3 I2C, z pinem 3V3 na poszarpanym końcu nagłówków (patrz zdjęcie).
  4. Włóż NISKI PRZEŁĄCZNIK/RESETUJ PŁYTĘ CENTRALNĄ, z przewodem do wewnątrz (patrz rys.).
  5. Prześledź przewód Dupont między męskim złączem 90º 1P na RESETOWANIU PŁYTY CÓRNEJ do PŁYTY CÓRNEJ 3V3 I2C.
  6. Włóż gniazdo IDC z PRZEWODU POWŁOKI do złącza IDC na PŁYCIE CENTRALNEJ 3V3 I2C.
  7. Ostrożnie włóż CÓRKĘ/OBUDOWĘ między kable w POWŁOCE i wyrównaj otwory w podstawie.
  8. Przymocuj ZESPÓŁ PODSTAWY do POWŁOKI za pomocą wkrętów 4G x 6mm.
  9. Dołącz wszystkie wykonane przez siebie CZUJNIKI ASYMILACJI.

Krok 11: Kolejne kroki

Image
Image
Następne kroki
Następne kroki
Następne kroki
Następne kroki
  1. Skieruj swoją przeglądarkę na
  2. Upewnij się, że broker to test.mosquitto.org.
  3. Kliknij Połącz.
  4. Wprowadź nazwę urządzenia jako mqtt_device_name w pliku /config/device.json.
  5. Kliknij Dodaj urządzenie.
  6. Kliknij opcję Połącz automatycznie.
  7. Zasil swój ICOS10 (5 V MicroUSB).
  8. Zweryfikuj za pomocą pulpitu Crouton.

Zalecana: