Dzwon.

Są ci, którzy przeczytali tę wiadomość przed tobą.
Subskrybuj odbieranie artykułów świeżych.
E-mail
Nazwa
Nazwisko
Jak chcesz przeczytać dzwonek
Bez spamu

Sesje - oczyszczanie w szeregach migających!
Dziś skonfigurujemy zarządzanie ESP8266 za 5 minut od smartfona (IOS lub Android) przy użyciu nowej usługi Blink Cloud. Wideo i szczegóły pod cięciem.


Zainstaluj aplikację BLYNK na smartfonie

Zarejestruj się w dodatku i utwórz nowy projekt.

Wprowadź na przykład nazwę projektu ESP8266.. W polu. Model sprzętowy Wybierać ESP8266.. (Mam nadzieję, że zauważysz imponującą listę obsługiwanego sprzętu) automatycznie generowany Token autoryzny. Wyślij do swojej skrzynki pocztowej.

Po naciśnięciu przycisku Stwórz. Będziesz dostępny puste pole do projektowania UI panelu sterowania ESP8266.

Kliknij plus na górze po prawej stronie - pojawi się pasek narzędzi Skrzynka widgetowa. Aby dodać widżety do panelu sterowania. Warto zauważyć, że lista widżetów nadal zostanie uzupełniona.

Do próbki wybierz typ widżetu Przycisk. - Ten widget jest natychmiast dodany do twojego panelu. Edytuj go jednym dotykiem. Nazwa nie może być wypełniona, po prostu możesz wybrać kolor wskaźnika, w polu PIN wyjściowy. Wybierz prawo Cyfrowy.i pozostawił dowolną wolną szpilkę GPio.. Poniżej przełącz typ przycisku Przełącznik.

Następnie ustaw bibliotekę BLYNK w Arduino IDE. Pomoże to oficjalne instrukcje. Możesz także wziąć bibliotekę ostatnia wersja Bezpośrednio z repozytorium i ustawić ręcznie. Następnie wybierz przykład ESP8266_Standalone. i przepisać w nim Token autoryzny.które dostaliśmy pocztą SSID i hasło. ty Sieć wifi. Ukończ i wlej szkic w ESP8266.

Wcześniej przedstawiłem rower do utworzenia urządzenia Arduino do monitorowania.

To było ciekawe.

/ * - Nowy projekt - Ten kod źródłowy graficznego interfejsu użytkownika został wygenerowany automatycznie przez redaktor Remotexy. Aby skompilować kod ten Korzystanie Remotexy Library 2.3.5 lub nowsza wersja do pobrania LINK http://remotexy.com/en/Library/ połączyć się przy użyciu Remotexy Mobile App LINK http://remotexy.com/en/download/ - FOR Android 4.3.1 lub późniejsza wersja; - W przypadku wersji IOS 1.3.5 lub późniejszej; Ten kod źródłowy to bezpłatne oprogramowanie; Możesz go redystrybuować i / lub zmodyfikować go w ramach Warunków GNU Małej Ogólnej Licencji Publicznej, opublikowane przez Foundation Free Software; Wersja 2.1 licencji, albo (w opcji) dowolna późniejsza wersja. * ///////////////////////////////////// // // // Remotexy są Biblioteka /// ////////////////////////////////////////// // // Definicja połączenia tryb i podłączenie Remotexy #define Remotexy_mode__Sp8266_mode__sp8266_mode__sp8266_hardservial_cloud #include // Ustawienia połączenia #Define Remotexy_Serial Serial #Define Remotexy_Serial_speed 9600 #Define Remotexy_wifi_ssid "***********" #define Remotexy_wifi_password "*********" #define Remotexy_cloud_server "chmura. remotexy .com "#define remotexy_cloud_port 6376 #define Remotexy_Cloud_Token" ************************** „#include // Dodaj bibliotekę DHT11 DHT11 DHT; // Komunikat klasy zmiennej DHT11 #define DHT11_PIN 7 // czujnika DHT11 jest połączony w cyfrowej sosnowego 4 konstrukcyjna Int analogsignal \u003d A3; // Podłącz analogowy styk sygnalizacyjny Const int Digitalsignal \u003d 8; // Podłączenie sygnalizacji cyfrowej Piny Boolean Nogas; // zmienna do przechowywania wartości obecności gazu Int gazu \u003d 0; // zmienna do przechowywania ilości gazu float hum \u003d 0; // zmienna do przechowywania temperatury float wilgoci \u003d 0; // zmienna do przechowywania temperatury int CHK; // zmienna do przechowywania błędu DHT Char Msgbuffer; // interfejs konfiguracji #pragma pack (push, 1) uint8_t Remotexy_conf \u003d (255,1,0,24,0,74,0,8,22,1,7, 2,38,44,22,11,7, 81,22,11, 2,26,31,31,79,78,79.70,70, 0.66,132,10,13,31,24,7,10,27, 21,2,24, 66,132,56, 13,31,24,4, 41,31,24,2,24,67,4,26,5,20, 5.38,23,20,52,26,11,67, 4, 63,6,20, 5,39 52,20,5,26, 11); // Struktura określa wszystkie zmienne interfejsu sterowania STRUCT (// zmienna Wejście uint8_t switch_1; // \u003d 1 Jeśli przełącznik jest włączony, a \u003d 0, jeżeli wyłączone // zmienna wyjściowa int8_t level_1; // \u003d 0..100) Int8_T stanowisko level_2 poziom; pozycja / / \u003d 0..100 poziom cHAR tekst_1; // \u003d Row UTF8 kończące zerowy char text_2; // \u003d Row UTF8 kończące zera // innej zmiennej UINT8_T Connect_Flag // \u003d 1 Jeśli podłączonym przewodzie, inaczej \u003d 0) Remotexy; #Pragma pack (POP) /////////////////////////////////////// // END REMOTEXY ZAWIERAJĄ // // // /// ///////////////////////////////////// #define pin_switch_1 13 void setup () (remotexy_init (); pinmode (pin_switch_1, wyjście); // TODO Ci kod instalacyjny) void loop () (remotexy_handler (); DigitalWrite (pin_switch_1 (remotexy.switch_1 \u003d\u003d 0) Low: High); Nogaś \u003d DigitalRead (DigitalSignal) // Odczyt obecności gazowego \u003d Analogread (AnalogSignal) // i około numeru CHK \u003d DHT.READ (DHT11_PIN) HUM \u003d DHT.Humidity; Temperatura \u003d DHT.temperature; remotexy.level_1 \u003d szum; remotexy.level_2 \u003d temperatura; dtostrf (Hum, 6, 2, Remotexy.text_1) dtostrf (temp, 6, 2, remotexy.text_2) // Todo zapętlić Kod / / u Remotexy struktura do przenoszenia danych )

