Debesų paslaugos, skirtos „Arduino“ valdymui. „IoT“ įrenginių kūrimas „Arduino“ naudojant „myDevices Cayenne“ paslaugą

ESPers – prisijunk prie mirksinčiųjų gretų!
Šiandien ESP8266 valdymą iš jūsų išmaniojo telefono („iOS“ arba „Android“) nustatysime per 5 minutes, naudodami naują debesies paslaugą „Blink“. Vaizdo įrašas ir detalės po pjūviu.


Įdiekite „Blynk“ programą savo išmaniajame telefone

Užsiregistruokite programoje ir sukurkite naują projektą.

Pavyzdžiui, įveskite projekto pavadinimą ESP8266. Lauke Aparatūros modelis pasirinkite ESP8266. (tikiuosi pastebėsite įspūdingą palaikomos aparatinės įrangos sąrašą) Sugeneruota automatiškai Auth Token siųsti į savo pašto dėžutę.

Paspaudus mygtuką Sukurti Turėsite prieigą prie tuščio lauko ESP8266 valdymo pulto vartotojo sąsajai kurti.

Spustelėkite pliuso ženklą viršutiniame dešiniajame kampe – atsiras įrankių juosta Valdiklio dėžutė norėdami pridėti valdiklių prie prietaisų skydelio. Verta paminėti, kad valdiklių sąrašas ir toliau augs.

Norėdami išbandyti, pasirinkite valdiklio tipą Mygtukas- šis valdiklis bus nedelsiant įtrauktas į jūsų skydelį. Redaguokite jį vienu prisilietimu. Vardo įvesti nereikia, tiesiog dešinėje galite pasirinkti indikatoriaus spalvą laukelyje IŠVESTIES PIN kodas pasirinkite dešinėje Skaitmeninis, o kairėje yra bet koks nemokamas smeigtukas GPIO. Žemiau perjunkite mygtuko tipą į Jungiklis.

Tada įdiekite „Blynk“ biblioteką „Arduino IDE“. Oficialios instrukcijos jums padės tai padaryti. Taip pat galite pasiimti naujausią bibliotekos versiją tiesiai iš saugyklos ir įdiegti ją rankiniu būdu. Tada pasirinkite pavyzdį ESP8266_Atskiras ir parašykite jame Auth Token kurį gavome paštu, SSID ir slaptažodis savo WiFi tinklą. Sukompiliuokite ir įkelkite eskizą į ESP8266.

Prisimenant senus laikus, kai Wire biblioteka dar buvo neapdorota, Arduino platforma buvo tik mikrovaldiklis su tam tikra aparatūra. Dabar turime vienos plokštės kompiuterius ir pigius mikrovaldiklius su įmontuotu „Wi-Fi“, pvz., ESP32. Tačiau visada reikia padaryti įterptųjų sistemų programavimą ir kūrimą labiau prieinamą ir plačiau palaikomą tarp šimtų šiandien prieinamų įrenginių.



Taigi, neseniai „Embedded Linux“ konferencijoje „Arduino“ įkūrėjas Massimo Banzi paskelbė apie „Arduino“ atsakymą į debesies koncepciją – internetinę kūrimo aplinką ir didelę prijungtų įrenginių ekosistemą. Visa tai vadinama Arduino Create ir yra internetinė IDE, leidžianti bet kuriam kūrėjui kurti įterptųjų sistemų projektus ir valdyti juos nuotoliniu būdu.


Kaip parodyta Massimo pristatyme, pagrindinė „Arduino Create“ idėja yra prijungti įrenginius prie interneto ir įgalinti nuotolinį programavimą bei programinę-aparatinę įrangą belaidžiu ryšiu. Kadangi tai yra Arduino ekosistema, tam, kad tai būtų įmanoma, buvo panaudota daugybė bibliotekų, prieinamų šimtams skirtingų platformų. Šiuo metu palaikoma daug plokščių, įskaitant Raspberry Pi, BeagleBone ir keletą Intel IoT plokščių.


