Arduino-ya nəzarət etmək üçün bulud xidmətləri. IoT cihazları üçün ictimai bulud serverləri

Arduino, Raspberry Pi və bu kimi müxtəlif mikrokontrollerlərin və mikrokompüterlərin proqramlaşdırılması ən maraqlı və aktual fəaliyyətlərdən biridir. Bu platformalarda cihazların layihələndirilməsi geeks və peşəkar proqramçıların hobbisindən kənara çıxıb: bu lövhələr robotlar, dəzgahlar, kvadrokopterlər, IoT cihazları (ağıllı ev), serverlər və hətta Hi-Fi audio interfeysləri yaratmaq üçün istifadə olunur.

Təəssüf ki, mikrokontroller bazarı çox seqmentləşdirilmişdir. Onların proqramlaşdırılması müxtəlif mühitlər və interfeyslər vasitəsilə həyata keçirilir. Vəziyyəti xilas etmək üçün Blynk adlı layihə çağırılır.

Blynk təmsil edir bulud xidməti qrafik idarəetmə panelləri yaratmaq üçün və geniş çeşiddə mikrokompüterlər və mikrokontrollerlər üçün uyğundur. Əgər əvvəllər sensorlardan məlumat toplamaq üçün tam hüquqlu I/O interfeysi yazmaq və ya əlavə modullar almaq lazım idisə, indi Blynk-də beş dəqiqəlik işlə məşğul ola bilərsiniz.

Yaratmaq üçün öz layihəsi Blynk vasitəsilə idarəetmə ilə sizə çox az şey lazımdır: proqramı quraşdırın (iOS və Android üçün versiyalar mövcuddur) və ya veb formasından istifadə edin. Burada bir addımda qeydiyyatdan keçməli olacaqsınız - e-poçtunuzu və şifrənizi daxil edin. Qeydiyyat Blynk olması səbəbindən tələb olunur - bulud həlli və onsuz istənilən istifadəçi aparat üzərində nəzarəti əldə edə bilər.

Maraqlananlar serveri yerli olaraq quraşdıra bilərlər. Bu vəziyyətdə İnternetə çıxış tələb olunmur.

Tətbiq işləmək üçün müəyyən bacarıq tələb edəcəkdir. Əvvəlcə kompüterinizi və ya smartfonunuzu proqramlaşdırıla bilən lövhə ilə birləşdirməlisiniz. Proqram müxtəlif interfeyslər vasitəsilə lövhələrlə əlaqəni dəstəkləyir:

  • USB (Serial),
  • Adafruit CC3000 WiFi,
  • Rəsmi Arduino WiFi Qalxanı,
  • Rəsmi Ethernet Qalxanı (W5100),
  • ENC28J60,
  • ESP8266 (WiFi modem),
  • SeeedStudio Ethernet Shield V2.0 (W5200),
  • RN-XV WiFly,
  • ESP8266.

Bağlantının qurulmasına əlavə olaraq, yalnız gələcək cihazın modullarını düzgün birləşdirməlisiniz. Bundan sonra, tətbiqin iş formasında mövcud modulları (vidjetlər) əlavə etməlisiniz, lazımi pin ünvanlarını konfiqurasiya etməlisiniz və istədiyiniz parametrləri göstərməlisiniz (lazım olduqda, öz kodunuzu yaza bilərsiniz). Yeri gəlmişkən, drag'n'drop vidcet və ya proqram yaratmaq üçün istifadə olunur. İdarəetmə üçün çoxlu idarəetmə cihazlarının simulyatorları mövcuddur - açarlar, sürgülər, displeylər, onların hər biri üçün öz məntiqinizi yaza bilərsiniz. Tələb olunan sensorlardan məlumatları qrafiklər şəklində göstərmək və təşkil etmək üçün ayrıca formalar mövcuddur.

Beləliklə, platforma həm yeni başlayanlar, həm də layihənin idarə edilməsi üçün ərizə yazmağa vaxt sərf etmək istəməyən daha qabaqcıl istifadəçilər üçün uyğundur: meteoroloji stansiyadan məlumatları oxumaqdan və idarəetmədən tutmuş. ağıllı ev robotları idarə etməzdən əvvəl.

Başlamaq üçün lazım olan bütün məlumatlar rəsmi internet saytında yerləşdirilib. Blynk bir , ona görə də hər kəs yeni funksiyaların yaradılmasına töhfə verə bilər. Aktiv Bu an Xidmətdən istifadə tamamilə pulsuzdur, gələcəkdə vəziyyət bir qədər dəyişəcək - ilk növbədə yeni funksiyaların monetizasiyası hesabına. Beləliklə, GPIO interfeyslərinə girişin proqramdaxili alış kimi alınacağı artıq məlumdur.

Hal-hazırda Blynk aşağıdakı lövhələrlə işləyir:

  • Arduino: Uno, Nano, Mini, Pro Mini, Pro Micro, Mega, YÚN (körpü), vaxtı;
  • Raspberry Pi;
  • Hissəcik (keçmiş Spark Core);
  • ESP8266;
  • TinyDuino (CC3000);
  • Wicked WildFire (CC3000).

Gözəl bir şey - ESP8266. Yetər güclü prosessor, çoxlu yaddaş, quraşdırılmış WiFi nəzarətçi. ESP32, əlbəttə ki, daha yaxşıdır, lakin həm də xeyli baha başa gəlir. Amma indi onlar haqqında danışmırıq. Daha doğrusu, əslində onlar haqqında deyil. ESP-də demək olar ki, hər hansı bir ev avtomatlaşdırmasını qurmaq çox asandır uzaqdan nəzarət və smartfon və ya kompüterdən idarə edin. Belə bir cihazın nümunəsi bu saytdadır. Bir problem, belə bir cihazla işləmək yalnız ondan deyil ev şəbəkəsi, və planetin istənilən yerindən (əlbəttə ki, İnternetə çıxışın olduğu yerdə) sizə bir növ server lazımdır - cihazdan mesajları qəbul edəcək və onları sizə ötürəcək və əksinə. Əlbəttə ki, birbaşa ünsiyyət üçün variantlar var, amma həyata keçirilməsinin mürəkkəbliyi və ya yüksək qiymətə görə burada onları nəzərdən keçirməyəcəyəm.

Bu məqalədə verilən siyahı tam, daha az unikal görünmür, mən sadəcə müəyyən pulsuz xidmətlərin imkanlarını təhlil etməyə və strukturlaşdırmağa çalışdım. İlk növbədə özünüz üçün, amma başqası üçün faydalı olduğu ortaya çıxarsa, sağlamlığınız üçün istifadə edin. Mən özüm üçün ictimai MQTT serveri axtararkən bir çox internet resurslarını axtardım. Mən ilk növbədə esp8266.ru saytına baxdım, amma təəssüf ki, oradakı xidmətlərin yarısı ya artıq işləmir, ya da bu və ya digər şəkildə şəxsən mənə uyğun gəlmir. Burada yazılanların hamısı ilk növbədə mənimdir. Şəxsi təcrübə Bu xidmətlərlə təcrübəniz tamamilə fərqli ola bilər. Əgər hər hansı digər oxşar xidmətləri bilirsinizsə, şərhlərdə və ya e-poçt vasitəsilə yazın (poçt və digər kontaktlar saytın başlığının yuxarı sağ küncündə yerləşir), mən də yoxlayıb siyahıya əlavə etməyə çalışacağam.

MQTT brokerləri