Używamy kanapki z desek.

Nagle wszystko natychmiast zarobiło:

Od momentu odkrycia usługi w chmurze Remotexy na zdjęcie powyżej minęło godzinę.

Cechy pracy z Remotexy.

1. Wszystko jest bardzo proste. Na swój sposób jest dobry. Z BLYNK i Cayenne, na przykład, trudno od zarysowania w godzinę okaże się zrozumieć. Aby używać, na przykład "Chmura Kasca", musisz kupić specjalny.

2. Nie ma przetwarzania i przechowywania danych na stronie serwera: brak połączenia z płytą - aplikacja jest zawieszająca "Brak połączenia".

3. Darmowe tylko 5 elementów projektu, ale pRO ZAŁĄCZNIK PRO. Nie jest droższy niż pół dnia spędzonego czasu.

4. Istnieje okazja z jednej aplikacji, aby komunikować się z deską zarówno przez serwer chmurowy, jak i bezpośrednio. Prawda, a nie w tym samym czasie. Oczywiście. I przełącz się natychmiast niemożliwe - musisz zmienić szkic w tablicy. Istnieje również możliwość komunikowania smartfona z płytą Bluetooth i USB.

Programowanie różnych mikrokontrolerów i mikrokomputerów, takich jak Arduino, Raspberry PI i tym podobne, jest jednym z najciekawszych i odpowiednich działań. Budowa urządzeń na tych platformach wykroczyła poza hobby giików i profesjonalnych programistów: Te płyty są używane do tworzenia robotów, obrabiarek, quadcopters, urządzeń IOT (inteligentny dom), serwery, a nawet interfejsy hi-fi-audio.

Niestety rynek mikrokontrolera jest bardzo segmentowany. Ich programowanie jest przeprowadzane różne środowiska i interfejsy. Sytuacja ma na celu zapisanie projektu o nazwie mrugnięcie.

BLYNK to usługa w chmurze tworzenia płyt graficznych i nadaje się do szerokiej gamy mikrokomputerów i mikrokontrolerów. Gdzie wcześniej zebrać informacje z czujników, trzeba było napisać pełnoprawny interfejs I / O lub nabyć dodatkowe moduły, teraz można wykonać pracę pięć minut w Blynk.

Aby utworzyć własny projekt z kontrolą BLYNK, potrzebujesz całkiem sporo: Zainstaluj aplikację (dostępne dla iOS i Android) lub użyj formularza internetowego. Będzie to wymagało rejestracji w jednym kroku - wprowadzanie wiadomości e-mail i hasła. Rejestracja jest potrzebna ze względu na fakt, że BLYNK jest rozwiązaniem w chmurze, a każdy użytkownik może odbierać bez niego.

Życzenie może zainstalować serwer lokalnie. W tym przypadku dostęp do Internetu nie jest potrzebny.

Aplikacja będzie wymagała pewnych umiejętności. Musisz najpierw skojarzyć komputer lub smartfon z programowalną płytką. Program obsługuje połączenie z płatnościami za pomocą różnych interfejsów:

  • USB (seryjny),
  • Adafruit cc3000 wifi,
  • Oficjalna tarcza Arduino WiFi,
  • Oficjalna tarcza Ethernet (W5100),
  • Eng28J60,
  • ESP8266 (modem WiFi),
  • SeedStudio Ethernet Shield V2.0 (W5200),
  • Rn-xv wifly,
  • ESP8266.

