Курсът “Интернет на нещата (IoT)” е сред специализираните курсове за професиите “Програмист“, “Приложен програмист“, “Системен програмист” и “Програмист на роботи” съгласно държавните общообразователни изисквания. Курсът е препоръчително да се провежда след навлизане в програмирането (след курсовете “Увод в програмирането” и “Програмиране”).
Настоящата учебна програма е приложима както за професионалните гимназии, така и за други учебни заведения.
Разпределение
- 108 учебни часа (2 учебни срока по 18 седмици по 3 часа)
- 10-11 клас (може и в 8 или 9 клас, факултативно)
Учебна програма
Настоящата учебна програма по “Интернет на нещата (IoT)” е разработена от д-р Светлин Наков от частна професионална гимназия по дигитални науки “СофтУни Светлина” на базата на курса “Програмиране за вградени системи” (който не включва интернет комуникация и е малко остарял).
- Въведение в IoT
- Какво е вградена система (embedded system)?
- Какво е IoT (интернет на нещата)?
- Как работят IoT системите? Контролери, сървъри, комуникация
- Предимства и недостатъци на IoT
- IoT примери: система за умно паркиране, автоматизиран поливна система, умен дом
- IoT устройства
- Какво е „нещо“ в екосистемата на IoT?
- IoT устройства: микроконтролери, мини-компютри, периферия
- Микроконтролер: структура, процесор, памет, периферни устройства
- Микропроцесор: микропроцесор срещу микроконтролер
- Едноплаткови компютри
- Примери за микроконтролери: Arduino, ESP8266, ESP32
- Запознаване с микроконтролер NodeMCU ESP8266
- Електротехника и електроника
- Електричество. Напрежение, волтаж, съпротивление. Закон на Ом
- Прав и променлив ток. Електрозахранване
- Верига и електрическа схема. Диаграми
- Електрически компоненти. Обозначения. Схеми
- Примери: батерия + резистори + светодиоди
- Среди за разработка и програмиране за ESP8266 / ESP32
- Arduino IDE. Работно пространство. Менюта. Лента с инструменти
- Скица (програма) в Arduino IDE. Структура и основни блокове. Компилация и качване върху контролера
- Основни функции на Arduino IDE: функции, променливи, библиотеки
- Дебъгване и серийна комуникация: Сериен монитор
- TinkedCad: онлайн Arduino симулатор
- Примери: мигане на лампички
- Ръководство: инсталирайте Arduino IDE за NodeMCU ESP8266
- Цифров вход и изход: GPIO
- Видове сигнали: цифрови и аналогови
- GPIO: вход / изход с общо предназначение
- Цифров сигнал: дискретна форма на сигнала
- Функции на Arduino за цифров вход/изход: pinMode(), digitalWrite(), digitalRead()
- Електронни компоненти за цифрови сигнали: бутон, зумер
- Примери: управление на бутон
- Аналогов изход и ШИМ
- Аналогов сигнал. Характеристики
- Аналогов изход: широчинно-импулсна модулация (ШИМ, PWM)
- Функции на Arduino за аналогов изход: analogWrite(), tone(), noTone()
- Общи аналогови изходни компоненти: пасивен зумер
- Примери: плавно включване на лампичка, изпълнение на музикална мелодия
- Аналогов вход и АЦП
- Аналогов вход: аналогово-цифров преобразувател (АЦП, ADC)
- Аналогов вход Arduino функции: analogRead(), map()
- Общи аналогови входни компоненти: потенциометър, фоторезистор
- Примери: управление на лампичка с потенциометър и с фоторезистор
- Първи практически проект: вградена система
- Изграждане на вградена система с микроконтролер и периферни компоненти
- Примерни проекти: игра за реакция, преводач на морзова азбука, комбинация за заключване на сейф, сензор за паркиране
- Защита на практически проект
- IoT сензори и периферни устройства
- Сензори: аналогови и цифрови сензори
- Периферни устройства: на чип, извън чип
- Функции на Arduino: random()
- Общи компоненти: RGB LED, LM35 температурен сензор, термистор
- Примери: работа с RGB LED, LM35 температурен сензор, четене на температура от термистор
- Shift регистър
- Shift Register: предназначение, описание
- Shift Register 74HC595N
- Функции на Arduino: shiftOut(), bitWrite()
- Общи компоненти: RGB LED, LM35, термистор
- Примери: управление на блок от 8 светодиода с помощта на Shift регистър
- LCD дисплей
- Дисплей с течни кристали: LCD 16×2
- LCD режими на свързване: I2C, 8-битов режим, 4-битов режим
- Arduino функции. Обектът LiquidCrystal: begin(), clear(), print(), setCursor()
- Примери: отпечатване на съобщение на LCD екран
- Релета и двигатели
- Релета: видове, свързване, изводи, програмиране
- Двигатели: DC мотор, серво мотор, стъпков мотор, програмиране, скорост на двигателя и PWM
- Общи компоненти: транзистор, диод
- Примери: превключвател на крушка на базата на реле, управление на реле с фоторезистор, управление на скоростта на DC мотор
- 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
- ESP8266 мрежови клиенти
- Клиенти: WiFi клиент (сокет комуникация), HTTP клиент
- Архитектура клиент-сървър: сървъри и клиенти
- Основи на HTTP протокола: GET заявка, POST заявка, HTTP отговор, инструментът “Postman”
- ESP8266 WiFi клиент: ESP8266WiFi библиотека за комуникация на ниско ниво, базирана на сокети
- ESP8266 HTTP клиент: ESP8266HTTPClient библиотека за HTTP комуникация на високо ниво
- Използване на HTTPS със сървърен SSL сертификат
- Примери: HTTP GET заявка, изтегляне и четене на JSON документи
- ESP8266 уеб сървъри
- Уеб сървъри
- Основи на HTML: тагове, структура, примери
- ESP8266 уеб сървър: ESP8266WebServer библиотека, стартиране на локален уеб сървър
- Примери: WiFi LED управление през локален уеб сървър
- IoT облачни платформи
- IoT облачни платформи: дефиниция, характеристики, предимства, примери
- Thinger.io: функции, регистрация, свързване на устройство (микроконтролер ESP8266)
- Thinger.io библиотека: обект ThingerESP8266, конфигурация на устройството, добавяне и поточно предаване на ресурси
- Thinger.io библиотека: създаване на табло за управление в Thinger, джаджи за входни и изходни ресурси, data buckets, endpoints
- Примери: управление на вграден LED + индикатор за време на работа чрез Thinger за платка ESP8266
- Втори практически проект: cloud-базирана IoT система
- Изграждане на cloud-базирана IoT система с микроконтролер, периферни компоненти и управление през IoT cloud
- Примерни проекти: хранилка за домашни любимци, система за температурен контрол, RFID ключалка за врата, охранителна система (СОТ система)
- Защита на практически проект
Учебната програма е разработена от д-р Светлин Наков и негови колеги от СофтУни.