MQTT protokolu bəlkə də bir yol axtararkən axtarış sistemlərində rastlaşdığınız ilk şeydir. uzaqdan nəzarət müxtəlif "ağıllı şeylər". Bunun ən sadə protokol olduğuna zəmanət verə bilmərəm (sadəcə müqayisə etmək üçün heç nəyim yoxdur, birtəhər dərhal qərar verdim), amma şəxsən mənim üçün heç bir çətinlik yaratmadı. Çoxlu nümunələr var. Arduino IDE üçün birdən çox hazır kitabxana var, necə deyərlər, “zövqünüzə görə seçin”. Həm smartfon üçün, həm də qədim planşetdən hazırlanmış idarəetmə paneli üçün seçim etmək üçün kifayət qədər mobil proqramlar var. Beləliklə, bu, yəqin ki, uzaqdan idarəetməni həyata keçirmək üçün ən populyar seçimdir. Çox sayda bulud serveri var, onlara MQTT brokerləri deyilir. Mən burada protokolun və serverlərin iş prinsipini nəzərə almayacağam, bu məlumat digər saytlarda kifayət qədərdir;

CloudMQTT.com

Bu xidmətlə başladım. Sadəcə ona görə ki, MQTT protokolu ilə işləməyin demək olar ki, bütün nümunələri ona əsaslanır. Xidmət olduqca rahat və sadədir, hər şey intuitivdir. 2018-ci ildə xidmətə pulsuz icazə verildi tarif planı 10-a qədər cihazı birləşdirmək, mənə çox uyğun gəlirdi. Bununla belə, 2018-ci ilin sonuna qədər xidmət sahibləri öz siyasətlərini yenidən nəzərdən keçirdilər və indi pulsuz “Cute Cat” tarif planında yalnız 5 əlaqə mövcuddur. Şəxsən mənim üçün bu çox azdır. Eyni anda üç "nəzarət" cihazına qoşula bilərəm - iki smartfon və bir planşet və ESP-nin özü üçün yalnız iki əlaqə qalıb. Artıq çoxlu müxtəlif "avtomatlaşdırmalarım" var və daha çoxu planlaşdırılır. Əlbəttə ki, birində bir neçə broker nümunəsi yarada bilərsiniz hesab, baxmayaraq ki, onların üzərində Son vaxtlar məhdudiyyətlər tətbiq olundu. Ancaq bu halda, üç nəzarət cihazı hələ də hər bir nümunə üçün üç əlaqəni "yeyəcək" və siz düşməninizdə belə bir qurğu qurmaq istəməzsiniz. Ən ucuz ödənişli tarif planı olan "Humble Hedgehog" yazı zamanı ayda 5 dollara başa gəlir. Xeyr, kifayət qədər məşhur bir amfibiya məni bu cür pul ödəməyə boğur hər ay. Və imkanlar o qədər də böyük deyil - 25 əlaqə. Ona görə də biz başqa variantlar axtarmalı olduq.

pros: rahat və sadə

Minuslar: pulsuz planda yalnız 5 əlaqə

flespi.io

Uzun müddət mqtt.flespi.io brokerindən istifadə etdim. Bu məni cəlb etdi, çünki onunla işləməyə başladığım vaxt eyni anda 100-ə qədər rəqabətli əlaqəyə və böyük həcmdə ötürülən və saxlanılan mesajlara icazə verdi. Möhtəşəm! Bununla belə, xidmət CloudMQTT qədər rahat deyil. İdarəetmə paneli çox rahat deyil (təkmilləşdirilsə də), giriş hüquqlarını təyin etmək ilk baxışdan aydın deyil, həm cihazların, həm də smartfonların avtorizasiyası məhdud etibarlılıq müddəti olan tokenlərə əsaslanır. Mənə lazım olan bəzi funksiyalar yoxdur və ya onlardan necə istifadə edəcəyimi tapmadım. Məsələn, saxlanılan mesajların verilənlər bazasından necə silinəcəyini hələ də tapa bilməmişəm. Düzünü desəm, bu təkcə MQTT brokeri deyil, ona görə də bəlkə də onun bütün imkanlarını başa düşmədim. Bəzən açıq müxtəlif smartfonlar Bəzi mövzulardakı məlumatların yenilənməsi dayandırılır. Bir neçə dəfə, proqram təminatındakı səhvlər və cihazdan serverə daimi zənglər səbəbindən xidmət bir neçə saat ərzində hesabı tamamilə blokladı. Amma bütün bunları belə imkanlara görə bağışlamaq olardı. Ancaq təəssüf ki, burada da pul qazanmaq istəyi üstünlük təşkil etdi - 2019-cu ildən pulsuz tarifə 10 qoşulma limiti tətbiq edildi. Bunda təqsirli bir şey yoxdur, amma mən hələ bir hobbi və hətta olduqca şübhəli keyfiyyət xidmətləri üçün bu cür pul ödəməyə hazır deyiləm. Ümumiyyətlə, eynisini axtaracağıq, amma sədəf düymələri ilə...

pros: əvvəllər 100-ə qədər əlaqə var idi

Minuslar: rahat deyil, girişi konfiqurasiya etmək çətindir, saxlanılır paneldən çıxarıla bilməz

HiveMQ İctimai Broker

Heç bir məhdudiyyət olmadan tamamilə pulsuz ictimai broker. Ən azı üçün ana səhifə broker onlar haqqında yazmır. Ancaq böyük "AMMA"lar var - bu brokerin heç bir icazəsi yoxdur, yəni ümumiyyətlə yoxdur. Yəni cihazla sizin aranızda göndərilən bütün mesajları hər kəs oxuya bilər. Bu, yalnız temperatur və rütubətin bir göstəricisi olsaydı, bu böyük faciə olmazdı. Ancaq ağıllı bir evin uzaqdan idarə edilməsinə gəldikdə, belə bir broker əsasən artıq uyğun deyil. Axı, məsələn, heç kimin evdə hər hansı bir cihazı yandıra bilməsini və ya həyəcan siqnalını söndürə bilməsini istəməzdiniz.

pros

Minuslar

Eclipse MQTT

İcazəsiz başqa bir ictimai broker. Veb saytında yazıldığı kimi, bu broker əsasən sınaq üçün nəzərdə tutulub və saxlama və köçürmə üçün nəzərdə tutulmayıb məxfi informasiya. Serverə qoşulmaq üçün aşağıdakı parametrlərdən istifadə etməlisiniz: server iot.eclipse.org, port 1883; TLS v1.2, v1.1 və ya v1.0 üçün – port 8883. WebSockets vasitəsilə əlaqə də mövcuddur. Ümumiyyətlə, HiveMQ ilə eyni, yalnız yan görünüşdə...

pros: pulsuz, heç bir əlaqə məhdudiyyəti yoxdur

Minuslar: Yalnız uzaqdan idarəetmə olmadan sınaq və hava stansiyaları üçün uyğundur

mosquitto.org

Və icazəsiz başqa bir ictimai broker. Bunu təkrarlamağa ehtiyac yoxdur, hər şey HiveMQ və Eclipse MQTT-də olduğu kimidir. Nəzərə alın ki, bütün bu serverlərin TLS şifrələməsini dəstəkləməsi məlumatlarınızın təhlükəsiz olması demək deyil. Cihaz və server arasındakı ötürmə kanalı qorunur, lakin məlumatların özü ictimaiyyətə açıqdır.

pros: pulsuz, heç bir əlaqə məhdudiyyəti yoxdur

Minuslar: Yalnız uzaqdan idarəetmə olmadan sınaq və hava stansiyaları üçün uyğundur

IBM Cloud (Bluemix)