Oprócz konfigurowania połączenia, wystarczy prawidłowo podłączyć moduły przyszłego urządzenia. Po tym, w formie roboczej wniosku trzeba dodać dostępnych modułów (widgety), należy skonfigurować odpowiednie adresy wyjściowe i określ żądane parametry (jeśli to konieczne, można napisać kod). Nawiasem mówiąc, Drag'n'drop służy do tworzenia widgetu lub programu. Dostępne są różne symulatory urządzeń sterujących dla sterowania - przełączniki, suwaki, wyświetlacze, dla każdego, z których można napisać logikę. Istnieją oddzielne formularze do wyjścia i systematyzacji informacji z wymaganych czujników w postaci wykresów.

Tak więc, platforma będzie pasować zarówno dla początkujących jak i bardziej zaawansowanych użytkowników, którzy nie chcą spędzać czasu na pisanie aplikacji do zarządzania projektami: od odczytywania danych ze stacji meteorologicznej i zarządzania inteligentnego domu przed zarządzania robota.

Wszystkie informacje wymagane do rozpoczęcia pracy są publikowane na oficjalnej stronie internetowej. Blynk jest, więc każdy może uczestniczyć w tworzeniu nowych funkcji. Na ten moment Korzystanie z usługi jest całkowicie bezpłatne, w przyszłości sytuacja zmieni się nieco - przede wszystkim ze względu na monetizację nowych funkcji. Dlatego już wiadomo, że dostęp do interfejsów GPIO zostanie zakupiony jako wbudowany zakup.

W tej chwili BLYNK współpracuje z następującymi deskami:

  • Arduino: UNO, NANO, MINI, PRO MINI, PRO MICRO, MEGA, YÚN (Bridge), należne;
  • Raspberry PI;
  • Cząstek (rdzeń ex spack);
  • ESP8266;
  • Tinyduino (CC3000);
  • Wicked Wildfire (CC3000).

Połączenie przez serwer Cloud Remotexy umożliwia sterowanie urządzeniem z dowolnego miejsca na świecie, w którym znajduje się internet.

Moduł ESP8266 zostanie skonfigurowany jako klient, aby połączyć się z punktem dostępu WiFi. Punkt dostępu musi mieć dostęp do Internetu. Biblioteka Remotexy zarejestruje urządzenie na serwerze Cloud.

Aplikacja mobilna połączy się z serwerem Cloud, a nie bezpośrednio do urządzenia. W ten sposób urządzenie będzie dostępne z dowolnego miejsca w Internecie.

Uwaga:W tej chwili połączenie przez serwer Cloud przechodzi krok testowy. To możliwe przerwy na serwerze.

Krok 1. Utwórz projekt interfejsu graficznego

Krok 5. Dostosuj ESP8266

Moduł ESP8266 musi zostać skonfigurowany. Może twój moduł ma już niezbędne ustawienia Domyślnie, ale lepiej jest to sprawdzić.

Co musisz sprawdzić:

  • Moduł ma oprogramowanie układowe ze wsparciem poleceń w wersji nie niższej niż V0.40;
  • Moduł jest skonfigurowany do prędkości 115200.

Krok 6. Podłącz ESP8266 do Arduino Uno

Podłącz ESP8266 do Arduino UNO zgodnie z poniższym schemacją. Należy pamiętać, że kontakty RX-TX są podłączone przez Crosshair.

Ponieważ poziomy sygnałów modułu ESP8266 są 3.3V i Arduino, są 5V, jest to niezbędne do korzystania z rezystancyjnego dzielnika napięcia do konwersji poziomu sygnału.


Krok 7. Załaduj szkic Arduino.

Szkic jest ładowany w Arduino w zwykły sposób. Jednak ze względu na fakt, że moduł ESP8266 jest podłączony do kontaktów 0 i 1, programowanie staje się niemożliwe. Kompilator pokaże błąd.

Przed programowaniem odłącz przewody udające się do ESP8266 z kontaktów 0 i 1. Programowanie. Następnie zwróć kontakty do miejsca. Kliknij przycisk resetowania Arduino.

Uwaga:Pierwszym znakiem jest to, że programowanie przekazywane pomyślnie, jest to migotanie niebieskiej diody LED na module ESP8266 natychmiast po zresetowaniu. Migotanie niebieskiej diody LED oznacza wymianę danych między Arduino a ESP8266. W tym 8, Arduino został skonfigurowany do skonfigurowania ESP8266, aby połączyć się z punktem dostępu. Po pewnym czasie dioda LED ponownie miga, co oznacza próbę rejestracji na serwerze Remotexy Cloud.

Krok 8. Połącz z aplikacji mobilnej.

Sprawdź zasilanie ESP8266.

