ESP8266 + blynk. IoT, ağıllı ev sistemləri üçün sadə bir həll yolu

ESP8266 wifi kontrolleri və blynk application(android) –i ilə IoT(Internet of Things‎) testleri edeceyik. Testler üçün ESP8266 wifi modulu əldə etmək lazımdır. Daha sonra proqramlayib uzaqdan lazimi sisitemləri idarə etmək olar. Burda məqsədimiz uzaqdan ağıllı evi ve ya hər hansı bir qurğunu idarə etməkdir.

ESP8266-nı proqramlamamışdan öncə “application” tərəfin necə qurulduğuna baxaq.(Kodlamada blynk proqramının verdiyi “Auth Token” lazım gələcək)

“Play store” – a daxil olun ve blynk proqramını telefonunuza yükləyin.

Daha sonra qeydiyyatdan keçin və proqramı açın. Proqramda “add device” edin və aşağıdakı kimi ESP8266 modulunu əlavə edin.

Modul proqrama əlavə edildikdən sonra sizə emaillə “Auth Token” gondəriləcək. Bunu ESP8266-nin daxili proqramında istifadə edəcəyik.

Daha sonra yaratdığımız ESP8266 proyektini seçək və bir “button” əlavə edək. Bu düymədə D0 terminalını seçək.

Daha sonra nəticəni görmək üçün bir də “Guage” əlavə edək və burada A0-I input kimi təyin edek.

Bununla proqram tərəfi bitirmiş oluruq. İndi ESP8266 wifi modulun proqramlayaq. Giriş terminalını çıxış terminalına birləşdirərək nəticəni görməmizi təyin edək. A0 və D0 terminallarını bir-birinə birləşdirək. Usb kabeli vasitəsilə komputere bağlayaq.

Proqramlamaq üçün lazımlı arduino paketini yükləyək. Bu blynk application-u üçün lazım olan “library” ve “tool” –lardır(Blynk_Release_v0.6.1.zip).

https://github.com/blynkkk/blynk-library/releases

Yüklədikdən sonra arxiv faylı açıb “tools”-u arduino proqraminin tools ve “libraries” –i isə arduino proqramının “libraries” qovluğuna əlavə edirik. Daha sonra arduino proqramını açdıqda bunların yükləndiyini görəcəyik.

            Port və “board”-i doğru seçdikdən sonra kolamaya bashlaya bilərik.

Aşağıdakı kodu yazaq və ESP8266 moduluna yükləyək.

#include <Blynk.h>

#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "c3c9f916b2604534a877a6a70a3b8980";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "VIBE";
char pass[] = "password";

void setup()
{
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
}

void loop()
{
  Blynk.run();
}

Proqramda əsas diqqət etməyimiz gərəkən bizim wifi parametrlərimizdir. SSİD, password və “Auth Token”. Bizim nümunədə telefonda wifi hotspot qaldırıb(VIBE) ilə test etmişik.

Artiq test edə bilərik. ESP8266 usb ilə qoşulu olduğundan həmən bizim wifi şəbəkəsinə bağlanacaq.(DHCP listdən bağlandığına əmin olun).

Proqramda D0 düyməsini sixsaq A0-da nəticəni görəcəyik.

İndi ESP8266-nin terminallarini internet üzərindən idarə edə bilirik. İstədiyimiz kimi rele, sensor bağlayıb istifadə etmək olar.

Uğurlar!

Arduino ilə yanib-sönən led testi.(Blinking led with arduino)

Sadə dövrə elementlərini nəzərdən keçirdikdən sonra arduino testlərinə bashlaya bilərik.

İlk növbədə yanib sonən led sxemini quraq ve kiçik kod yazaraq sxemi işlək hala gətirək.

https://www.tinkercad.com/things/1rEvIPiBTic

Arduino-a qoshulaq və aşağıdakı kodu onu yukləyək.

void setup()
{
  pinMode(13, OUTPUT);
}

void loop()
{
  digitalWrite(13, HIGH);
  delay(1000); // Wait for 1000 millisecond(s)
  digitalWrite(13, LOW);
  delay(1000); // Wait for 1000 millisecond(s)
}

Sxemi işə saldıqda led-in yanib sondüyünü görəcəyik.

Kodu daha etraflı izah etmeye çalışaq.

Evvelde qeyd edilmiş “void setup()” ilkin parametrlərin təyinini icra edir. Bu funksiya yalnız başlanğıcda çalishir və sonraki dövlərdə bura birdə müraciət olunmur.