Bu mqtt broker deyil, bütöv bir "Əşyaların İnterneti Platforması" dır. Lakin bura mqtt brokeri də daxildir. Pulsuz “Lite” tarif planı 500-ə qədər qeydiyyatdan keçmiş cihaza və hər bir metrik üçün 200 MB məlumat əldə etməyə imkan verir. Yalnız ev üçün deyil, həm də ticarət cihazları üçün olduqca qəşəng. Ancaq həmişə olduğu kimi, "AMMA" olmadan deyil. Əvvəla, bu platformanı başa düşmək çox çətindir. Sənədlər var, amma çox var. Xeyr - ÇOX! Bağlantının necə qurulacağını az və ya çox başa düşmək üçün bir saatdan çox vaxt sərf etdim. İkincisi, platforma mövzuları ciddi şəkildə müəyyən bir formatda dərc etməyə imkan verir: “iot-2/evt/ event_id /fmt/ format_string “ . Əmrlərlə eynidir: “iot-2/cmd/ command_id /fmt/ format_string “. Və budur - heç bir azadlıq yoxdur - yəni yalnız mesaj nömrəsi və mesajın özü. Ancaq ötürülən mesajlar üçün artıq daha çox format var - "json", "xml", "txt" və "csv". Ola bilsin ki, bu yanaşma bəziləri üçün çox düzgün və əlverişli görünəcək, amma mənim üçün xoş gəlmədi. Bəli və hər şey mürəkkəbdir - görünür, çoxlu imkanlar var, amma hər kəs əvvəlcə bununla məşğul olmalı olacaq.

pros: çox böyük əlaqə məhdudiyyətləri

Minuslar: yeni başlayanlar üçün çox çətindir, mövzularda məhdudiyyətlər

mqtt.dioty.co

Bu, artıq tamamilə pulsuz bir brokerdir. sağol. Bağlantı seçimləri səhifəsində aşağıdakılar deyilir: “Bu MQTT brokeri hazırda beta-dadır. Bu beta mərhələsində ayda 50.000 mesaj limitini keçsəniz, sizdən ödəniş tələb etməyəcəyik. Bununla belə, digər istifadəçilərin xidmətinə müdaxilə etdiyiniz halda hesabınızı müvəqqəti olaraq dayandırmaq hüququmuzu özümüzdə saxlayırıq. Bu halda biz sizin xüsusi ehtiyaclarınızı və onları necə qarşılaya biləcəyimizi anlamağa çalışmaq üçün həmişə sizinlə e-poçt vasitəsilə əlaqə saxlayacağıq”. Ayda 50.000 mesaj saatda təxminən 70 mesajdır, bir cihazın sensorlardan məlumat göndərilməsi seansında 50-yə qədər mesaj dərc edə biləcəyini nəzərə alsaq, bu o qədər də çox deyil. Broker avtorizasiya və TLS bağlantısını dəstəkləyir. Qeydiyyat hesaba bağlıdır Google yazıları. Kiçik bir məhdudiyyət var - bütün mövzularınız ünvandan başlamalıdır E-poçt, xidmətdə qeydiyyatdan keçdiyiniz, məsələn: "/ [email protected]/…/…/…”. Ancaq bu problem yalnız bir smartfonda MQTT müştərilərini qurarkən (daha çox mətn yazarkən) az və ya çox əhəmiyyətlidir və hətta həmişə deyil. Məncə, bu xidmət diqqətə layiqdir. Onunla işləməyi sınamamışam, sadəcə qeydiyyatdan keçmişəm.

pros: tamamilə pulsuz

Minuslar: mövzular üçün xüsusi prefiks tələb edir, saatda təxminən 70 mesajla məhdudlaşdırın

Solace.Cloud (PubSub+)

Bu, bütöv bir IoT platforması kimi MQTT brokeri deyil. Pulsuz plan 50-yə qədər əlaqə, ayda 1 GB-a qədər ötürülən məlumat, 4 GB-a qədər saxlanılan məlumat (retianed mesajlar) imkan verir. Pis deyil. Amma hətta içində pulsuz versiyalarÇox parametrlər var - bunu "bir baxışda" başa düşmək çətindir. Ona görə də o vaxt istifadə etməmişdim. Ola bilsin ki, vaxtı gələcək, mən bunu anlayıb quracağam.

pros: 50-yə qədər əlaqə

Minuslar: Öyrənmək olduqca çətindir

myqtthub.com

Görünür, estoniyalı brokerdir. Pulsuz tarif planında o, imkan verir: 100-ə qədər istifadəçi, lakin 50-yə qədər əlaqə; 10 MB saxlanan məlumat; hər bir əlaqə üçün 50-yə qədər abunə, maksimum 250 abunə ("ev/#" abunəliyinin bir, yoxsa çoxlu olduğu aydın deyil?); Dəqiqədə 300 mesaj, lakin saatda 800-dən çox deyil və gündə 10.000-dən çox deyil. Adi (hər beş dəqiqədən bir) yazılara əsaslansaq, bu, eyni anda 34 yazıdan çox olmayacaq. Məhdudiyyətlər də var - daha ətraflı məlumat üçün xidmətin əsas səhifəsinə baxın. Məhdudiyyətlər, lakin evdə istifadə üçün olduqca real görünür. cəhd etməmişəm...

pros: 50-yə qədər əlaqə

Minuslar: mesaj məhdudiyyətləri

mqtt.by

Belarusiya brokerindən istifadə etmək asandır. Məhdudiyyətlər haqqında heç nə deyilmir. O, avtorizasiyanı dəstəkləyir, lakin bəzi mövzuları ictimai, yəni xidmətin bütün digər istifadəçiləri üçün açıq etmək mümkündür. Ancaq bəzi tətbiqlər üçün kritik ola biləcək təhlükəsiz əlaqə (TLS) üçün heç bir dəstək yoxdur. Hər dərc olunmuş mövzu “/user/username” prefiksi ilə başlamalıdır ki, bu da mobil mqtt müştərilərinin konfiqurasiyasını bir qədər çətinləşdirir, lakin əhəmiyyətli dərəcədə deyil. Müsbət tərəfi odur ki, serverdə tarix və saat ilə ictimaiyyətə açıq mövzular var ki, bu da gündə 24 saat işləyən planşet əsaslı idarəetmə paneli üçün çox əlverişlidir – eyni zamanda başqa bir saat da var (yüz on ikinci :) ). Ümumiyyətlə, sabit işlədiyi müddətcə tamamilə normal bir brokerdir.

pros: heç bir məhdudiyyət olmadan, ictimai mövzular var, öz mövzularınızı dərc edə bilərsiniz

Minuslar: SSL/TLS bağlantı şifrələməsi yoxdur

mqtt.4api.ru

Rus pulsuz broker - "biz hər kəs üçün pulsuz mqtt serverinə çıxış təmin edirik." Xidmətdə avtorizasiya və qeydiyyat vasitəsilə sosial Mediya. Görünür, çox keçməmiş ortaya çıxdı. Saytın özündə SSL sertifikatı olsa da, əlaqə parametrləri yalnız "SSL olmadan" məlumatları göstərir SSL bağlantısı Cihazlar üçün mövcud deyil. Bağlantı səhifəsində həmçinin aşağıdakılar deyilir: "Biz bu serverdən həyati əhəmiyyətli layihələr üçün istifadə etməyi tövsiyə etmirik." İdarəetmə panelində çox şey var təvazökar funksionallıq, buna görə də üçüncü tərəf proqram təminatından istifadə etməlisiniz

pros: heç bir məhdudiyyət olmadan

Minuslar: bağlantıların SSL/TLS şifrələməsi yoxdur, idarəetmə panelinin funksionallığı zəifdir