Możliwe jest również, że Twój ESP8266 brakuje mocy zasilania. Niektóre płyty Arduino mają słabe stabilizator napięcia 3.3 V, który nie jest w stanie wydawać 200-300 mA w trybach szczytowych. W tym przypadku, w monitorze szeregowym, zobaczysz również przerwę sekwencji poleceń.

Vadim Kolesnik, Tiraspol

Ekscytujący, prosty i szybki rozwój w pełni funkcjonalnych urządzeń internetowych na Arduino przy użyciu usługi w chmurze

Generał

myDevices rozwijają się oprogramowanie I aplikacje w Internecie rzeczy (IOT) i jest podziałem Avanquesta. MyDevices Cayenne - Pierwsza aplikacja Drag-and-Drop i Cloud Service dla uproszczonych projektów rozwoju IOT na Raspberry Pi.

Radiotozman Portal został niedawno opublikowany w którym starałem się ukazać główne zalety i możliwości systemu podczas pracy na komputerze jednopłytowego Raspberry Pi (RPI). Ale projekt Cayenne ciągle się rozwija, deweloperzy, w oparciu o życzenia użytkowników, stopniowo dodawać nowe funkcje, wyeliminować niedociągnięcia i błędy.

Rozwój urządzeń IOT na Arduino i Raspberry PI podczas pracy z Cayenne różni się zasadniczo. Jeśli chodzi o Raspberry Pi, platforma Cayenne można uznać środowisko programistyczne wizualny: fizycznie podłączenie różnych urządzeń peryferyjnych do płyty Raspberry Pi, wtedy działa tylko w środowisku internetowym Cayenne (utworzonej widgety, przetwarzania danych, algorytmów automatyki zapisu).

W odniesieniu do Arduino, Cayenne Dashboard jest tylko zestawem widżetów i elementów sterujących, które wizualizują dane z czujników i przesyłać dane użytkownika do sterowania sterowaniem lub innymi urządzeniami wykonawczymi. Praca bezpośrednio z czujników, urządzeń wykonawczych, dodatkowych urządzeń peryferyjnych (na przykład wyświetlacz, drugi klawiatury), przetwarzanie warunków automatyki jest przypisany do mikrokontrolera. Innymi słowy, wszystko sprowadza się do standardowego rozwoju urządzenia na Arduino; Sam użytkownik pisze kod programu, ale z integracją do projektu elastycznych funkcji IOT Cayenne. W niniejszej opinii, moim zdaniem, moim zdaniem, główną zaletą jest Cayenne: można podłączać czujniki i siłowniki do systemu, nie ograniczając listę obsługiwanych urządzeń peryferyjnych.

Interfejs użytkownika i przygotowanie do pracy

Jak w przypadku interfejsu użytkownika systemu, jego ustawienia, metod i wzory na tablicy rozdzielczej, to wszystko pozostaje podobnego systemu na malinowy PI, oczywiście z wyjątkiem pojedynczych niepowtarzalnych elementów związanych w drugi (na przykład, Pulpit zdalny, stan pamięci, ładowanie procesora). Dlatego, aby zrozumieć podstawy pracy z systemem, polecam zapoznać się z artykułami. Wszystkie informacje w artykule są istotne zarówno dla interfejsu internetowego systemu, jak i interfejsu aplikacji mobilnych. Również w artykule wskazuje listę obsługiwanych peryferii.

Aby opracować urządzenia lub aplikacje IOT, potrzebujemy:

  • Nadzieja konto W serwisie Cayenne (możesz użyć istniejącego);
  • Zainstaluj zintegrowane środowisko rozwoju Arduino IDE;
  • Dodaj bibliotekę funkcji Cayenne w Arduino IDE;
  • Skonfiguruj Arduino IDE: Wybierz opłatę i port COM, do którego jest podłączony;
  • Połącz się z Arduino Ethernet Shield lub Wi-Fi Shield Board (lub użyj płyty Arduino za pomocą zintegrowanego interfejsu sieciowego).

Myślę, że proces instalacji środowiska rozwoju IDE Arduino, a także wybór opłat i portów w wyjaśnień nie potrzebuje, a my pójdziemy do głównego jednego.

Biblioteka Cayenne dla Arduino jest po prostu i szybko zainstalowana za pomocą menedżera biblioteki (Rysunek 2).

Po zainstalowaniu biblioteki, będziemy w stanie wykorzystać go w swoich aplikacjach i nowy folder o nazwie Cayenne pojawi się w sekcji Przykłady szkicu. Moim zdaniem, przykłady te nie pozwalają, aby w pełni zrozumieć, jak do pracy z systemem, ale jednak, powinny one zostać zbadane, a także, przypomnijmy, że istnieje ogromna część dokumentacji dotyczącej systemu Cayenne. W ogólnym przypadku ta biblioteka jest zestawem szkiców, które umożliwiają uproszczenie połączenia i wymiany danych między czujnikami / siłownikami i służbą chmur.

Wykonując operacje przygotowawcze, konfigurując środowisko rozwojowe i połączenie płyty przedłużacza Ethernet Shield, możesz rozpocząć opracowywanie urządzenia IOT.