Pagrindinis šios plėtros akcentas yra platformos nepriklausomumas ir beveik visas dėmesys skiriamas naudojimo paprastumui ir sąveikai. Tai ryškus pokytis, palyginti su Arduino ekosistema prieš penkerius metus, pavyzdžiui, kai Arduino plokštės daugiausia buvo pagrįstos ATmega328p mikrovaldikliais. Po kelerių metų jau buvo galima programuoti ir įrašyti Arduino eskizus į ATtiny85 mikrovaldiklius. Nuo to laiko daug kas pasikeitė. Dabar turime „Raspberry Pi“, „Intel“ išgarsėjo daiktų interneto rinkoje, o juk turime milijoną procesorių plokščių ir sistemos lustų (SoC), skirtų išmaniesiems telefonams.


Nors kitos įmonės ir organizacijos jau prisidėjo prie internetinės Raspberry Pi ir kitų vienos plokštės kompiuterių aplinkos, tai, ką pristatė Massimo Banzi, pagaliau yra sveikintinas ir prasmingas Arduino organizacijos pokytis.


Norintiems pažiūrėti Massimo Banzi pasirodymą pateikiamas vaizdo įrašas.

Prisijungimas per RemoteXY debesies serverį leidžia valdyti įrenginį iš bet kurios pasaulio vietos, kur yra interneto prieiga.

ESP8266 modulis bus sukonfigūruotas kaip klientas, skirtas prisijungti prie WiFi prieigos taško. Prieigos taškas turi turėti prieigą prie interneto. RemoteXY biblioteka užtikrins, kad įrenginys būtų užregistruotas debesies serveryje.

Mobilioji programa prisijungs prie debesies serverio, o ne tiesiogiai prie įrenginio. Taigi įrenginys bus pasiekiamas iš bet kurios interneto vietos.

Pastaba:Šiuo metu bandomas ryšys per debesies serverį. Dėl to gali sutrikti serverio veikimas.

1 veiksmas: sukurkite GUI projektą

5 veiksmas: nustatykite ESP8266

ESP8266 moduliui reikia konfigūracijos. Galbūt jūsų modulis jau turi būtinus nustatymus pagal numatytuosius nustatymus, tačiau geriau tai patikrinti.

Ką reikia patikrinti:

  • Modulis turi programinės įrangos, palaikančios AT komandas, ne žemesnę nei v0.40 versiją;
  • Modulis sukonfigūruotas 115200 veikimo greičiui.

6 veiksmas: prijunkite ESP8266 prie Arduino Uno

Prijunkite ESP8266 prie Arduino Uno pagal toliau pateiktą schemą. Atkreipkite dėmesį, kad RX-TX kaiščiai yra sujungti kryželiu.

Kadangi ESP8266 modulio signalo lygiai yra 3,3 V, o Arduino - 5 V, signalo lygiui konvertuoti būtina naudoti varžinį įtampos daliklį.


7 veiksmas: įkelkite eskizą į „Arduino“.

Eskizas į „Arduino“ įkeliamas įprastu būdu. Tačiau kadangi ESP8266 modulis yra prijungtas prie 0 ir 1 kaiščių, programavimas tampa neįmanomas. Kompiliatorius parodys klaidą.

Prieš programuodami atjunkite laidus, einančius į ESP8266 nuo 0 ir 1 kaiščių. Atlikite programavimą. Tada vėl įdėkite kontaktus į vietą. Paspauskite Arduino atstatymo mygtuką.

Pastaba: Pirmasis ženklas, kad programavimas buvo sėkmingas, yra mėlynas ESP8266 modulio šviesos diodas, mirksintis iškart po atstatymo. Mirksi mėlynas šviesos diodas reiškia, kad „Arduino“ ir ESP8266 keičiasi duomenimis. Per šią pusę sekundės „Arduino“ sukonfigūruoja ESP8266, kad prisijungtų prie prieigos taško. Po kurio laiko šviesos diodas vėl mirksės, o tai reiškia bandymą užsiregistruoti „RemoteXY“ debesies serveryje.