Digər xidmətlər

Sizi tək MQTT qane etməyəcək. MQTT sadə və rahatdır, lakin zamanla dəyişikliklər tarixi olmadan məlumatı "burada və indi" nəzərdən keçirməyə imkan verir. Qrafiklərə baxmaq üçün başqa xidmətlər də var ki, onları da qurmaq çətin deyil. Onlardan bəziləri aşağıda təqdim olunur.

ThingSpeak

ThingSpeak kimi mövcuddur pulsuz xidmət qeyri-kommersiya kiçik layihələr üçün (<3 миллиона сообщений в год или ~ 8 200 сообщений в день). Сервис позволяет накапливать получаемые данные в своих хранилищах, после чего их можно удобно просматривать в виде графиков. В том числе и на сторонних сайтах, .

Xidmətin özəlliklərindən biri də odur ki, onun MatLab Analytics ilə inteqrasiyası var, lakin mən nə qədər MatLab skriptləri qurmağa çalışsam da, mənim üçün heç nə alınmadı. Düzü, istəmirdim. Pulsuz hesabda xidmət dörd kanal yaratmağa imkan verir, hər bir kanal müxtəlif məlumatlarla 8 sahəyə qədər saxlaya bilər. Pulsuz hesabda başqa bir məhdudiyyət də var - məlumatları hər 15 saniyədə bir dəfədən çox dərc edə bilməzsiniz (20 saniyəlik fasilə tövsiyə olunur), bu, gündə 8200 mesaj həddini aşmaqdan "qoruma" kimidir. Prinsipcə, mənim bütün "naşirlərim" bu həddə asanlıqla uyğun gəlir, bu mənim üçün kifayətdir. Mən kifayət qədər uzun müddətdir ki, xidmətdən istifadə edirəm, MatLab istisna olmaqla, kifayət qədər rahat və sadədir. Android üçün bir neçə müştəri proqramı var, lakin MQTT ilə müqayisədə daha azdır.

pros: ESP-də istifadəsi asan, istifadəçi dostu vebsayt

Minuslar: pulsuz hesabda bir çox məhdudiyyətlər

open-monitoring.online

Bu xidmət bir qədər ThingSpeak-ə bənzəyir - siz ona eyni şəkildə məlumatları göndərə və sonra cədvəllər, qrafiklər və histoqramlar şəklində baxa bilərsiniz. İnterfeys ThingSpeak-dən daha sadədir, lakin onu konfiqurasiya etmək də çox asandır.

Əvvəlcə bu xidmət, mənim başa düşdüyüm kimi, şəxsi günəş elektrik stansiyalarının parametrlərinə nəzarət etmək üçün yaradılmışdır, lakin digər məqsədlər üçün olduqca uyğundur. Xidmət hazırda əhəmiyyətli məhdudiyyətlər olmadan hər kəs üçün əlçatandır və pulsuzdur. İndiyə qədər kəşf etdiyim yeganə məhdudiyyət, bir nəzarətçi üçün bir qrup dəyərlərin serverə dəqiqədə bir dəfədən çox göndərilə bilməməsidir. Ancaq hər bir nəzarətçi üçün dəyərlərin sayına və nəzarətçilərin sayına dair heç bir məhdudiyyət yoxdur. Məlumatların serverə göndərilməsi ArduinoIDE-də sadə bir əldə sorğusu ilə həyata keçirilir. ThingSpeak-dən fərqli olaraq, saxlanmış məlumatlara bir diaqramda baxmaq olar (bir örtüklə) və siz həmçinin ən son dəyərləri göstərmək üçün tablosunu konfiqurasiya edə bilərsiniz. Saxlanılan dəyərlərə sadə bir cədvəl şəklində də baxa bilərsiniz.

pros: ESP-də istifadəsi asan, istifadəçi dostu interfeys, demək olar ki, heç bir məhdudiyyət yoxdur

Minuslar: üçüncü tərəf saytlarında qrafikləri göstərmək üçün heç bir yol yoxdur (ThingSpeak-dan fərqli olaraq) və ya bunu necə edəcəyimi hələ tapmamışam

beebotte

Bu xidmətin əsas səhifəsində aşağıdakılar deyilir: “REST, WebSockets və MQTT-ni dəstəkləyən zəngin API istifadə edərək real vaxt rejimində hər şeyi və hər şeyi birləşdirin.” Şəxsən mən hələ bu xidmətdən istifadə etməmişəm. Təsvirdən başa düşdüyümə görə, bu, mqtt broker və thingspeak.com-un vəhşi qarışığıdır. Pulsuz rejimdə kanalların və resursların sayı məhdud deyil, lakin mesajların sayı məhduddur: gündə 0,05 milyon | Ayda 1,5 milyon. Saxlanan mesajlar üçün limitlər daha da aşağıdır: gündə 5000 | Ayda 150.000. Bundan əlavə, mesajlar silinməzdən əvvəl yalnız maksimum üç ay saxlanılır. Yəni bütün il üçün havaya baxa bilməzsən. Smartfon üçün mobil müştəri haqqında hələ heç nə bilmirəm. Qeydiyyatdan keçib. Cəhd edəcəyəm. Nəticə çıxarmaq hələ tezdir.

Blynk

“Ağıllı cihazların” uzaqdan idarə edilməsi üçün fəal şəkildə təbliğ edilən xidmət. Hətta aqressiv şəkildə deyərdim - bütün forumlarda lazım olanda və lazım olmayan yerdə yazırlar. Ümumiyyətlə, mənim şəxsi fikrimcə, bu platforma hobbilər üçün deyil, daha çox biznes üçündür. "Sərbəst rejimdə" çox az resurs verilir, bir LED yanıb-sönmək və ya bir röleyi yandırmaq istisna olmaqla. Ümumiyyətlə, mən bir dəfə cəhd etdim və ehtiyatlar dərhal tükəndi; Çox acgöz.

pros: Tapmadım

Minuslar: acgöz, yalnız bir mobil müştəri

Hələlik bu qədər. ESP-ni uzaqdan idarə etməyin başqa yollarını bilirsinizsə (mütləq mobil telefondan), xahiş edirəm mənə yazın. Müzakirə edəcəyik və bəlkə də məqaləyə əlavə edəcəyik.

RemoteXY bulud serveri vasitəsilə qoşulma sizə internetə çıxışı olan dünyanın istənilən yerindən cihazı idarə etməyə imkan verir.

ESP8266 modulu WiFi giriş nöqtəsinə qoşulmaq üçün müştəri kimi konfiqurasiya ediləcək. Giriş nöqtəsinin İnternetə çıxışı olmalıdır. RemoteXY kitabxanası cihazın bulud serverində qeydiyyatdan keçməsini təmin edəcək.

Mobil proqram birbaşa cihaza deyil, bulud serverinə qoşulacaq. Beləliklə, cihaza İnternetin istənilən yerindən daxil olmaq mümkün olacaq.

Qeyd: Hazırda bulud serveri vasitəsilə əlaqə sınaqdan keçirilir. Bu, server işində fasilələrə səbəb ola bilər.

Addım 1: GUI Layihəsi yaradın

Addım 5: ESP8266 qurun

ESP8266 modulunun konfiqurasiyaya ehtiyacı var. Bəlkə də modulunuz artıq standart olaraq lazımi parametrlərə malikdir, lakin bunu yoxlamaq daha yaxşıdır.

Yoxlanacaq şeylər:

  • Modulda v0.40-dan aşağı olmayan AT əmrləri versiyasını dəstəkləyən proqram təminatı var;
  • Modul 115200 işləmə sürəti üçün konfiqurasiya edilmişdir.