Arduino Board Połącz się z komputerem przez USB, w Ethernet Shield Connect kabel internetowy lokalna sieć. W przeglądarce internetowej logujemy się na koncie Cayenne i dodać nowe urządzenie w panelu sterowania - Arduino. Następnie wybierz typ statku, sposób łączenia się z Internetem (sporo opcji), należy zwrócić uwagę na unikatowy klucz autoryzacji dla naszego urządzenia i poczekać na Arduino pokładzie do Cayenne (Rysunek 3).

Dla każdego nowego urządzenia wygenerowany jest nowy unikalny klucz, w przyszłości można go znaleźć w ustawieniach urządzenia (opłaty).

Po wybraniu sposobu na połączenie z siecią pojawi się okno z kodem źródłowym programu mikrokontrolera. Jest to wymagane minimum do podłączenia urządzenia do usługa chmury. Należy pamiętać, że tekst programu określił już klucz autoryzacji i podłączony do biblioteki odpowiadającej wybranej metodzie połączenia z siecią (Rysunek 4). Skopiuj ten kod w Arduino IDE, kompilacji i obciążenia opłaty. Jeśli wszystko zostało prawidłowo skonfigurowane, nowe urządzenie aktywne i pulpit nawigacyjny pojawi się na panelu sterowania Cayenne, gdzie można teraz dodawać widżety i elementy sterujące. Co więcej, już na tym etapie, można zdalnie sterować dostępny cyfrowych i analogowych Arduino porty, bez pisania nawet jednej linii kodu - na desce rozdzielczej, dodać widget, określ typ portu (cyfrowy), jego nazwisko na tablicy i Zapisz widżet. Teraz, klikając przycisk w przeglądarce, zmienisz stan logiczny portu. Ponadto, po prostu dodając odpowiednie wzory, można zarządzać wyjścia PWM, otrzyma „surowych” danych z wejść analogowych Arduino, kontrolować stan wejść cyfrowych.

Rozwój urządzenia na konkretnym przykładzie

Teraz porozmawiam o dodatkowe funkcje i funkcje systemowe. Jako przykład zebrałem prosty system, który obejmował:

  • Arduino Uno Board;
  • Ethernet Shield Extension Board na kontroler Wiznet W5100;
  • Czujnik temperatury DS18B20;
  • Fotoresistor;
  • Termistor;
  • Kilka diod LED;
  • Wyświetlacz OLED na sterowniku SSD1306.

Schematyczny schemat czujników łączących i diod LED do Arduino jest pokazany na rysunku 5.

Pozwól mi przypomnieć, że większość pytań związanych z połączeniem różnych czujników i siłowników można znaleźć odpowiedzi w sekcji Dokumentacja.

Myślę, że o podłączeniu diod LED, cyfrowy czujnik temperatury i wyświetlanie pytań OLED. Analogowe iluminacja i czujniki temperatury są podłączone do wejść analogowych zgodnie z schematem rozszczepienia rezystancyjnego. Jednocześnie, dla łańcucha termistora konieczne jest znanie dokładnej odporności rezystora R6, wartość ta będzie używana w kodzie źródłowym podczas obliczeń.

Po podłączeniu artykułów określonych na diagramie napisz szkic Arduino, a następnie zainstaluj wymagane widżety na desce rozdzielczej Cayenne. W tej chwili płyta Arduino załadowała już minimalny szkic, a deska jest określona na desce rozdzielczej Cayenne. Jak już wspomniano powyżej, na tym etapie można dodać wzory kontrolować diod D1, D2, jak również uzyskanie „surowe” dane na wejściach analogowych, które termistor i fotorezystor połączonych (figury 6, 7).

Bez pisania jednej linii kodu Arduino otrzymaliśmy już prosty system pilot i kontrola (Rysunek 8).

Aby użyć cyfrowych czujników temperatury, termistora, PWM, na przykład, aby sterować diodą D2, konieczne będzie dodanie minimalnego szkicu. Zacznij od, definiujemy niezbędne biblioteki.

#Zawierać.< CayenneEthernet.h> // Użyj opłaty Ethernet Shield Extension
#Zawierać.< CayenneTemperature.h> // Funkcje konwersji danych z termistorem
#Zawierać.< OneWire.h> // Funkcje do pracy z autobusem 1-wire
#Zawierać.< DallasTemperature.h> // Funkcje do pracy z cyfrowymi czujnikami temperatury
#Zawierać.< Arduino.h> // Standardowe stałe i etykieta Arduino
#Zawierać.< U8x8lib.h> // biblioteka do pracy z wyświetlaczem OLED w trybie tekstowym
#Zawierać.< Wire.h> // Obsługa interfejsu sprzętu I 2 C

#Define virtual_pin_1 v0 // wirtualny kanał dla czujnika DS18B20
#define virtual_pin_2 v1 // - dla termistora
#define Virtual_Pin_3 V2 // - W przypadku diody LED D2 otrzymamy dane o wartości PWM
#Define LED2_PWM 6 // Real port Arduino.do którego podłączony jest dioda D2

