Blynk: jednoduché ovládanie Raspberry a Arduino. Blynk: jednoduché ovládanie Raspberry a Arduino Vlastnosti práce s RemoteXY

Veľa som premýšľal o nájdení lacné riešenie na pripojenie a ovládanie Arduina cez internet bez použitia akejkoľvek obrazovky Ethernet alebo dokonca akéhokoľvek modulu WI-FI. Po skúmaní som zistil, že jediný spôsob interakcie s mikrokontrolérom Arduino je s ním sériový port(sériový port), preto som vytvoril jednoduchú aplikáciu C # s oknami ako rozbočovač (HUB) na prácu so sériovým portom na odosielanie a prijímanie údajov na dosku.

Táto aplikácia HUB je už pripojená k internetu prostredníctvom vášho Osobný počítač a pomáha odosielať a prijímať údaje medzi mikrokontrolérom a cloudová základňaúdajov, okrem ukladania samotných údajov do online databázy MySQL.

V prvom rade som musel začať s malým príkladom, ktorý mi umožňuje otestovať aplikáciu myšlienky. V tomto prípade som nepripojil žiadny senzor, iba som použil vstavanú LED na Arduine, aby som mohol LED diódu na pine 13 zapnúť a vypnúť odoslaním písmen „I“ a „O“ do sériového čísla. prístav.

Int vstup; // Uloží prichádzajúci znak zo sériového portu. int led = 13; // Pin 13 // funkcia nastavenia sa spustí raz, keď stlačíte tlačidlo reset alebo zapnete int stav; void setup () (// inicializácia digitálneho pinu LED_BUILTIN ako výstupu. Serial.begin (9600); pinMode (led, OUTPUT); // Nastavenie kolíka 13 ako digitálneho výstupu Serial.flush ();) // funkcia slučky opäť funguje a opäť vždy neplatná slučka () (// Vstup reťazca = ""; // while (Serial.available ()> 0) // (// vstup + = (char) Serial.read (); // oneskorenie (5) ; //) state = digitalRead (led); if (Serial.available ()) (input = Serial.read (); if (input == "I") (// digitalWrite (led ,! digitalRead (led)) ; digitalWrite (led, HIGH); Serial.println (1); delay (1000);) else if (input == "O") (digitalWrite (led, LOW); Serial.println (0); delay (1000) ;) else if (vstup == "T") (analogRead (led); Serial.println (0); delay (1000);)))

Krok 2. Vytvorte online databázu

Na ukladanie údajov musíme použiť „online mediátor“, ktorý bude slúžiť ako most medzi doskou Arduino a našou aplikáciou HUB. Preto sme zvolili bezplatný hosting Databázy, ktorý bude pracovať v smere ukladania dát prijatých z dosky Arduino a príkazov na ňu odoslaných.

Najľahšou voľbou v našom prípade sú základne Údaje MySQL od je bezplatný a bežne sa bežne používa. V nižšie priloženom archíve zistíte, že obsahuje iba dve tabuľky. Najprv musíte uložiť príkazy, potom ich poslať na dosku a druhou tabuľkou je získať výstupy dosky Arduino a obnoviť ich na neskoršie použitie.

Ako hostingovú stránku si môžete vybrať freemysqlhosting.net. Online PHP MyAdmin nájdete na odkaze - phpmyadmin.co. Viac informácií nájdete aj na phpmyadmin.net.

Krok 3. Vytvorenie rozbočovača C #

V tomto kroku vytvoríme rozbočovač, ktorý je možné považovať za vstupný filter v počítači PC, aby sa najskôr preniesli údaje, ktoré ním prešli, a potom ich odoslali na dosku Arduino cez sériový port a naopak.

Rozhranie tohto rozbočovača je veľmi jednoduché, obsahuje iba dve textové polia, ktoré zobrazujú stav každej „transakcie“, prenáša údaje do rozbočovača (odosielať a prijímať).

Poznámka. Rozbočovač musí byť vždy spustený, ak chcete pracovať s doskou Arduino cez internet.

Krok 4. Vytvorte webové rozhranie

Nakoniec sme sa dostali k najlepšej časti tutoriálu.

Vytvoril som webovú aplikáciu založenú na technológii Asp.net C # s responzívnym rozhraním, ktoré je možné spustiť na akomkoľvek zariadení. Táto webová aplikácia sa zaoberá iba online databázou a nevie, že na druhej strane je nejaký druh dosky.

S týmto rozhraním môžete klasifikovať svoje elektronické súčiastky pripojené k Arduinu. Kliknutím na ich zapnutie a vypnutie jednoducho ukladáte svoje údaje online.

Príklad

Stlačením zeleného (ZAPNUTÉ) tlačidlo v sekcii Obývačka (Sála - hore na obrázku) odošlete cez internet pokyn rozsvietiť svetlo v obývačke vášho domu. Rozbočovač, ktorý môže byť na druhom konci sveta, teda prevezme indikáciu a spracuje ho s elektronickým obvodom na báze Arduino vo vašej domácnosti.