Addım 6: ESP8266-nı Arduino Uno-ya qoşun

Aşağıdakı diaqrama uyğun olaraq ESP8266-nı Arduino Uno-ya qoşun. Nəzərə alın ki, RX-TX sancaqları çarpaz işarə ilə birləşdirilir.

ESP8266 modulunun siqnal səviyyələri 3.3V, Arduino isə 5V olduğundan siqnal səviyyəsini çevirmək üçün rezistiv gərginlik bölücüdən istifadə etmək lazımdır.


Addım 7: Eskizi Arduino-ya yükləyin.

Eskiz adi şəkildə Arduino-ya yüklənir. Bununla belə, ESP8266 modulu 0 və 1 pinlərinə qoşulduğu üçün proqramlaşdırma qeyri-mümkün olur. Kompilyator səhv göstərəcək.

Proqramlaşdırmadan əvvəl ESP8266-ya gedən naqilləri 0 və 1 pinlərindən ayırın. Proqramlaşdırmanı həyata keçirin. Sonra kontaktları yerinə qoyun. Arduino sıfırlama düyməsini basın.

Qeyd: Proqramlaşdırmanın uğurlu olduğunu göstərən ilk əlamət, sıfırlamadan dərhal sonra yanıb-sönən ESP8266 modulunda mavi LED-dir. Mavi LED yanıb-sönür, Arduino və ESP8266 arasında məlumat mübadiləsi aparılır. Bu yarım saniyə ərzində Arduino ESP8266-nı giriş nöqtəsinə qoşulmaq üçün konfiqurasiya edir. Bir müddət sonra LED yenidən yanıb-sönəcək, bu, RemoteXY bulud serverində qeydiyyatdan keçmə cəhdi deməkdir.

Addım 8. Mobil proqramdan qoşulun.

ESP8266 enerji təchizatını yoxlayın

ESP8266-nın enerji təchizatından kifayət qədər gücə malik olmaması da mümkündür. Bəzi Arduino lövhələrində zəif 3,3 V gərginlik tənzimləyicisi var ki, bu da pik rejimlərdə 200-300 mA çatdırmaq iqtidarında deyil. Bu halda, Serial Monitor-da siz həmçinin əmrlərin ardıcıllığında fasilə görəcəksiniz.

Vadim Kolesnik, Tiraspol

Bulud xidmətindən istifadə edərək Arduino-da tam funksiyalı IoT cihazlarının maraqlı, asan və sürətli inkişafı

Ümumi məlumat

myDevices Əşyaların İnterneti (IoT) proqram təminatı və tətbiqləri hazırlayır və Avanquest-in bölməsidir. myDevices Cayenne, Raspberry Pi-də IoT layihələrinin sadələşdirilmiş inkişafı üçün ilk sürüklə və burax tətbiqi və bulud xidmətidir.

Bu yaxınlarda Radio Pilot portalında dərc etdim, burada Raspberry Pi (RPi) tək lövhəli kompüterdə işləyərkən sistemin əsas üstünlüklərini və imkanlarını açmağa çalışdım. Lakin Cayenne layihəsi daim inkişaf edir, tərtibatçılar istifadəçilərin istəklərinə əsaslanaraq, çatışmazlıqları və səhvləri aradan qaldıraraq tədricən yeni funksiyalar əlavə edirlər.

Arduino və Raspberry Pi-də IoT cihazlarının hazırlanması Cayenne ilə işləyərkən əsaslı şəkildə fərqlənir. Raspberry Pi-yə gəldikdə, Cayenne platformasını vizual inkişaf mühiti hesab etmək olar: biz fiziki olaraq müxtəlif periferik qurğuları Raspberry Pi lövhəsinə qoşuruq və sonra yalnız Cayenne onlayn mühitində işləyirik (biz vidjetlər, məlumatların işlənməsi, avtomatlaşdırma alqoritmlərini yazırıq).

Arduino ilə əlaqədar olaraq, Cayenne tablosuna (dashboard) yalnız sensorlardan alınan məlumatları vizuallaşdıran və müəyyən aktuatorları idarə etmək üçün istifadəçi məlumatlarını ötürən vidjetlər və idarəetmələr dəstidir. Mikrokontrollerə sensorlar, aktuatorlar, əlavə periferiyalar (məsələn, displey, ikinci klaviatura) və avtomatlaşdırma şərtlərinin işlənməsi ilə birbaşa iş verilir. Başqa sözlə, hər şey standart Arduino cihazının inkişafı ilə bağlıdır; istifadəçi proqram kodunu özü yazır, lakin Cayenne-in çevik IoT funksiyalarının layihəyə inteqrasiyası ilə. Bu, mənim fikrimcə, Cayenne-nin əsas üstünlüyüdür: sistemə dəstəklənən periferiyaların siyahısı ilə məhdudlaşmayan istənilən sensor və aktuatorları birləşdirə bilərsiniz.

İstifadəçi interfeysi və işə başlama

Sistemin istifadəçi interfeysi, parametrlər, idarəetmə üsulları və tablosunun vidjetləri baxımından, əlbəttə ki, sonuncuya xas olan bəzi unikal elementlər (məsələn, uzaq masaüstü, yaddaş vəziyyəti, prosessor) istisna olmaqla, hər şey Raspberry Pi sisteminə bənzəyir. yük). Buna görə də, sistemlə işləməyin əsaslarını başa düşmək üçün məqalələri oxumağı məsləhət görürəm. Məqalədəki bütün məlumatlar həm sistemin veb interfeysi, həm də mobil proqram interfeysi üçün aktualdır. Məqalədə dəstəklənən periferik cihazların siyahısı da var.

IoT cihazını və ya tətbiqini inkişaf etdirmək üçün bizə lazımdır:

  • Cayenne xidmətində öz hesabınızın olması (mövcud olandan istifadə edə bilərsiniz);
  • Arduino IDE-ni quraşdırın;
  • Arduino IDE-yə Cayenne funksiyalar kitabxanası əlavə edin;
  • Arduino IDE qurun: lövhəni və onun qoşulduğu COM portunu seçin;
  • Arduino-ya Ethernet Shield və ya Wi-Fi Shield genişləndirmə lövhəsini qoşun (və ya inteqrasiya olunmuş şəbəkə interfeysi olan Arduino lövhəsindən istifadə edin).

Düşünürəm ki, Arduino IDE inkişaf mühitinin quraşdırılması prosesi, həmçinin lövhə və portun seçilməsi heç bir izahata ehtiyac duymur və biz əsas məsələyə keçəcəyik.

Arduino üçün Cayenne kitabxanasını kitabxana menecerindən istifadə etməklə quraşdırmaq asan və tezdir (Şəkil 2).

Kitabxananı quraşdırdıqdan sonra onu tətbiqlərimizdə istifadə edə biləcəyik və nümunə eskizlər bölməsində Cayenne adlı yeni qovluq görünəcək. Fikrimcə, bu nümunələr sistemlə necə işləməyinizi tam başa düşməyə imkan vermir, lakin buna baxmayaraq, onlar öyrənməyə dəyər və həmçinin sizə xatırlatmaq istərdim ki, Cayenne sistemində sənədlərin böyük bir hissəsi var. IN ümumi hal bu kitabxana sensorlar/aktuatorlar və bulud xidməti arasında əlaqəni və məlumat mübadiləsini sadələşdirən eskizlər toplusudur.

Hazırlıq əməliyyatlarını, inkişaf mühitini qurduqdan və Ethernet Shield genişləndirmə kartını birləşdirdikdən sonra IoT cihazını hazırlamağa başlaya bilərsiniz.