“pinMode(13, OUTPUT); ” – 13-cü terminalın çıxış olacağını təyin edir.

“void loop()” – bu kodda istifadə olunan ikinci funksiyadır. Funksiyanin, dəyişənlərin nə olduğuna sonrakı müvzularda toxunacağıq. Bu funksiya sxem işlədiyi muddətcə daimi olaraq çağrılır. Prosessorun bacardığı en böyük sürətlə. Saniyədə min və ya milyon dəfələrə.

  “digitalWrite(13, HIGH); ” – Əvvəldən təyin olunan 13-cü terminali aktiv hala gətirir. Yəni çixişa +5v verir.

 “delay(1000);” – Bir saniyə kodu ləngidir. Ledin yandığının görünməsi üçün.

  “digitalWrite(13, LOW); ” – 13-cü terminal verilən 5v gərginliyi kəsirç 0-a endirir.

  “delay(1000);” – yenidən 1 saniyə kod ləngidilir. Və loop funksiyasi yeniden çağrılır.

Bu mütəmadi olaraq davam edir. Nəticədə bir saniyədən bir yanib sönən led alınır.

Tranzistorlar

Tranzistorlar üç ayağa sahib yarımkeçiricilərdir. Baza, Kollektor və Emitter uçluqlari var. Esasən yüksəldici və acar kimi istifadə olunur. Bildiyimiz elektrikli açarlardır. Az güclə boyuk qüvvələrin tətikləyiciləri.

Tranzistorlar mikroprosessorlarin ve processorlarin əsas tərkib hissəsidir. Minlərələ və ya miyonlarla toplanaraq processorları əmələ gətirirlər.

Əvvəllər lampalı tranzistorlardan istifadə edilirdi. Yarımkeçiricilərin kəşfindən sonra daha kiçik həcmli tranzistorlar hazırlanmağa başlandı və komputer texnogiyasının sürətlə inkişafına gətirdi.

Yarim keçiricilər və diod

Yarimçeciricilər 1900-cu illərin əvəzedilməz elementləri olub, 3-cü sənaye dövru üçün vüsət veren elementlərdəndir. Bildiyimiz kimi elementlər uç hissəyə ayrılırlar. Keçirici, dielektrik və yarimkeçirici.

Yarimçeciricilər muxtəlif kimyəvi elementlərin qarışığından alınır. Ən sadə yarımkeçiriciyə diodu misal göstərə bilərik. Diod qisaca desək elektrik cərəyanını bir istiqamətə keçirir digər istiqamətə keçirmir. Göründüyü kimi diodlar qütblü elementlərdir. Diodların bir çox növləri vardır.

Sadə diodlar – bu diodlarin üzərində yazılan adlara uyğun olaraq istifadə qaydalarını daha doğrusu parametrlərini internetdən tapa bilərik. Əsas parametləri istifadə gərginliyi, keçiriciliyi yəni maksimal istifadə cərəyanı, temperaturdan asılılıq qrafiki ve s. dir.

Zener diodlar – bu diodlarin konkret istifadə gərginlikləri vardır və dövrələrə tərs qoşularaq istifadə edilirlər.

Fotodiodlar – fotodiodlar uzərinə düşən işıq şüası ilə dövrəni açıb qapaya və ya idarə ede bilirlər. Ledlər – ledlər günümüzdə ən genish yayilmış diodlardir ki, hem diod funksionalliğını özündə saxlayir, həm də işıq saçır. Əsas üstünlüyü və lampalardan fərqi az enerji istifadə etməklə işıqlanmasıdır.

İnduktivlik

İduktivliklər dövrənin sadə, lakin dəyərli elementlərindən biridir. Naqillərin sarinmasi nəticəsində əldə edilir.
Əsasən iki funksiyası geniş istifadə edilir.
Birinci funksiyasini uzun su turbası kimi təsəvvür etmək mümkündür. Düşünün metrələrlə bəlkədə 100 metrələrlə su xortumunu. Suyu açdıqdan dəqiqələr sonra xortumun o biri uçuna su gedib çatır. Bağladıqdan sonra isə xortumdan bir muddət içəridə qalmış su axır. İnduktivlik də eyni prinsiplə işləyir. Elektriki açdıqdan bir müddət sonra lampa yanmağa başlayır, dövrəni açdıqdan sonra da lampa bir müddət yanır.
İkinci özəlliyi naqilin daxilində elektronlar hərəkət edən zaman etrafında maqnit sahəsinin yaranmasıdır. Bunu su misalı ilə izah etmək mümkün deyildir. Yaranan bu sahə naqilin uzunluğu cox olduğundan və sarındığından çox güclü olur, sahəyə düşən digər naqildə də cərəyan yaranmasına səbəb olur.
İnduktivliyin ölçü vahidi Henridir(Hn). Şərti işarəsi L hərfidir. Bəzən induktivliyin artirilmasi uçun naqili metal içliyin uzərinə sarıyırlar. Yuksək tezliklərdə isə ferritin uzerinə sarınır. Daha yüksək tezliklərdə içliyi hava əvəz edir. İnduktivlikləri istədiyimiz dəyərinə uyğun ala və ya özümüz hazırlaya bilərik.

