Облак сервер за контрола на Arduino. Развој на IoT уреди на Arduino користејќи ја услугата myDevices Cayenne. Способност за развој на безжични IoT уреди

Претходно, повторно го измислив тркалото за создавање уред Arduino за следење.

Беше интересно.

/* -- Нов проект -- Овој изворен код на графичкиот кориснички интерфејс е генериран автоматски од уредникот RemoteXY. За да го составите овој код користејќи RemoteXY библиотека 2.3.5 или понова верзија, преземете преку врска http://remotexy.com/en/library/ За да се поврзете користејќи ја мобилната апликација RemoteXY со врска http://remotexy.com/en/download/ - за ANDROID 4.3.1 или понова верзија; // Додадете ја библиотеката DHT11 dht11 DHT; // Декларирање на променлива од класа dht11 #define DHT11_PIN 7 // Сензорот DHT11 е поврзан со дигитален пин број 4 const int analogSignal = A3; //поврзување на пин за аналоген сигнал const int digitalSignal = 8; //поврзи дигитален сигнален пин бул noGas; //променлива за складирање на вредноста на присуството на гас инт гас = 0; //променлива за складирање на количината на гас плови hum = 0; //променлива за складирање на влажност пловечка температура = 0; //променлива за складирање на температура int chk; //променлива за складирање на грешката DHT char msgBuffer; // конфигурација на интерфејс #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); // структурата ги дефинира сите променливи на структурата на вашиот контролен интерфејс ( // влезна променлива uint8_t switch_1; // =1 ако прекинувачот е вклучен и =0 ако е оневозможен // излезна променлива int8_t ниво_1; // =0..100 ниво Позиција int8_t level_2; else =0 ) RemoteXY; #прагма пакет (поп) /////////////////////////////////////////////////////////////////// / END RemoteXY вклучуваат // //////////////////////////////////////////////////////////////// #define PIN_SWITCH_1 13 void setup() ( RemoteXY_Init (); pinMode (PIN_SWITCH_1, OUTPUT); // ДА ГО ПОСТАВИТЕ кодот ) void loop() ( RemoteXY_Handler (); digitalWrite(PIN_SWITCH_1,LO.=PIN_SWITCH_1,LO. : ВИСОКГАС = дигиталенСигнал //прочитај го присуството на гасот = аналоген сигнал // и неговата количина chk = DHT .level_2 = temp / користете ја структурата RemoteXY за пренос на податоци)

Ние користиме сендвич од табла.

Неочекувано, сè функционираше веднаш:

Помина еден час од откривањето на услугата за облак RemoteXY до горната фотографија.

Карактеристики на работа со RemoteXY.

1. Сè е многу едноставно. На свој начин ова е добро. Со Blynk и Cayenne, на пример, малку е веројатно дека ќе можете да го сфатите од нула за еден час. За да го користите, на пример, „KaScada Cloud“ треба да купите посебен уред.

2. Нема обработка и складирање на податоци на страната на серверот: нема врска со таблата - апликацијата прикажува „Нема врска“.

3. Само 5 дизајнерски елементи се бесплатни, но апликацијата PRO не чини повеќе од половина ден поминато време.

4. Можно е да се комуницира со таблата од една апликација и преку облак сервер и директно. Точно, не во исто време, се разбира. И невозможно е брзо да се префрлите - треба да ја смените скицата на таблата. Исто така, можно е да се комуницира помеѓу паметниот телефон и плочата преку Bluetooth и USB.

ESPers - придружете се во редовите на блинкерите!
Денес ќе поставиме контрола на ESP8266 од вашиот паметен телефон (iOS или Android) за 5 минути користејќи ја новата облак услуга Blink. Видео и детали под сечењето.


Инсталирајте ја апликацијата Blynk на вашиот паметен телефон

Регистрирајте се во апликацијата и креирајте нов проект.

Внесете име на проект, на пример ESP8266. Во полето Хардверски моделизберете ESP8266. (се надеваме дека ќе ја забележите импресивната листа на поддржан хардвер) Автоматски генериран Токен за авторизацијаиспратете до вашето поштенско сандаче.

По притискање на копчето КреирајЌе имате пристап до празно поле за дизајнирање на интерфејсот на вашата контролна табла ESP8266.

Кликнете на знакот плус во горниот десен агол - ќе се појави лента со алатки Кутија со виџетиза да додадете виџети на вашата контролна табла. Вреди да се напомене дека списокот на виџети ќе продолжи да расте.

За тестирање, изберете го типот на графичка контрола Копче— овој додаток веднаш ќе биде додаден на вашиот панел. Уредете го со еден допир. Не мора да го пополнувате името, само десно можете да ја изберете бојата на индикаторот во полето ИЗЛЕЗЕН ПИНизберете од десната страна Дигитален, а лево е кој било слободен пин GPIO. Подолу, префрлете го типот на копче на Префрли.

Следно, инсталирајте ја библиотеката Blynk во Arduino IDE. Официјалните упатства ќе ви помогнат во ова. Можете исто така да ја земете најновата верзија на библиотеката директно од складиштето и да ја инсталирате рачно. Следно, изберете пример ESP8266_Standaloneи напишете во него Токен за авторизацијакои ги добивме по пошта, SSID и лозинкавашата WiFi мрежа. Компилирајте и поставете ја скицата на ESP8266.

Размислував многу да најдам евтино решение за поврзување и контрола на Arduino преку интернет без да користам никаков штит за етернет или дури и каков било модул за WI-FI. По истражувањето, открив дека единствениот начин да се комуницира со микроконтролерот Arduino е преку неговата сериска порта, па затоа создадов едноставна апликација за C# прозорец како HUB за работа со сериската порта за испраќање и примање податоци на плочата.

Оваа HUB апликација е веќе поврзана на Интернет преку вашиот персонален компјутер и помага да се испраќаат и примаат податоци помеѓу микроконтролерот и базата на податоци на облак, покрај складирањето на самите податоци во онлајн базата на податоци MySQL.

Најпрво, морав да започнам со мал пример кој ми овозможува да ја тестирам примената на идејата. Во овој пример немам приклучено никаков сензор, ја користев само вградената ЛЕД на Arduino за да можам да ја вклучувам и исклучувам ЛЕД-ата на пинот 13 со испраќање на буквите "I" и "O" до сериската порта .

Внесен влез; //Ќе го складира дојдовниот знак од сериската порта. int led = 13; // Пин 13 // функцијата за поставување работи еднаш кога ќе го притиснете копчето за ресетирање или ќе ја вклучите состојбата на напојување; void setup() ( // иницијализирај дигитален пин LED_BUILTIN како излез. Serial.begin(9600); pinMode(led, OUTPUT); // Постави пин 13 како дигитален излез Serial.flush(); ) // функцијата за јамка се извршува повторно и повторно секогаш void loop() ( // Внесување низа = ""; // додека (Serial.available() > 0) // ( // влез += (char) Serial.read(); // delay(5) ; // ) состојба = digitalRead(led if (Serial.available()) (влез = Serial.read(); DigitalWrite(led, HIGH) (1000); ;)))

Чекор 2: Направете онлајн база на податоци

За да ги зачуваме податоците, мора да користиме „онлајн посредник“ кој ќе служи како мост помеѓу плочката Arduino и нашата HUB апликација. Затоа, избравме бесплатен хостинг на базата на податоци, кој ќе работи на зачувување на податоците добиени од плочката на Arduino и наредбите испратени до неа.

Наједноставниот избор во нашиот случај се базите на податоци MySQL, бидејќи ... тој е бесплатен и обично широко користен. Во архивата прикачена подолу, ќе откриете дека содржи само две табели. прво треба да ги зачувате командите, потоа да ги испратите на таблата, а втората табела е да ги добиете излезите од плочката Arduino и да ги вратите за подоцнежна употреба.

Можете да изберете freemysqlhosting.net како ваш хостинг сајт. Онлајн PHP MyAdmin може да се најде на врската - phpmyadmin.co. Повеќе информации може да најдете и на phpmyadmin.net.

Чекор 3. Создадете центар C#

Во овој чекор, ќе создадеме центар, кој може да се смета како влезен филтер на компјутерот, за прво да ги пренесе податоците што минуваат низ него, а потоа да ги испрати на плочката Arduino преку сериската порта и обратно.

Интерфејсот на овој центар е многу едноставен, содржи само две полиња за текст кои го прикажуваат статусот на секоја „трансакција“ што ги пренесува податоците на центарот (испраќање и примање).

Забелешка. Центарот мора секогаш да работи кога сакате да работите со вашата плочка Arduino преку Интернет.

Чекор 4. Направете веб-интерфејс

Конечно стигнавме до најкул дел од лекцијата.

Направив веб-апликација базирана на Asp.net C# технологија со одговорен интерфејс кој може да работи на кој било уред, оваа веб-апликација се занимава само со онлајн базата на податоци и не знае дека има табла од другата страна.

Со овој интерфејс можете да ги категоризирате вашите електронски компоненти поврзани со Arduino. Со кликнување, вклучување и исклучување, едноставно ги складирате податоците онлајн.

Пример

Со притискање на зеленото копче (ВКЛУЧЕНО) во делот „Дневна соба“ (Сала - горе на сликата), преку Интернет испраќате инструкција за вклучување на светлата во дневната соба од вашиот дом. Така, центарот, кој можеби е на другата страна на светот, ја прима инструкцијата и ја обработува користејќи електронско коло базирано на Arduino во вашиот дом.

Заштитена празнина BtnHallOn_Click(испраќач на објекти, EventArgs e) ( AddTempOrders("I"); // испраќање на буквата "I" до Arduino за да се отвори Hall light)

Чекор 5. Преземете го проектот

Време е сами да го пробате и да направите свој проект.

Се надевам дека сето ова ви е корисно. Ви посакувам одлични проекти!

Минатата година, Мајкрософт објави облак за управување со паметни апарати и интегрирана електроника. Azure IoT Hub ви овозможува да поставите комуникација помеѓу уредите со минимум програмирање и да ја интегрирате во вашите проекти базирани на Azure. За да видиме како функционира ова, ќе погледнеме едноставна задача - испраќање читања од сензор поврзан со контролер на Arduino до облакот.

Значи, тука имаме едноставен уред. Се состои од контролер, мала плоча за леб, фотоотпорник (сензор за светлина) и отпорник за стабилизација. Контролерот е Genuino MKR1000 со вграден Wi-Fi - ако го сакате истиот, ќе чини 35 долари. Плочката се напојува со микро-USB.


Во принцип, може да се инсталира кој било сензор - тоа на ниту еден начин нема да влијае на нашите идни планови. Сликата подолу го прикажува дијаграмот со кој нашиот уред ќе комуницира со облакот.



Уредот испраќа податоци до IoT Hub, каде што, откако ќе помине низ услугата Stream Analytics, влегува во базата на податоци и се обработува со помош на Power BI. Со сите овие работи ќе се занимаваме малку подоцна, но засега да почнеме со основите.

ИНФОРМАЦИИ

На крајот од статијата има извори на добиениот проект. Не заборавајте да ги проверите дали планирате да направите нешто слично.

IoT Hub е официјално преведен на руски како „Интернет центар на нештата“. Може и да прима податоци од уреди и да испраќа пораки или команди до нив.

Покрај IoT Hub, друга услуга наречена Event Hub може да комуницира со уреди. Има поголема пропусност, но испраќа пораки само во една насока - од уредот до облакот. IoT Hub поддржува протоколи како што се MQTT, MQTT преку WebSocket, AMQP, AMQP преку WebSocket и HTTP. Event Hub поддржува AMQP, AMQP преку WebSocket и HTTP. Можете да прочитате повеќе за разликата помеѓу хабовите и како да ги користите заедно на веб-локацијата на Microsoft. Ќе го проучуваме IoT Hub (поинтересен е).

Програмирањето на различни микроконтролери и микрокомпјутери, како Arduino, Raspberry Pi и слично, е една од најинтересните и најрелевантните активности. Дизајнирањето уреди на овие платформи го надмина хобито на гиковите и професионалните програмери: овие табли се користат за создавање роботи, машински алати, квадкоптери, IoT уреди (паметен дом), сервери, па дури и Hi-Fi аудио интерфејси.

За жал, пазарот на микроконтролери е многу сегментиран. Нивното програмирање се врши преку различни средини и интерфејси. Проектот наречен Blynk е повикан да ја спаси ситуацијата.

Blynk е услуга базирана на облак за креирање графички контролни панели и е погодна за широк опсег на микрокомпјутери и микроконтролери. Онаму каде што претходно требаше да напишете целосен интерфејс за влез/излез или да купите дополнителни модули за собирање информации од сензорите, сега можете да поминете со само пет минути работа во Blynk.

За да креирате сопствен проект контролиран преку Blynk, ви треба многу малку: инсталирајте ја апликацијата (достапни се верзиите за iOS и Android) или користете ја веб-формата. Овде ќе треба да се регистрирате во еден чекор - внесете ја вашата е-пошта и лозинка. Регистрацијата е неопходна поради фактот што Blynk е облак решение и без него секој корисник може да добие контрола над хардверот.

Заинтересираните можат локално да го инсталираат серверот. Во овој случај, не е потребен пристап до Интернет.

Апликацијата ќе бара одредени вештини за работа. Прво треба да го спарите вашиот компјутер или паметен телефон со програмабилната плоча. Програмата поддржува поврзување со табли преку различни различни интерфејси:

  • USB (сериски),
  • Adafruit CC3000 WiFi,
  • Официјален Arduino WiFi Shield,
  • Официјален етернет штит (W5100),
  • ENC28J60,
  • ESP8266 (WiFi модем),
  • SeeedStudio Ethernet Shield V2.0 (W5200),
  • RN-XV WiFly,
  • ESP8266.

Покрај поставувањето на врската, треба само правилно да ги поврзете модулите на идниот уред. По ова, во работната форма на апликацијата треба да додадете достапни модули (виџети), да ги конфигурирате потребните пински адреси и да ги наведете саканите параметри (ако е потребно, можете да напишете сопствен код). Патем, drag’n’drop се користи за создавање графичка контрола или програма. Има многу симулатори на контролни уреди достапни за контрола - прекинувачи, лизгачи, дисплеи, за секоја од нив можете да напишете своја сопствена логика. Постојат посебни форми за прикажување и организирање на информации од потребните сензори во форма на графикони.

Така, платформата е погодна и за почетници и за понапредни корисници кои не сакаат да губат време за пишување апликации за управување со проекти: од читање податоци од метеоролошка станица и контрола на паметен дом до контролирање роботи.

Сите информации потребни за да започнете се објавени на официјалната веб-страница. Blynk е , така што секој може да придонесе за создавање на нови функции. Во моментов, користењето на услугата е потполно бесплатно, во иднина ситуацијата донекаде ќе се промени - пред се поради монетизацијата на новите функции. Така, веќе е познато дека пристапот до GPIO интерфејсите ќе се купува како купување во апликација.

Во моментов Blynk работи со следните табли:

  • Arduino: Uno, Nano, Mini, Pro Mini, Pro Micro, Mega, YÚN (Мост), Due;
  • Малина Пи;
  • Честички (ex Spark Core);
  • ESP8266;
  • TinyDuino (CC3000);
  • Wicked WildFire (CC3000).