Arduino lövhəsini USB vasitəsilə kompüterə, LAN kabelini isə Ethernet Shield-ə qoşuruq. İnternet brauzerində Cayenne hesabınıza daxil olun və idarəetmə panelinə yeni bir cihaz - Arduino əlavə edin. Sonra, lövhənin növünü, İnternetə qoşulma üsulunu seçirik (kifayət qədər çox seçim var), cihazımız üçün unikal avtorizasiya açarına diqqət yetiririk və Arduino lövhəsinin Cayenne-ə qoşulmasını gözləyirik (Şəkil 3).

Hər bir yeni cihaz üçün yeni unikal açar yaradılır, onu sonradan cihazın (board) parametrlərində tapmaq olar.

Şəbəkəyə qoşulma üsulunu seçən kimi mikrokontroller proqramının mənbə kodu olan bir pəncərə görünəcək. Bu cihazı bulud xidmətinə qoşmaq üçün tələb olunan minimumdur. Nəzərə alın ki, proqram mətni artıq sizin avtorizasiya açarınızı göstərir və seçilmiş şəbəkəyə qoşulma metoduna uyğun kitabxananı birləşdirir (Şəkil 4). Bu kodu Arduino IDE-yə köçürür, tərtib edir və lövhəyə yükləyirik. Hər şey düzgün şəkildə konfiqurasiya edilibsə, Cayenne idarəetmə panelində yeni aktiv cihaz və idarə paneli görünəcək, burada indi vidjetlər və idarəetmə elementləri əlavə edə bilərsiniz. Üstəlik, artıq bu mərhələdə bir kod sətri yazmadan Arduino-nun mövcud rəqəmsal və analoq portlarını uzaqdan idarə edə bilərsiniz - tablosuna bir widget düyməsini əlavə edin, portun növünü (rəqəmsal), lövhədə adını göstərin və qeyd edin. widget. İndi brauzerdə bir düyməni sıxmaqla siz portun məntiqi vəziyyətini dəyişəcəksiniz. PWM çıxışlarını idarə etmək, Arduino analoq girişlərindən “xam” məlumatları almaq və rəqəmsal girişlərin vəziyyətinə nəzarət etmək üçün müvafiq vidjetlər əlavə etmək də asandır.

Müəyyən bir nümunədən istifadə edərək cihazın inkişafı

İndi sistemin əlavə xüsusiyyətləri və funksiyaları haqqında danışacağam. Nümunə olaraq, mən daxil olan sadə bir sistem hazırladım:

  • Arduino Uno lövhəsi;
  • WIZnet W5100 nəzarətçisində Ethernet Shield genişləndirmə kartı;
  • Temperatur sensoru DS18B20;
  • Fotorezistor;
  • termistor;
  • bir neçə LED;
  • SSD1306 nəzarətçisində OLED displey.

Sensorların və LED-lərin Arduino-ya qoşulmasının sxematik diaqramı Şəkil 5-də göstərilmişdir.

Nəzərinizə çatdırım ki, müxtəlif sensorların və aktuatorların birləşdirilməsi ilə bağlı əksər suallara cavabları sənədlər bölməsində tapa bilərsiniz.

Düşünürəm ki, LED-lərin, rəqəmsal temperatur sensorunun və OLED displeyinin birləşdirilməsi ilə bağlı suallar olmayacaq. Analoq işıq və temperatur sensorları rezistiv bölücü dövrədən istifadə edərək analoq girişlərə qoşulur. Bu halda, termistor dövrəsi üçün R6 rezistorunun dəqiq müqavimətini bilmək lazımdır, bu dəyər hesablamalar üçün mənbə kodunda istifadə olunacaq;

Diaqramda göstərilən elementləri birləşdirdikdən sonra Arduino eskizini yazacağıq və sonra Cayenne tablosuna lazımi vidjetləri quraşdıracağıq. Bu nöqtədə, Arduino lövhəsi artıq minimal eskizlə yüklənmişdir və lövhə Cayenne tablosunda müəyyən edilmişdir. Yuxarıda dediyim kimi, bu mərhələdə biz D1, D2 LED-lərini idarə etmək üçün vidjetlər əlavə edə bilərik, həmçinin termistor və fotorezistorun qoşulduğu analoq girişlərdən "xam" məlumatları qəbul edə bilərik (Şəkil 6, 7).

Arduino kodunun bir sətirini yazmadan artıq sadə uzaqdan idarəetmə və monitorinq sistemimiz var (Şəkil 8).

Rəqəmsal aktivləşdirmək üçün temperatur sensorları, termistor, PWM, məsələn, LED D2-ni idarə etmək üçün minimal eskiz əlavə etməlisiniz. Əvvəlcə lazımi kitabxanaları müəyyən edək.

#daxildir< CayenneEthernet.h>// Ethernet Shield genişləndirmə kartından istifadə edin
#daxildir< CayenneTemperature.h>// termistordan verilənləri çevirmək funksiyaları
#daxildir< OneWire.h>// 1-telli avtobusla işləmək üçün funksiyalar
#daxildir< DallasTemperature.h>// rəqəmsal temperatur sensorları ilə işləmək üçün funksiyalar
#daxildir< Arduino.h>// standart sabitlər və dil dəyişənləri Arduino
#daxildir< U8x8lib.h>// mətn rejimində OLED displeylə işləmək üçün kitabxana
#daxildir< Wire.h>// dəstək hardware interfeysi I 2 C

#təyin et VIRTUAL_PIN_1 V0 // DS18B20 sensoru üçün virtual kanal
#VIRTUAL_PIN_2 V1 // -- termistor üçün müəyyən edin
#define VIRTUAL_PIN_3 V2 // -- LED D2 üçün bu kanal vasitəsilə PWM dəyəri haqqında məlumat alacağıq
#define LED2_PWM 6 // LED D2-nin qoşulduğu real Arduino portu

Virtual kanallar nə rəqəmsal, nə də analoq giriş/çıxış portları deyil. Analoq girişləri birbaşa oxuyarkən istifadəçi mikrokontrollerin 10 bitlik ADC-dən məlumatları alır. ADC tərəfindən qaytarılan dəyərlər 0 ilə 1023 arasında dəyişir və bu girişdəki gərginliyə mütənasibdir. Başqa sözlə, bir temperatur sensorunu Arduino-nun analoq girişinə bağlasanız, bir temperatur dəyəri əldə etməyəcəksiniz, gərginliyi temperatura çevirmək üçün əlavə çevrilmələr və riyaziyyat tələb olunacaq.

Virtual kanallar verilənlərin çevrilməsini, formatlaşdırılmasını və işlənməsini sadələşdirmək üçün nəzərdə tutulub. Bu qəşəngdir güclü alət, Arduino və Cayenne arasında əlaqə üçün, həmçinin tablosunda aydın vizuallaşdırma məqsədilə məlumatların sadə formatlaşdırılması üçün istifadə olunur. Unutmayın ki, virtual kanalların fiziki parametrləri yoxdur.

Cayenne.virtualWrite(V1, 123) // V1 virtual kanalı vasitəsilə tam dəyərin ötürülməsi
Cayenne.virtualWrite(V2, 12.34) // üzən nöqtə dəyərlərini virtual kanal V2 üzərindən ötürmək