Wirtualne kanały nie są cyfrowe, a nie analogowe porty wejściowe / wyjściowe. Podczas czytania wejść analogowych użytkownik otrzymuje dane z 10-bitowego mikrokontrolera ADC. Wartości zwracane przez ADC znajdują się w zakresie 0 ... 1023 i proporcjonalne do napięcia na tym wejściu. Innymi słowy, jeśli podłączysz czujnik temperatury do wejścia analogowego Arduino, nie otrzymasz wartości temperatury, będziesz potrzebować dodatkowe transformacje. i obliczenia matematyczne do konwersji napięcia - temperatura.

Aby uprościć konwersję danych, formatowanie i przetwarzanie, zaprojektowane są kanały wirtualne. Jest to dość potężne narzędzie, które służy do wymiany pomiędzy Arduino i Cayenne, a także ułatwia formatowanie danych w celu ich zrozumiałej wizualizacji na desce rozdzielczej. Pamiętaj, że kanały wirtualne nie mają fizycznych parametrów.

Cayenne.Virtualwrite (V1, 123) // Transmisja Wartości całkowitej Wirtualny kanał V1
Cayenne.virtualwrite (V2, 12.34) // Transfer wartości zmiennoprzecinkowych Wirtual Channel V2

Na przykład, czytając analogowy czujnik temperatury, będziemy mogli przekonwertować wartość do stopni Celsjusza i przenieść tę wartość do deska rozdzielcza. Ponadto kanały wirtualne pozwalają wdrożyć kontrolę nad dowolnym obwodzie podłączonym do analogowych lub cyfrowych portów Arduino, bez konieczności pisania dodatkowego kodu. W tej chwili obsługiwane są dwa rodzaje danych, dzięki którym obsługują kanały wirtualne: Integer (liczba całkowita) i pływające (pływak). W przyszłości planuje się wspierać rodzaje symboliczne i tablice. Na desce rozdzielczej na kanale wirtualnym można podłączyć i skonfigurować typ danych wykonanych przez widget użytkownika do wizualizacji.

// port cyfrowy, do którego podłączonych są czujniki DS18B20. Nie używaj portów Arduino 0 i 1 (RX / TX).
Const Int DS18B20_PIN \u003d 2;
// port analogowy, do którego podłączony jest termistor.
Const int terhistorpin \u003d 0;
// Odporność na rezystor stałego (9 COM), zawarty w serii z termistorem do ziemi.
Konstantywna odporność na pływak \u003d 9000;
// klucz autoryzacji Cayenne. Możesz go znaleźć w Kayenne Web Interface na karcie Ustawienia urządzenia.
Char token \u003d "640C9odi4";
Onewire Onewire (DS18B20_PIN);
Czujniki Dallastemperature (& Onewire);
Termistor termistora (termistorpina, odporność);

Według własnego uznania, prawie na dowolnym etapie możesz dodać do źródło Wyłączanie informacji na porcie szeregowym.

W sekcji Inicjalizacja, wskażemy następujące funkcje:

ustawienia pustki ()
{
Cayenne.begin (token); // Podłącz do Cayenne z określonym kluczem autoryzacji
Czujniki.begin (); // Inicjalizacja cyfrowych czujników temperatury
U8x8.begin (); // Inicjalizacja i wyświetlacz informacyjny tekstu na wyświetlaczu OLED

u8x8.setPowersave (0);
U8x8.setFont (U8x8_Font_torussansbold8_R);
U8x8.Drawstring (2.0, "test Cayenne");
U8x8.Drawstring (1,2, "system działa");
}

W głównym cyklu programu będziemy mieć tylko jedną funkcję:

pętla pusta ()
{
Cayenne.run ();
}

Wszystkie wymiany danych z deską nawigacyjną Cayenne są wykonywane przy użyciu kilku funkcji:

Cayenne_in (virtual_pin) - Określa funkcję, która jest wywoływana po otrzymaniu przez urządzenie zaktualizowanych danych za pośrednictwem wirtualnego kanału z serwera Cayenne.

Cayenne_out (Virtual_pin) - Określa funkcję wywołaną, gdy chcesz wysłać zaktualizowane dane z urządzenia do serwera Cayenne.

Cayenne_conned () - Funkcja jest wykonywana za każdym razem, gdy urządzenie jest podłączone do serwera Cayenne. Ogólnie rzecz biorąc, ta funkcja służy do synchronizacji.

Cayenne.Syncall () - Funkcja generuje żądanie do serwera Cayenne do synchronizacji wszystkich widżetów. Zostanie przywrócony status portów analogowych i cyfrowych Arduino, a każdy kanał wirtualny wygeneruje zdarzenie Cayenne_in.

Cayenne.syncvirtual (Virtual_pin) - synchronizacja przez określony wirtualny kanał. W wyniku wykonania wywołany jest odpowiednia obsługi Cayenne_in.

