Курс “Интернет на нещата (IoT)” – професия “Програмист на роботи”

Курсът “Интернет на нещата (IoT)” е сред специализираните курсове за професиите “Програмист“, “Приложен програмист“, “Системен програмист” и “Програмист на роботи” съгласно държавните общообразователни изисквания. Курсът е препоръчително да се провежда след навлизане в програмирането (след курсовете “Увод в програмирането” и “Програмиране”).

Настоящата учебна програма е приложима както за професионалните гимназии, така и за други учебни заведения.

Разпределение

  • 108 учебни часа (2 учебни срока по 18 седмици по 3 часа)
  • 10-11 клас (може и в 8 или 9 клас, факултативно)

Учебна програма

Настоящата учебна програма по “Интернет на нещата (IoT)” е разработена от д-р Светлин Наков от частна професионална гимназия по дигитални науки “СофтУни Светлина” на базата на курса “Програмиране за вградени системи” (който не включва интернет комуникация и е малко остарял).

  1. Въведение в IoT
    • Какво е вградена система (embedded system)?
    • Какво е IoT (интернет на нещата)?
    • Как работят IoT системите? Контролери, сървъри, комуникация
    • Предимства и недостатъци на IoT
    • IoT примери: система за умно паркиране, автоматизиран поливна система, умен дом
  2. IoT устройства
    • Какво е „нещо“ в екосистемата на IoT?
    • IoT устройства: микроконтролери, мини-компютри, периферия
    • Микроконтролер: структура, процесор, памет, периферни устройства
    • Микропроцесор: микропроцесор срещу микроконтролер
    • Едноплаткови компютри
    • Примери за микроконтролери: Arduino, ESP8266, ESP32
    • Запознаване с микроконтролер NodeMCU ESP8266
  3. Електротехника и електроника
    • Електричество. Напрежение, волтаж, съпротивление. Закон на Ом
    • Прав и променлив ток. Електрозахранване
    • Верига и електрическа схема. Диаграми
    • Електрически компоненти. Обозначения. Схеми
    • Примери: батерия + резистори + светодиоди
  4. Среди за разработка и програмиране за ESP8266 / ESP32
    • Arduino IDE. Работно пространство. Менюта. Лента с инструменти
    • Скица (програма) в Arduino IDE. Структура и основни блокове. Компилация и качване върху контролера
    • Основни функции на Arduino IDE: функции, променливи, библиотеки
    • Дебъгване и серийна комуникация: Сериен монитор
    • TinkedCad: онлайн Arduino симулатор
    • Примери: мигане на лампички
    • Ръководство: инсталирайте Arduino IDE за NodeMCU ESP8266
  5. Цифров вход и изход: GPIO
    • Видове сигнали: цифрови и аналогови
    • GPIO: вход / изход с общо предназначение
    • Цифров сигнал: дискретна форма на сигнала
    • Функции на Arduino за цифров вход/изход: pinMode(), digitalWrite(), digitalRead()
    • Електронни компоненти за цифрови сигнали: бутон, зумер
    • Примери: управление на бутон
  6. Аналогов изход и ШИМ
    • Аналогов сигнал. Характеристики
    • Аналогов изход: широчинно-импулсна модулация (ШИМ, PWM)
    • Функции на Arduino за аналогов изход: analogWrite(), tone(), noTone()
    • Общи аналогови изходни компоненти: пасивен зумер
    • Примери: плавно включване на лампичка, изпълнение на музикална мелодия
  7. Аналогов вход и АЦП
    • Аналогов вход: аналогово-цифров преобразувател (АЦП, ADC)
    • Аналогов вход Arduino функции: analogRead(), map()
    • Общи аналогови входни компоненти: потенциометър, фоторезистор
    • Примери: управление на лампичка с потенциометър и с фоторезистор
  8. Първи практически проект: вградена система
    • Изграждане на вградена система с микроконтролер и периферни компоненти
    • Примерни проекти: игра за реакция, преводач на морзова азбука, комбинация за  заключване на сейф, сензор за паркиране
    • Защита на практически проект
  9. IoT сензори и периферни устройства
    • Сензори: аналогови и цифрови сензори
    • Периферни устройства: на чип, извън чип
    • Функции на Arduino: random()
    • Общи компоненти: RGB LED, LM35 температурен сензор, термистор
    • Примери: работа с RGB LED, LM35 температурен сензор, четене на температура от термистор
  10. Shift регистър
    • Shift Register: предназначение, описание
    • Shift Register 74HC595N
    • Функции на Arduino: shiftOut(), bitWrite()
    • Общи компоненти: RGB LED, LM35, термистор
    • Примери: управление на блок от 8 светодиода с помощта на Shift регистър
  11. LCD дисплей
    • Дисплей с течни кристали: LCD 16×2
    • LCD режими на свързване: I2C, 8-битов режим, 4-битов режим
    • Arduino функции. Обектът LiquidCrystal: begin(), clear(), print(), setCursor()
    • Примери: отпечатване на съобщение на LCD екран
  12. Релета и двигатели
    • Релета: видове, свързване, изводи, програмиране
    • Двигатели: DC мотор, серво мотор, стъпков мотор, програмиране, скорост на двигателя и PWM
    • Общи компоненти: транзистор, диод
    • Примери: превключвател на крушка на базата на реле, управление на реле с фоторезистор, управление на скоростта на DC мотор
  13. IoT свързаност и WiFi
    • IoT свързаност. Технологии: WiFi, Bluetooth, Ethernet, Cellular IoT, LPWAN, Satellite, LoRaWAN
    • Архитектури за свързване: локален сървър срещу облачна връзка
    • NodeMCU свързаност: ESP8266 WiFi възможности, установяване на WiFi връзка, режим станция, режим точка на достъп (AP), диагностика на връзката
    • WiFiManager: AutoConnectAP за първоначална WiFi настройка
    • Примери: ESP8266 Station Mode, ESP8266 Wi-Fi Multi Mode, ESP8266 Access Point Mode, WiFiManager
  14. ESP8266 мрежови клиенти
    • Клиенти: WiFi клиент (сокет комуникация), HTTP клиент
    • Архитектура клиент-сървър: сървъри и клиенти
    • Основи на HTTP протокола: GET заявка, POST заявка, HTTP отговор, инструментът “Postman”
    • ESP8266 WiFi клиент: ESP8266WiFi библиотека за комуникация на ниско ниво, базирана на сокети
    • ESP8266 HTTP клиент: ESP8266HTTPClient библиотека за HTTP комуникация на високо ниво
    • Използване на HTTPS със сървърен SSL сертификат
    • Примери: HTTP GET заявка, изтегляне и четене на JSON документи
  15. ESP8266 уеб сървъри
    • Уеб сървъри
    • Основи на HTML: тагове, структура, примери
    • ESP8266 уеб сървър: ESP8266WebServer библиотека, стартиране на локален уеб сървър
    • Примери: WiFi LED управление през локален уеб сървър
  16. IoT облачни платформи
    • IoT облачни платформи: дефиниция, характеристики, предимства, примери
    • Thinger.io: функции, регистрация, свързване на устройство (микроконтролер ESP8266)
    • Thinger.io библиотека: обект ThingerESP8266, конфигурация на устройството, добавяне и поточно предаване на ресурси
    • Thinger.io библиотека: създаване на табло за управление в Thinger, джаджи за входни и изходни ресурси, data buckets, endpoints
    • Примери: управление на вграден LED + индикатор за време на работа чрез Thinger за платка ESP8266
  17. Втори практически проект: cloud-базирана IoT система
    • Изграждане на cloud-базирана IoT система с микроконтролер, периферни компоненти и управление през IoT cloud
    • Примерни проекти: хранилка за домашни любимци, система за температурен контрол, RFID ключалка за врата, охранителна система (СОТ система)
    • Защита на практически проект

Учебната програма е разработена от д-р Светлин Наков и негови колеги от СофтУни.