Məsələn, analoq temperatur sensorunu oxumaqla biz bir kod sətri ilə dəyəri Selsi dərəcəsinə çevirə və bu dəyəri tablosuna ötürə bilərik. Bundan əlavə, virtual kanallar analoq və ya qoşulmuş hər hansı periferiyaya nəzarəti həyata keçirməyə imkan verir rəqəmsal portlar Arduino, heç bir şey yazmadan əlavə kod. Hazırda virtual kanalların işlədiyi iki növ məlumat dəstəklənir: tam və üzən nöqtə (float). Gələcəkdə simvol növləri və massivləri dəstəkləməyi planlaşdırırıq. İdarə panelində virtual kanal vasitəsilə qəbul edilən məlumatların növünə əsasən vizuallaşdırma üçün xüsusi vidceti birləşdirə və konfiqurasiya edə bilərsiniz.

// DS18B20 sensorlarının qoşulacağı rəqəmsal port. Arduino 0 və 1 portlarından (Rx/Tx) istifadə etməyin.
const int ds18b20_Pin = 2;
// Termistorun qoşulduğu analoq port.
const int thermistorPin = 0;
// Termistorla yerə ardıcıl olaraq bağlanmış sabit rezistorun (9 kOhm) müqaviməti.
sabit float müqaviməti = 9000;
// Cayenne avtorizasiya açarı. Siz onu cihaz parametrləri nişanında Cayenne veb interfeysində tapa bilərsiniz.
char token = "640c9oedi4";
OneWire oneWire(ds18b20_Pin);
DallasTemperatur sensorları(&oneWire);
Termistor termistoru(termistorPin, müqavimət);

Öz mülahizənizlə, demək olar ki, hər hansı bir mərhələdə əlavə edə bilərsiniz mənbə serial port vasitəsilə debug məlumatını çıxarın.

Başlanğıc bölməsində biz aşağıdakı funksiyaları təyin edəcəyik:

boş quraşdırma()
{
Cayenne.begin(token); // göstərilən avtorizasiya açarı ilə Cayenne-ə qoşulun
sensorlar.begin(); // rəqəmsal temperatur sensorlarının işə salınması
u8x8.begin(); // başlanğıc və çıxış mətn məlumatı OLED displeydə

u8x8.setPowerSave(0);
u8x8.setFont(u8x8_font_torussansbold8_r);
u8x8.drawString(2,0,"Cayenne Testi");
u8x8.drawString(1,2,"Sistem Çalışır");
}

Əsas proqram döngəsində yalnız bir funksiyamız olacaq:

boş döngə()
{
Cayenne.run();
}

Cayenne idarə paneli ilə bütün əlaqə bir neçə funksiyadan istifadə etməklə həyata keçirilir:

CAYENNE_IN (Virtual_Pin) - cihaz Cayenne serverindən virtual kanal vasitəsilə yenilənmiş məlumatları qəbul edərkən çağırılan funksiyanı müəyyən edir.

CAYENNE_OUT (Virtual_Pin) - cihazdan yenilənmiş məlumatların Cayenne serverinə göndərilməsi lazım olduqda çağırılan funksiyanı müəyyən edir.

CAYENNE_CONNECTED() - funksiya hər dəfə cihaz Cayenne serverinə qoşulduqda icra olunur. Ümumiyyətlə, bu funksiya sinxronizasiya üçün istifadə olunur.

Cayenne.syncAll() - bütün vidjetləri sinxronlaşdırmaq üçün Cayenne serverinə sorğu yaradan funksiya. Arduino analoq və rəqəmsal portların vəziyyəti bərpa olunacaq və hər bir virtual kanal CAYENNE_IN hadisəsi yaradacaq.

Cayenne.syncVirtual(Virtual_Pin) - göstərilən virtual kanal üzərində sinxronizasiya. İcra nəticəsində müvafiq CAYENNE_IN işləyicisi çağırılır.

Mənim dövrəmdə LED D2 Arduino-nun D6 rəqəmsal portuna qoşulub. Bu portun alternativ funksiyası var - PWM çıxışı. Bu LED-lərin PWM rejimində uzaqdan idarə edilməsini həyata keçirmək üçün biz tablosundan məlumat almalıyıq. Bunu etmək üçün V2 virtual kanalı vasitəsilə məlumatları yeniləyərkən yerinə yetiriləcək bir funksiya yazacağıq:

CAYENNE_IN(V2)
{
// tablosundan PWM dəyəri haqqında məlumat əldə edin (slayder)
int PWMValue = getValue.asInt(); // 0 - 1023 aralığında dəyər
analogWrite(LED2_PWM, PWMValue / 4); // PWM üçün dəyər 0 - 255 aralığında olmalıdır
}

İndi tablosuna LED_2 PWM (PWM) adlı "Slider" vidjetini əlavə edəcəyik və onun parametrlərində onun virtual kanal 2 vasitəsilə işlədiyini göstərəcəyik (Şəkil 9).

Eskizi lövhəyə yüklədikdən sonra siz D2 LED-in parlaqlığını idarə etmək üçün Cayenne tablosundakı sürüşdürmə vasitəsindən istifadə edə bilərsiniz. Hər şey çox sürətli və sadədir ...

CAYENNE_OUT(V0)
{
sensors.requestTemperatures(); // rəqəmsal temperatur sensorlarından məlumat almaq.
// termistordan verilənləri çevirin, formatlayın və virtual kanal V1 vasitəsilə serverə göndərin
Cayenne.celsiusWrite(V1, thermistor.getCelsius());
//rəqəmsal temperatur sensorundan məlumatları formatlayın və virtual kanal V0 vasitəsilə serverə göndərin
Cayenne.celsiusWrite(V0, sensors.getTempCByIndex(0));
}

Virtual kanalların istifadəsi sayəsində tamamilə fərqli məlumatların ötürülməsi üçün bütün funksiya kodu iki sətirdən ibarətdir. İdarə panelində DS18B20 temperatur sensoru və termistor üçün vidjetlər əlavə edirik (onlar idarəetmə panelində hazırdır). Biz vidjetləri konfiqurasiya edirik, eskizi lövhəyə yükləyirik və... hazırdır (Şəkil 10a, 10b)!


Şəkil 10. Cayenne tablosunun görünüşü Arduino nəzarəti(temperatur sensorları,
işıqlandırma, LED D1-in idarə edilməsi, LED D2-nin PWM nəzarəti):

Unutmayın ki, bu eyni nəzarət və monitorinq funksiyaları da mövcuddur mobil proqram. Mobil proqramda veb-interfeysdə quraşdırılmış bütün vidjetləri görəcəksiniz (Şəkil 10b).

Görünüş qoşulmuş periferik qurğuları olan qurğular Şəkil 11-də göstərilmişdir.

Simsiz IoT cihazlarını inkişaf etdirmək bacarığı

Yəqin ki, bəzi ekran görüntülərində Arduino Uno və Raspberry Pi ilə yanaşı ESP8266-1 adlı cihazın da olduğu idarəetmə panelimi görə bilərsiniz. Düzdü, elədir əlavə cihaz Wi-Fi vasitəsilə Cayenne serverinə qoşulan və özünün ayrıca tablosuna malik olan tanınmış ESP-12 modulunda (ESP8266) (Şəkil 12a, 12b). Belə bir cihaz simsiz monitorinq və idarəetmə vahididir. İki LED modula qoşulur (biri ESP8266 PWM çıxışına qoşulur) və DS18B20 rəqəmsal temperatur sensoru.


Şəkil 12. üçün idarə paneli simsiz cihaz ESP-12 modulunda:
a) veb interfeys, b) mobil proqram.