Chránené prázdne miesto BtnHallOn_Click (odosielateľ objektu, EventArgs e) (AddTempOrders ("I"); // odoslanie písmena "I" do Arduina na otvorenie svetla Hall)

Krok 5. Stiahnite si projekt

Je načase vyskúšať si všetko sami a vytvoriť si vlastný projekt.

Dúfam, že vám to všetko bude užitočné. Prajem vám skvelé projekty!

Špeciálne špeciality - pridajte sa k radom Blinkers!
Dnes, o 5 minút, nastavíme ovládanie ESP8266 z vášho smartfónu (iOS alebo Android) pomocou nového cloudová služba Blikať. Video a detaily pod strihom.


Nainštalujte si aplikáciu Blynk do svojho smartfónu

Zaregistrujte sa v aplikácii a vytvorte nový projekt.

Zadajte napríklad názov projektu ESP8266... V poli Hardvérový model vyber si ESP8266... (dúfame, že si všimnete pôsobivý zoznam podporovaného hardvéru) Automaticky generované Autentický token pošlite do svojej schránky.

Po stlačení tlačidla Vytvoriť zobrazí sa vám prázdne pole na navrhnutie používateľského rozhrania vášho ovládacieho panela ESP8266.

Kliknite vpravo hore na znamienko plus - zobrazí sa panel s nástrojmi Widget Box na pridanie miniaplikácií na hlavný panel. Je potrebné poznamenať, že zoznam miniaplikácií sa bude stále rozrastať.

Na vyskúšanie vyberte typ miniaplikácie Tlačidlo- táto miniaplikácia bude okamžite pridaná na váš panel. Upravte ho jediným dotykom. Názov môžete nechať prázdny, trochu napravo si môžete vybrať farbu indikátora v poli VÝSTUPNÝ PIN vyberte vpravo Digitálne, a vľavo je ľubovoľný voľný špendlík GPIO... Dole prepnite typ tlačidla na Prepnúť.

Ďalej nainštalujte knižnicu Blynk do Arduino IDE. Pomôžu vám s tým oficiálne pokyny. Najviac si môžete vziať aj knižnicu Najnovšia verzia priamo z úložiska a nainštalujte ručne. Ďalej vyberte príklad ESP8266_Standalone a napíš doň Autentický token ktoré sme dostali poštou, SSID a heslo tvoj WiFi siete... Zostavte a nahrajte skicu do ESP8266.

Predtým vynašiel koleso na stavbu monitorovacích zariadení Arduino.

Bolo to zaujímavé.

/ * - Nový projekt - Tento zdrojový kód grafického používateľského rozhrania bol automaticky vygenerovaný editorom RemoteXY. Ak chcete zostaviť tento kód pomocou knižnice RemoteXY 2.3.5 alebo novšej verzie, stiahnite si odkaz http://remotexy.com/en/library/ Ak sa chcete pripojiť pomocou mobilnej aplikácie RemoteXY pomocou odkazu http://remotexy.com/en/download/ - pre ANDROID 4.3.1 alebo novšia verzia; - pre iOS 1.3.5 alebo novšiu verziu; Tento zdrojový kód je bezplatný softvér; môžete ho ďalej distribuovať a / alebo upravovať podľa licenčného ustanovenia GNU Lesser General Public License vydaného Free Software Foundation; buď verziu 2.1 licencie, alebo (podľa vášho výberu) akúkoľvek novšiu verziu. */////////////////////////////////////////////////// // RemoteXY zahrnúť knižnica // ////////////////////////////////////////////////// // určujúce režim pripojenia a pripojenie knižnice RemoteXY #define REMOTEXY_MODE__ESP8266_HARDSERIAL_CLOUD #include // nastavenia pripojenia #define REMOTEXY_SERIAL Serial #define REMOTEXY_SERIAL_SPEED 9600 #define REMOTEXY_WIFI_SSID "***********" #define REMOTEXY_WIFI_PASSWORD "***********" #define REM #define REMOTEXY_CLOUD_PORT 6376 #define REMOTEXY_CLOUD_TOKEN "*************************" #include // Pridanie knižnice DHT11 dht11 DHT; // Deklarovanie premennej triedy dht11 #define DHT11_PIN 7 // Senzor DHT11 je pripojený k digitálnemu pinu číslo 4 const int analogSignal = A3; // pripojenie analógového signálneho pinu const int digitalSignal = 8; // pripojenie digitálneho signálneho kolíka boolean noGas; // premenná na ukladanie hodnoty prítomnosti plynu int plyn = 0; // premenná na ukladanie množstva plynového plaváka hukot = 0; // premenná na ukladanie vlhkosti float temp = 0; // premenná na ukladanie teploty int chk; // premenná na ukladanie chyby DHT char msgBuffer; // konfigurácia rozhrania #pragma pack (push, 1) uint8_t RemoteXY_CONF = (255,1,0,24,0,74,0,8,13,2, 2,0,38,44,22,11,7, 81,22,11, 2,26,31,31,79,78,0,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,16,5,20,5,38,23,20,5,2,26,11,67, 4, 63, 6, 20, 5, 39, 52, 20, 5, 2, 26, 11); // štruktúra definuje všetky premenné štruktúry vášho riadiaceho rozhrania (// vstupná premenná uint8_t switch_1; // = 1, ak je prepínač povolený a = 0, ak je deaktivovaný // výstupná premenná int8_t úroveň_1; // = úroveň 0..100 pozícia int8_t úroveň_2; / / = 0..100 úroveň polohy char text_1; // = reťazec UTF8 s nulovým zakončením char text_2; // = reťazec UTF8 s nulovým zakončením // iná premenná uint8_t connect_flag; // = 1, ak je zapojený vodič, else = 0) RemoteXY; #pragma pack (pop) ///////////////////////////////////////////////////// /KONIEC RemoteXY obsahuje // //////////////////////////////////////////////// // /// definovať PIN_SWITCH_1 13 neplatné nastavenie () (RemoteXY_Init (); pinMode (PIN_SWITCH_1, VÝSTUP); // TODO nastavíte kód) void loop () (RemoteXY_Handler (); digitalWrite (PIN_SWITCH_1, (RemoteXY.switch_1 == 0)? NÍZKA: HIGH); noGas = digitalRead (digitalSignal); // odčítajte hodnotu prítomnosti plynného plynu = analogRead (analogSignal); // a jeho množstvo chk = DHT.read (DHT11_PIN); hum = DHT.humidity; temp = DHT .temperature; RemoteXY.level_1 = hum; RemoteXY.level_2 = temp; dtostrf (hum, 6, 2, RemoteXY.text_1); dtostrf (temp, 6, 2, RemoteXY.text_2); // TODO loop code / / use štruktúra RemoteXY na prenos údajov)

Používame sendvič z dosiek.

Zrazu všetko hneď fungovalo:

Od okamihu, keď bola cloudová služba RemoteXY objavená, k fotografii vyššie uplynula hodina.

Vlastnosti práce s RemoteXY.

1. Všetko je veľmi jednoduché. Je to dobré svojim spôsobom. Napríklad Blynk a Cayenne pravdepodobne nebudú schopní prísť na to od nuly za hodinu. Ak chcete používať napríklad „KaScada Cloud“, musíte si kúpiť špeciálny.

2. Na strane servera nie je žiadne spracovanie a ukladanie údajov: neexistuje žiadne spojenie s doskou - aplikácia visí „Žiadne pripojenie“.

3. Iba 5 dizajnových prvkov je zadarmo, ale aplikácia PRO nestojí viac ako pol dňa stráveného času.

4. Z jednej aplikácie je možné komunikovať s doskou prostredníctvom cloudového servera aj priamo. Pravda, samozrejme, nie je súčasne. A nedá sa rýchlo prepnúť - musíte zmeniť náčrt v doske. Rovnako je možné komunikovať medzi smartfónom a doskou cez Bluetooth a USB.

V minulom roku spoločnosť Microsoft oznámila cloudový backend pre správu inteligentných zariadení a integrovanej elektroniky. Azure IoT Hub vám umožňuje prispôsobiť interakcie zariadenia na zariadenie s minimálnym kódovaním a integrovať ich do vašich projektov založených na Azure. Aby sme zistili, ako to funguje, analyzujeme jednoduchú úlohu - odosielanie údajov zo senzora pripojeného k ovládaču Arduino do cloudu.

Pred nami je teda najjednoduchšie zariadenie. Skladá sa z ovládača, malého breadboardu, fotorezistora (svetelný senzor) a stabilizačného odporu. Ako ovládač sa používa Genuino MKR1000 so vstavaným Wi-Fi-ak chcete to isté, bude to stáť 35 dolárov. Doska je napájaná micro USB.


V zásade by mohol byť nainštalovaný akýkoľvek snímač - to nijako neovplyvní naše budúce plány. Nasledujúci obrázok ukazuje schému, pomocou ktorej bude naše zariadenie komunikovať s cloudom.



Zariadenie odosiela údaje do IoT Hub, kde po prechode službou Stream Analytics vstúpi do databázy a spracuje sa pomocou Power BI. Všetkým týmto veciam sa budeme venovať trochu neskôr, ale zatiaľ začnime so základmi.

INFO

Na konci článku sú zdroje pre výsledný projekt. Nezabudnite si ich pozrieť, ak plánujete urobiť niečo podobné.

IoT Hub je oficiálne preložený do ruštiny ako „Centrum internetu vecí“. Môže prijímať údaje zo zariadení a odosielať im správy alebo príkazy.

Okrem IoT Hub môže so zariadeniami interagovať aj ďalšia služba s názvom Event Hub. Líši sa vo väčšom priepustnosť, ale odosiela správy iba jedným smerom - zo zariadenia do cloudu. IoT Hub podporuje protokoly ako MQTT, MQTT cez WebSocket, AMQP, AMQP cez WebSocket a HTTP. Event Hub podporuje AMQP, AMQP cez WebSocket a HTTP. Viac informácií o rozdieloch medzi rozbočovačmi a o tom, ako ich spoločne používať, nájdete na webovej stránke spoločnosti Microsoft. Budeme študovať IoT Hub (je to zaujímavejšie).