Na moim schemacie dioda D2 jest podłączona do portu cyfrowego D6 Arduino. Ten port ma alternatywną funkcję - wyjście PWM. Aby wdrożyć pilot zdalnego sterowania tych diod LED w trybie PWM, będziemy musieli odbierać dane z pulpitu nawigacyjnego. Aby to zrobić, napisz funkcję, która zostanie wykonana podczas aktualizacji danych za pomocą wirtualnego kanału V2:

Cayenne_in (v2)
{
// Uzyskaj dane o wartości PWM z pulpitu nawigacyjnego (suwak)
int pwmvalue \u003d getvalue.asint (); // Wartość w zakresie 0 - 1023
Analogwrite (LED2_PWM, PWMVALUE / 4); // dla PWM wartość musi znajdować się w zakresie 0 - 255
}

Teraz dodamy widget "suwakowy" na desce rozdzielczej z nazwą LED_2 PWM (PWM), aw jego ustawieniach określamy, że działa przez wirtualny kanał 2 (Rysunek 9).

Po pobraniu szkicu na płycie można użyć suwaka na desce rozdzielczej Cayenne Luministrozy diod LED D2. Wszystko jest bardzo szybkie i łatwe ...

Cayenne_out (v0)
{
Sensors.requesttemperatura (); // Odbieraj dane z cyfrowych czujników temperatury.
// Konwertuj dane z termistora, formatuj je i wyślij je na serwer za pomocą kanału wirtualnego V1
Cayenne.CelsiusWrite (V1, termistor.getCelsius ());
// Formatuj dane z cyfrowego czujnika temperatury i wyślij je do wirtualnego kanału serwera V0
Cayenne.CelsiusWrite (V0, sensors.gettempcbyindex (0));
}

Dzięki zastosowaniu wirtualnych kanałów cały kod funkcji do transmisji absolutnie różnych danych składa się z dwóch linii. Na desce rozdzielczej dodaj widżety dla czujnika temperatury DS18B20 i termistora (są gotowe w panelu sterowania). Dostosuj widżety, załaduj szkic opłaty, a ... gotowe (rysunki 10a, 10b)!


Rysunek 10. Widok tablicy rozdzielczej Cayenne do kontrolowania Arduino (czujniki temperatury,
Light, LED Control D1, PWM LED Control D2):

Nie zapominaj, że te same funkcje sterowania i sterowania są dostępne w mobilna aplikacja. Wszystkie widżety zainstalowane w interfejsie WWW będą widoczne w aplikacji mobilnej (Rysunek 10b).

Wygląd Urządzenia z podłączonymi urządzeniami peryferyjnymi pokazano na rysunku 11.

Możliwość opracowywania bezprzewodowych urządzeń IOT

Można zauważyć, że na niektórych zrzutach ekranu Moje panel sterowania jest widoczny, gdzie oprócz Arduino Uno i Raspberry PI, istnieje urządzenie o nazwie ESP8266-1. Wszystko jest prawdą, jest to dodatkowe urządzenie na znanym module ESP-12 (ESP8266), który jest podłączony do serwera Cayenne za pośrednictwem Wi-Fi i ma własną osobną deskę rozdzielczą (Figury 12A, 12B). Takie urządzenie jest bezprzewodową kontrolą i węzłem sterowania. Dwie diody LED są podłączone do modułu (jeden jest podłączony do wyjścia PWM ESP8266) i DS18B20 cyfrowy czujnik temperatury.


Rysunek 12. Deska rozdzielcza bezprzewodowe urządzenie Na module ESP-12:
a) Interfejs internetowy, b) aplikacja mobilna.

Dzięki wsparciu jądra ESP8266, środowisko IDE Arduino, wdrożenie bezprzewodowych urządzeń IOT z Cayenne nie różni się od rozwoju na Arduino. Innymi słowy, każdy moduł na chipie ESP8266 jest deska Arduino z interfejsem Wi-Fi. W przypadku tego modułu Wi-Fi piszemy podobny szkic, używamy tych samych bibliotek do pracy z czujnikami, cyfrowymi i analogowymi portami wejściowymi / wyjściowymi są dla nas dostępne. Moduł ten zgromadził ogromną ilość informacji, różnych dokumentacji i rozwoju.

Diagram połączenia obwodowego do modułu ESP8266 pokazano na rysunku 13. Użyłem oddzielnego modułu ESP-12 bez płyty przejściowej ze zintegrowanym obwodem mocy i interfejsu programowania, który znacznie skomplikował pracę na etapie pobierania szkicu. Optymalna opcja będzie korzystać z gotowego modułu typu NODEMCU V3, który jest wykonany w czynniku formularza Arduino i ma schemat dopasowywania interfejsu. (Wysoko ważny moment Podczas programowania modułu). Wygląd modułu z podłączonych diodami LED i czujnik temperatury pokazano na rysunku 14.

Jeśli chodzi o podłączenie do serwera Cayenne i wymiany danych, wszystko jest tutaj dla Arduino. Wszystkie koncepcje o wirtualnych kanałach są zapisywane, używane są również te same funkcje, używany jest również unikalny klucz autoryzacji. Różnica tylko na etapie połączenia modułu do Internetu.