Arduino IDE tərəfindən ESP8266 nüvəsinin dəstəyi sayəsində Cayenne ilə simsiz IoT cihazlarının tətbiqi Arduino-da inkişafdan fərqlənmir. Başqa sözlə, ESP8266 çipindəki istənilən modul Wi-Fi interfeysi olan Arduino lövhəsidir. Bu Wi-Fi modulu üçün biz oxşar eskiz yazırıq, sensorlarla işləmək üçün eyni kitabxanalardan istifadə edirik və rəqəmsal və analoq giriş/çıxış portlarına çıxışımız var. Bu modulda çoxlu məlumat, müxtəlif sənədlər və inkişaflar toplanmışdır.

Ətraf qurğular üçün ESP8266 moduluna qoşulma diaqramı Şəkil 13-də göstərilmişdir. Mən istifadə etdim. ayrı modul Eskizin yüklənməsi mərhələsində işi xeyli çətinləşdirən inteqrasiya edilmiş güc dövrəsi və proqramlaşdırma interfeysi olan yükseltici lövhə olmadan ESP-12. Ən yaxşı variant Arduino forma faktorunda hazırlanmış və interfeys uyğunluğu dövrəsinə malik nodeMCU v3 kimi hazır moduldan istifadə edəcək. (Modulu proqramlaşdırarkən çox vacib bir məqam). Birləşdirilmiş LED-lər və temperatur sensoru olan modulun görünüşü Şəkil 14-də göstərilmişdir.

Cayenne serverinə qoşulmaq və məlumat mübadiləsinə gəldikdə, hər şey Arduino ilə eynidir. Haqqında bütün anlayışlar virtual kanallar, eyni funksiyalar istifadə olunur, unikal avtorizasiya açarı da istifadə olunur. Yeganə fərq modulun İnternetə qoşulma mərhələsindədir.

ESP8266 modulunda bir cihazı birləşdirmək üçün biz istənilən Arduino lövhəsini əlavə etməklə eyni şəkildə davam edirik və cihazın Cayenne-ə qoşulmasını gözləmək mərhələsinə çatırıq, burada minimal eskiz yaranacaq.

Bu eskizi dəyişdirməliyik. Biz aşağıdakı kitabxanaları daxil edirik:

#include "CayenneDefines.h" // Cayenne sabitləri və dəyişənləri
#include "BlynkSimpleEsp8266.h" // ESP8266 ilə işləmək üçün funksiyalar
#include "CayenneWiFiClient.h" // Wi-Fi müştərisini həyata keçirmək üçün funksiyalar

char token = "3yj62u9ogi";
char ssid = "Şəbəkə_SSID"; // Wi-Fi şəbəkəniz üçün SSID və parol.
char parol = "Şəbəkə_Parol";

Başlanğıc bölməsində sətir əlavə edin:

Cayenne.begin(token, ssid, parol);

Biz tərtib edirik, modula yükləyirik (Arduino lövhəsinə yükləməkdən daha çox vaxt aparır), Cayenne tablosunda yeni cihazın qoşulmasını və aktivləşdirilməsini gözləyirik. Sonra, hər şey Arduino ilə eynidir: biz sensorlar və giriş/çıxış portları ilə işləmək üçün funksiyalar əlavə edirik və tablosuna vidjetlər əlavə edirik. Sadəcə heyrətamizdir, elə deyilmi?!

Nəticə

Raspberry Pi və Arduino-da Cayenne ilə işin nəticələrinə əsaslanaraq, qəti şəkildə deyə bilərəm ki, Raspberry Pi hətta Cayenne ilə də IoT cihazlarını inkişaf etdirmək üçün istifadə edilməməlidir. Eyni şeyi Arduino haqqında demək olmaz - məhdud resurslara, çoxşaxəli tapşırıqların olmamasına, aşağı hesablama gücünə baxmayaraq (baxmayaraq ki, bu, mübahisəli məqamdır, yeni Arduino lövhələrinin xüsusiyyətlərinə əsaslanaraq. ARM prosessorları), sadə IoT cihazlarını və ev avtomatlaşdırma sistemlərini inkişaf etdirmək üçün idealdır.

Bundan əlavə, bu kontekstdə Arduino-nun əsas üstünlüyü, yuxarıda qeyd etdiyim kimi, peşəkar proqramçıların öyrənə bilməyəcəyiniz arqumentlərinə baxmayaraq müstəqil olaraq cihazı inkişaf etdirmək, sxemlərin dizaynını öyrənmək, kod yazmaq və proqramlaşdırma bacarıqlarını inkişaf etdirmək bacarığıdır. Arduino ilə proqram. Ola bilsin, amma... Arduino ilə əlaqədar olaraq, Cayenne platforması yalnız qrafik istifadəçi interfeysi və verilənlərin emalı ilə bağlı bəzi sadələşdirmələr təqdim edir. Sensor məlumatlarının ilkin emalı, hadisələrin işlənməsi alt sistemi, o cümlədən avtomatlaşdırma şərtləri və alqoritmləri daxil olmaqla, qalan hər şeyi özünüz inkişaf etdirməlisiniz. İndi Arduino-ya ESP8266 Wi-Fi modulunda simsiz IoT cihazlarının yaradılması asanlığını və bortda zəngin periferik qurğulara malik ən son ESP32 çipinin rəsmi dəstəyini (dolu olmasa da) əlavə edin və siz əsaslı şəkildə yeni cihazların inkişafı üçün böyük imkanlarınız var. və bu prosesi cəlb etmək təkcə həvəskarlar üçün deyil, həm də peşəkarlar üçündür.

Yazı zamanı Cayenne ESP8266 çipindəki modullara rəsmi dəstək barədə məlumat vermədi. Başlanğıcda, bu, ictimaiyyətə verilən kreditdir - Arduino IDE-də işləyən və ya istifadə edən və ESP8266 dəstəyi haqqında bilən həvəskarlar və mühəndislər Cayenne kitabxanalarının köməyi ilə ESP8266-nı birləşdirə və istifadə edə bildilər. Lakin hətta o vaxt Cayenne icma forumlarında simsiz IoT cihazları üçün çoxlu sayda müxtəlif layihələrlə tanış olmaq mümkün idi.

Cihazlarımı Arduino və ESP8266-da uzun müddət sınaqdan keçirdikdən sonra deyə bilərəm ki, sonuncu çox stabil işləyir. Arduino-nun Ethernet Shield ilə etibarlılığının bir qədər aşağı olması bununla bağlıdır məlum problem W5100 nəzarət cihazı donur, lakin onu həll etməyin bir neçə yolu var, həm aparat, həm də proqram təminatı. Güman edə bilərəm ki, bu, inteqrasiya olunmuş Ethernet və ya Wi-Fi ilə Arduino lövhələrinə aid deyil.

Raspberry Pi və Cayenne haqqında məqalənin hazırlanmasından çox vaxt keçmədi, lakin əhəmiyyətli dərəcədə daha çox yeni funksiyalar və dəstəklənən periferik qurğular var. Arduino üçün müxtəlif genişləndirmə lövhələri, sensorlar və aktuatorların, müvafiq kitabxanaların, layihələrin və nümunələrin böyük bir seçiminə əlavə olaraq, indi Cayenne-də istifadəçilər LoRa cihazlarına, şəbəkələrinə və xidmətlərinə, dəstək kitabxanalarına çıxış əldə edə bilərlər. şəbəkə protokolu Arduino üçün MQTT, C, C++, mBed, MQTT broker ağcaqanadları ilə işləmək üçün kitabxanalar. Şübhəsiz ki, Arduino-da Əşyaların İnterneti cihazlarını və ev avtomatlaşdırma sistemlərini inkişaf etdirmək üçün Cayenne xidmətlərini tövsiyə edərdim.


Kateqoriyalar