8 veiksmas: prisijunkite naudodami programą mobiliesiems.

Patikrinkite ESP8266 maitinimo šaltinį

Taip pat gali būti, kad jūsų ESP8266 nepakanka maitinimo iš maitinimo šaltinio. Kai kurios Arduino plokštės turi silpną 3,3 V įtampos reguliatorių, kuris piko režimu nepajėgus tiekti 200-300 mA. Tokiu atveju Serial Monitor taip pat pamatysite komandų sekos pertrauką.

Praėjusiais metais „Microsoft“ paskelbė apie išmaniųjų prietaisų ir integruotos elektronikos valdymą debesyje. „Azure IoT Hub“ leidžia nustatyti ryšį tarp įrenginių su minimaliu programavimu ir integruoti jį į „Azure“ pagrįstus projektus. Norėdami pamatyti, kaip tai veikia, pažvelgsime į paprastą užduotį – prie Arduino valdiklio prijungto jutiklio rodmenų siuntimą į debesį.

Taigi, mes turime paprastą įrenginį. Jį sudaro valdiklis, maža duonos plokštė, fotorezistorius (šviesos jutiklis) ir stabilizuojantis rezistorius. Valdiklis yra „Genuino MKR1000“ su integruotu „Wi-Fi“ ryšiu – jei norėsite tokio pat, jis kainuos 35 USD. Plokštė maitinama mikro USB.


Iš principo būtų galima įrengti bet kokį jutiklį – tai niekaip neturės įtakos mūsų ateities planams. Žemiau esančiame paveikslėlyje parodyta schema, pagal kurią mūsų įrenginys susisieks su debesimi.



Įrenginys siunčia duomenis į IoT Hub, kur, perėjęs per Stream Analytics paslaugą, patenka į duomenų bazę ir apdorojamas naudojant Power BI. Visus šiuos dalykus nagrinėsime šiek tiek vėliau, bet kol kas pradėkime nuo pagrindų.

INFORMACIJA

Straipsnio pabaigoje pateikiami gauto projekto šaltiniai. Nepamirškite jų patikrinti, jei planuojate daryti ką nors panašaus.

„IoT Hub“ oficialiai išverstas į rusų kalbą kaip „daiktų interneto centras“. Jis gali ir priimti duomenis iš įrenginių, ir siųsti jiems žinutes ar komandas.

Be IoT Hub, kita paslauga, vadinama Event Hub, gali sąveikauti su įrenginiais. Jis turi didesnį pralaidumą, tačiau pranešimus siunčia tik viena kryptimi – iš įrenginio į debesį. „IoT Hub“ palaiko tokius protokolus kaip MQTT, MQTT per WebSocket, AMQP, AMQP per WebSocket ir HTTP. Event Hub palaiko AMQP, AMQP per WebSocket ir HTTP. Daugiau apie šakotuvų skirtumus ir jų naudojimą kartu galite perskaityti „Microsoft“ svetainėje. Išstudijuosime „IoT Hub“ (tai įdomiau).

Anksčiau aš iš naujo išradau Arduino įrenginio stebėjimo ratą.

Tai buvo įdomu.