İduktivliklərin istifadə sahələri və məqsədləri boyükdür. Müxtəlif rəqslərin alınmasında, transformatorlarda, maqnit sahəsinin tədbiq yerlərində və s. İstifadə edilir. En yayqin istifadə sectorlarindan biri transformatorlardir. Transformatorlar vasitəsilə gərginlikləri azaltmaq və ya çoxaltmaq mümkündür. Güc qaynaqlarinda, mənbələrində transformatorlar əvəzedilməzdir.

Kondensatorlar

Kondensatorlar kiçik güc qaynaqlari kimi istifadə edilir. Kondensatorlar kiçik miqdarda elektrik bənmələridir. Dövrəyə qoşulduğu anda lazım olan gərginliyi alır, daha sonra dovrədə gərginlik aşağı düşərsə yenidən dövrəyə cərəyan verərək potensiallar fərqini saxlamağa çalışır. Dovrəyə paralel və ya ardıcıl qoşula bilir.

            Kondensatorlar sadə görsənməyiə baxmayaraq istifadə sahələri ve yerləri çox mürəkkəbdir. Elektrik yükünü tamamilə anlamadan bu elementi tam olaraq anlamaq mümkün deyildir.

Günümüzdə böyük tutuma sahib kondensatorlar istehsal edilir ki, onlarin deyeri faratlarla olçülür. Farat kondenstor üçün çox böyuk tutumdur. Beləki, kiçik dövrələrdə bunları güc qaynağı kimi istifadə etmək mümkündür. Batereyalardan bu tip kondensatorlarin ferqi çox tez zamanda dolmasi ve şiddətli şəkildə boşalmasıdır.

            İki növü mövcuddur. Qütblü, elektrolit – musbət və mənfi qutbləri olan ve qütbsüz kondensatorlar. Elektrolit tipli kondensatorları dövrəyə qütblərinə görə bağlamaq lazımdır. Əks təqdirdə partlama ehtimalı böyükdür. Elektrolit tipli kondensatorlar qütbsuz kondensatorlara nisbətdə daha çox tutuma malik olur.

            Dəyişən tutumlu kondensatorlar da mövcuddur. Bunlara radiolarda ve bashqa elektrikli qurğularda rast gələ bilərik. Dovrələrdə C hərfi ilə göstərilir.

Müqavimət

Müqavimət dövrələrdə istifadə edilən sadə bir işlədicidir. Əsas məqsədi müsbət və mənfi qütblər arasında olan potensiallar fərqi səbəbindən əmələ gələn  cərəyan axınını azaltmaqdır. Dövrəyə ardıcıl və ya paralel bağlanır.

Müqavimətlər sadə elementlər olsalar da dövrələrdə, elektronikada ve nəticə etibarilə qurğularda çox böyük rol oynayır. Müqavimətlərin aşağıdakı növləri vardır.

  • Sabit müqavimətlər
  • Dəyişən muqavimətlər
  • Düşdüyü mühitə uyğun dəyişən müqavəmətlər

Sabit muqavimətlər müəyyən dəyərə sahib olub müqavəməti om-la ölçülür.

Məsələn 10om, 100om və ya kilo-om, meqa-om. Müqavimət nə qədər az olarsa dövrədə cərəyan o qədər çox olar.

Dəyişən muqavimətlərin dəyəri idarə olunabilinəndir. Məsələ 1kilo-om, yəni 0-dan 1kilo-om a qədər istənilən dəyəri verə bilərik. Belə müqavimətlərə misal olaraq səs gücləndiricilərdə səsin artırılması üçün olan düymələri misal göstərə bilərik. Nə qədər çox səs lazım olarsa o qədər müqaviməti azaldar, ucadanışana gedən cərəyanı artirar ve nəticədə güclü səs alarıq.

