Skip to content

Latest commit

 

History

History
55 lines (33 loc) · 7.31 KB

00-intro.md

File metadata and controls

55 lines (33 loc) · 7.31 KB

Інтро

Ми живемо в часи, коли Інтернет захопив весь Світ. Він повсюди і доступний кожному. Будь-хто в будь-який момент може зв’язатись з будь-ким. Популярність всесвітньої мережі та зниження цін на обладнання дала поштовх для появи такого поняття як "Інтернет речей".

Інтернет речей — це мережа, що складається із взаємозв'язаних фізичних об'єктів (речей) або пристроїв. По суті, IoT пристроєм можна вважати пристрій, котрий підключено до мережі і котрий може отримувати чи віддавати дані. Зазвичай такі пристрої приєднані до центарлізованого сервера. Але в більш просунутих мережах пристрої можуть спілкуватись напряму один з одним.

До недавно зі створенням IoT в домашніх умовах були наступні проблеми:

  • Вартість самих пристроїв.
  • Складність написання прошивки.
  • Необхідність писати код для сервера.
  • Необхідність паяти свої схеми.

Завдяки ліні, глобалізації і масовому виробництву ці всі питання вирішені. Вартість IoT девайсів впала до $2 - $4 за штуку. З’явилось багато середовищ розробки програм під пристрої, та мов, котрі значно полегшують написання прошивки. Я починав свій шлях в IoT з написання коду на асемблері, і повірте - веселощів з ним було мало =) . Зараз все набагато простіше.

Необхідність писати код для сервера теж відпала! Для базових речей вам буде достатньо використання вже готових інструментів, таких як Firebase. Для того, щоб зібрати прототип свого пристрою, вам вже не потрібен паяльник та вміння паяти. Досить мати монтажну плату та пучок проводів.

Мета цієї лабораторної роботи - показати, що створити свій IoT девайс - це не така вже й складна справа.

Залізо

Наразі існує багато готових плат та наборів розробника для створення свого IoT девайсу: Raspberry, Intel Edison, Intel Joule, NXP i.MX7D і т.п. Це повноцінні комп’ютери з відносно крутим залізом. Але в них є один недолік - ціна. Для створення простих девайсів з простим функціоналом використання даних плат було б економічно не вигідним і підвищувало б планку входу в світ IoT. Тому ми будемо використовувати більш простий але не менш функціональний WiFi модуль - ESP8266.

ESP8266

По суті, ESP8266 - це мікросхема WiFi модулю, котру в залежності від вимог можна зустріти у різних корпусах і з різним функціоналом.

Різновиди ESP8266

З базовою прошивкою, ви можете використовувати цей модуль для роботи з WiFi та Internet використовуючи AT-команди. Тому даний модуль часто використовується як WiFi модуль для Arduino. Але справжня крутість цього модуля в тому, що ви можете завантажувати в нього свою прошивку і виконувати свою програму, при цьому маючи можливість приєднатись до WiFi мережі та обмінюватись даними з сервером.

Модуль може працювати в трьох режимах: WiFi клієнта, точки доступу, та обох відразу. В даній лабораторній роботі ваш девайс буде мати дані для підключення до WiFi роутера прямо в своєму коді. В більш просунутих варіантах, для ініціалізації підключення до мережі девайс може стартувати з власною точкою доступу. Далі користувач підключається до цієї точки і за допомогою додатку або стартової веб-сторінки вводить дані WiFi мережі. Після вдалого підключення девайс виключає точку доступу і переходить в режим клієнта.

Виробник надає SDK для написання прошивок на мові С, тож можна використовувати його. Але для полегшення написання коду ми будемо використовувати бібліотеку, котра дублює всі функції і методи бібліотеки для Arduino. Тому код прошивки для ESP8266 не буде відрізнятись від коду для Arduino.

ESP8266 - це лише мікросхема. Для забезпечення живлення, можливості підключення через USB та можливості підключення інших пристроїв нам необхідні додаткові електроні елементи і мікросхеми. Щоб уникнути паяння, ми будемо використовувати вже готову плату з усім цим, яка основана на ESP8266 - NodeMCU V3.

NodeMCU V3

Весь код в цій лаборатоній написаний на мові C.

Вимоги

Для виконання цієї лаби вам знадобиться:

  • Комп’ютер (Mac/Win/Linux).
  • NodeMCU V3.
  • Датчик вологості та температури DHT11.
  • Маленький сервопривід.
  • Світлодіоди.
  • Монтажна плата.
  • Дроти.
  • Резистори.

Далі: налаштування середовища