/* -- Naujas projektas -- Šis grafinės vartotojo sąsajos šaltinio kodas buvo sukurtas automatiškai RemoteXY redaktoriaus. Norėdami sudaryti šį kodą naudodami RemoteXY biblioteką 2.3.5 ar naujesnę versiją, atsisiųskite naudodami nuorodą http://remotexy.com/en/library/ Norėdami prisijungti naudodami RemoteXY mobiliąją programėlę, naudodami nuorodą http://remotexy.com/en/download/ - for ANDROID 4.3.1 arba naujesnė versija; - iOS 1.3.5 ar naujesnei versijai; Šis šaltinio kodas yra nemokama programinė įranga; galite jį perskirstyti ir (arba) modifikuoti pagal GNU Lesser General Public License sąlygas, paskelbtas Free Software Foundation; Licencijos 2.1 versija arba (jūsų pasirinkimu) bet kuri vėlesnė versija. */ ///////////////////////////////////////////// // RemoteXY įtraukti biblioteką // /////////////////////////////////////////////// apibrėžiant ryšio režimą ir įtraukiant RemoteXY biblioteką #define REMOTEXY_MODE__ESP8266_HARDSERIAL_CLOUD #include // ryšio nustatymai #define REMOTEXY_SERIAL Serial #define REMOTEXY_SERIAL_SPEED 9600 #define REMOTEXY_WIFI_SSID "************" #define REMOTEXY_WIFI_PASSWORD "************" #define REMOTEXY_CLOUD_SERVER "cloud.re" .com" #define REMOTEXY_CLOUD_PORT 6376 #define REMOTEXY_CLOUD_TOKEN "****************************" #include // Pridėti DHT11 biblioteką dht11 DHT; // Klasės kintamojo dht11 deklaravimas #define DHT11_PIN 7 // DHT11 jutiklis prijungtas prie skaitmeninio kaiščio Nr. 4 const int analogSignal = A3; //analoginio signalo kaiščio prijungimas const int digitalSignal = 8; //prijungti skaitmeninio signalo kaištį boolean noGas; //kintamasis, skirtas saugoti dujų buvimo vertę int gas = 0; //kintamasis, skirtas saugoti dujų kiekį plūdės dūzgimas = 0; //kintamasis drėgmei saugoti plūdės temp = 0; //kintamasis temperatūrai saugoti int chk; //kintamasis klaidos saugojimui DHT char msgBuffer; // sąsajos konfigūracija #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); // struktūra apibrėžia visus jūsų valdymo sąsajos struktūros kintamuosius ( // įvesties kintamasis uint8_t switch_1; // =1, jei jungiklis įjungtas ir =0, jei išjungtas // išvesties kintamasis int8_t level_1; // =0..100 lygis position int8_t level_2; / / =0..100 level position char text_1; else =0 ) RemoteXY; #pragma pack(pop) //////////////////////////////////////////// / END RemoteXY apima // //////////////////////////////////////////// #define PIN_SWITCH_1 13 void setup() ( RemoteXY_Init (); pinMode (PIN_SWITCH_1, OUTPUT); // UŽDUOTAS sąrankos kodas ) void loop() ( RemoteXY_Handler (); digitalWrite(PIN_SWITCH_1, (RemoteXY=0s)1?LOW=. : HIGH = digitalRead (skaitmeninis signalas) = ​​analoginis (analoginis signalas) ir jo kiekis chk = DHT.temperature; .level_2 = temp / naudokite RemoteXY struktūrą duomenims perduoti)

Mes naudojame lentos sumuštinį.

Netikėtai viskas suveikė iš karto:

Nuo RemoteXY debesies paslaugos atradimo iki nuotraukos viršuje praėjo valanda.

Darbo su RemoteXY ypatybės.

1. Viskas labai paprasta. Savaip tai yra gerai. Pavyzdžiui, naudojant „Blynk“ ir „Cayenne“, mažai tikėtina, kad per valandą galėsite tai išsiaiškinti nuo nulio. Norint naudoti, pavyzdžiui, „KaScada Cloud“, reikia įsigyti specialų įrenginį.

2. Serverio pusėje nėra duomenų apdorojimo ir saugojimo: nėra ryšio su plokšte – programa rodo „Nėra ryšio“.

3. Nemokami tik 5 dizaino elementai, tačiau PRO aplikacija kainuoja ne daugiau nei pusę dienos laiko.

4. Galima bendrauti su lenta iš vienos programos tiek per debesies serverį, tiek tiesiogiai. Žinoma, ne tuo pačiu metu. Ir greitai perjungti neįmanoma - reikia pakeisti lentos eskizą. Taip pat galima susisiekti tarp išmaniojo telefono ir plokštės per Bluetooth ir USB.