Aby podłączyć urządzenie na module ESP8266, działamy analogicznie do dodawania dowolnej płyty Arduino i reagujemy na tryb gotowości do podłączenia urządzenia do Cayenne, gdzie zostanie wygenerowany minimalny szkic.

Musimy zmienić ten szkic. Łączymy następujące biblioteki:

#Include "cayennedefines.h" // stałe i zmienne Cayenne
#include "BllynksimpleEp8266.h" // Funkcje do pracy z ESP8266
#include "Cayennewifylient.h" // Funkcje do wdrożenia klienta Wi-Fi

char token \u003d "3YJ62U9OGI";
Char ssid \u003d "network_ssid"; // SSID i hasło do sieci Wi-Fi.
Char hasło \u003d "Network_password";

W sekcji Inicjalizacja dodaj ciąg:

Cayenne.begin (Token, SSID, Hasło);

Kompiluj przez załadunek do modułu (trwa dłużej niż pobieranie do tablicy Arduino), czekamy na podłączenie i aktywowanie nowego urządzenia na desce rozdzielczej Cayenne. Następnie, wszystko jak dla Arduino: Dodaj funkcje do pracy z portami czujnikami i I / O, dodaj widżety do pulpitu nawigacyjnego. Po prostu zachwycający, prawda?!

Wniosek

Według wyników pracy z Cayenne na Raspberry Pi i Arduino, mogę zdecydowanie powiedzieć, że Raspberry PI nie powinien być używany do rozwijania urządzeń internetowych rzeczy, nawet z Cayenne. Co nie mówi o Arduino - pomimo ograniczonych zasobów, brak wielozadaniowości, niskiej mocy obliczeniowej (choć jest to sporna chwila, biorąc pod uwagę cechy nowych płyt arduino na procesorach ramienia), jest idealny do rozwijania prostego iot Urządzenia i systemy automatyki domowej.

Ponadto, w tym kontekście, główną zaletą Arduino, ponieważ zauważyłem powyżej, jest możliwość niezależnego opracowania urządzenia, badania obwodów, kodu do pisania, rozwijających się umiejętności programowania, pomimo argumentów profesjonalnych programistów, których nie można nauczyć się z Arduino. Być może, ale ... W związku z Arduino platforma Cayenne zapewnia tylko grafikę interfejs użytkownika I pewne uproszczone przetwarzanie danych. Cała reszta musisz się opracować, w tym podstawowe przetwarzanie danych z czujników, podsystemu przetwarzania zdarzeń, a także algorytmów automatyki. Teraz dodaj do Arduino Łatwość rozwijania bezprzewodowych urządzeń IOT do modułu Wi-Fi ESP8266 i już oficjalne wsparcie (choć nie jest kompletne) najnowszy układ ESP32, który ma bogate peryferie na pokładzie, a masz ogromne możliwości opracowania fundamentalnie nowych urządzeń i Przyciąganie tego procesu to nie tylko kochankowie, ale także profesjonalistów.

W momencie przygotowania Cayenne nie został zgłoszony na oficjalnym wsparciu modułów na chipie ESP8266. Początkowo jest to zasługa społeczności - amatorów i inżynierów, którzy pracują lub używają Arduino IDE i wiedzą o wsparciu ESP8266, przy użyciu bibliotek Cayenne były w stanie połączyć się i wykorzystać ESP8266. Ale nawet w tym czasie Forum Cayenne Community mogą już zapoznać się z dużą liczbą różnych projektów bezprzewodowych IOT.

Po długim testowaniu swoich urządzeń na Arduino i ESP8266 mogę powiedzieć, że ta ostatnia działa bardzo stabilna. Kilka niskiej wiarygodności Arduino z tarczą Ethernet jest spowodowana znanym problemem zawieszenia kontrolera W5100, istnieje jednak kilka sposobów, aby go rozwiązać, zarówno sprzętowi, jak i oprogramowanie. Mogę założyć, że nie dotyczy to płyt Arduino ze zintegrowanym Ethernetem lub Wi-Fi.

Od momentu przygotowania artykułu na temat Raspberry Pi i Cayenne nie było wiele czasu, ale nowe funkcje i wspierane obrzeża stały się znacznie większe. Oprócz posiadania ogromnego wyboru różnych płyt rozszerzających, czujników i urządzeń wykonawczych, odpowiednich bibliotek, projektów i przykładów Arduino, teraz w Cayenne użytkownicy są dostępne urządzenia, sieci i usługi Lora, biblioteki wsparcia protokół sieciowy. MQTT dla Arduino, C, C ++, Med, biblioteki do pracy z MQTT Broker Mosquito. Zdecydowanie, rozwijanie urządzeń internetowych i systemów automatyki domowej na Arduino, poleciłbym usługi Cayenne.

Dzwon.

Są ci, którzy przeczytali tę wiadomość przed tobą.
Subskrybuj odbieranie artykułów świeżych.
E-mail
Nazwa
Nazwisko
Jak chcesz przeczytać dzwonek
Bez spamu