Düşdüyü mühitə uyğun dəyişən müqavəmətlər daha çox sensorlar kimi istifadə olunur. Məsələn günəş süasına görə dəyişən, səsə, işığa və s. görə dəyişən müqavəmətlər. Muqavimətlər dovrələrdə R hərfi ilə işarət edilir.

Sadə bir test edək. www.tinkercad.com səhifəsinə login olaq. Daha sonra şəkildə göstərilən dövrəni quraq.

Dövrədə iki sabit və dəyişən müqavimət istifadə edilib. Sabit müqavimət qısa qapanmanın  qarşısını almaq üçündür. Dövrədə axan cərəyanı dəyişən müqavimətlə dəyişək. Müqaviməti artirdiqca cərəyanin azarldığının şahidi olacağıq. Bununla müqavimətin əsasə iş prinsipini test etmiş oluruq.

https://www.tinkercad.com/things/lBoFIhcgIlC – bu linkden tecrübəni test edə bilərsiniz.

            Müqavimətin iş prinsipindən istifadə edərək parlaqlığı dəyişən led testini edək.

Burada dəyişən müqavimətin yan uclarını batereyanın müsbət və mənfi kontaktları ilə birləşdirmişik. Bu zaman dövrədə daimi axin baş verəcək. Muqavimətin orta terminalı dəyişkən gərginliyi təmin etmiş olacaq. Bu çıxışı led lampaya birləşdirsək və sxemi işə salsaq lampanin parlaqlığını idarə edə bilərik.

https://www.tinkercad.com/things/9FZbRDHR7jn – bu linkden tecrübəni test edə bilərsiniz.

Batereyalar və sadə dövrə anlayışı

Dövrə qurmaq üçün güc mənbəyinə eytiyacımız vardir. Günümüzdə istifadə edilən en yayqın güc qaynaqlarından biri batereyalardır. Arduino cihazlarinda da bateriyalardan deniş istifadə edilir. Batareyalar birdəfəlik ve yenidən doldurula bilən olaraq iki yerə ayrılır. Kiçik qurğularda birdəfəlik batereyalara üstünlük verilsə də daha böyük qurğularda yenidən doldurula bilən və ya birbaşa dəyişən gərəyan mənbəyindən istifadə edilən güc çeviricilərindən istifadə edilir. Mövzuyu uzatmadan birbaşa dövrələrə ve onların işləmə prinsipinə fokuslanaq. Sadəcə mənbə gotürüb müsbət və mənfi qütbləri birləşdirməklə sadə dövrə yarada bilərik. Lakin bu çox təhlükəlidir, əgər belə edərsək güc mənbəsi tam gücü ilə elektrik axını yaratmağa çalışar və dövrəyə qoşulmuş naqilləri yandırar. Əgər naqillər böyük axini təmin edə biləcək olarsa güc mənbəsi özü sıradan çıxar.
Bunun qarşısını almaq üçün dövrədə ən azi bir ishlədici olmalıdır. İşlədici olaraq müqavimət istifadə edə bilərik, və ya bir lampa və ya bashqa bir ishlədici.

Yazdıqlarımızı kiçik sınaqlarla yoxlayaq.

Əvvəlcə www.tinkercad.com səhifəsindən qediyyatdan keçək və virtual olaraq təcrubələrə başlayaq. Bu təcrübələri fiziki etsək daha yaxşı olar. Girişdən sonra ”Circuit” hissesini seçək. Daha sonra “Create New circuit”.

Sağ paneldən lazımı elementləri seçek ve aşağıdakı sadə lampa dövrəsini quraq.

Dövrələrdə naqillər rənginə görə fərqlənir. Əksər dövrələrdə – qütb qırmızı, mənfi qütb isə qara işarələnir. ”Star Simulation” düyməsini sıxaq və lampanın yandığını görəcəyik. Açarla yenidən söndürmək olar.

Batereyalar bir-birinə ardıcıl birləşib. Hər birinin gərginliyinin 1.5v olduğunu nəzərə alsaq cəmi 3v gərginlik dövrəyə verilmişdir. Dövrədən axan cərəyanı da hesablamamız çox yaxşı olardı. Dövrədə dəyişiklik edək və yenidən işə salaq.

Dövrədə 61.2 mA cərəyan axdığını görə bilərik.

Beleliklə ilk dövrə testimizi bitirmiş olduq. Aşağıdakı linkdən sxemi kopyalayıb test edə bilərsiniz.

https://www.tinkercad.com/things/hCHhMee7Sc0