Internet rzeczy to przykład koncepcji, która - w odróżnieniu od wielu innych relatywnie młodych dziedzin IT - została więcej niżeli pozytywnie zweryfikowana przez czas i rynek. Już dziś IoT znajduje niezwykle pokaźne wykorzystanie w wielu obszarach życia: od projektów stricte hobbystycznych, przez automatykę domową, handel i usługi, po systemy inteligentnych miast, przemysł i rolnictwo. Internet rzeczy nadal ewoluuje - i staje się coraz powszechniejszy, a to może być zachętą do tego, by poznać go bliżej. Internet rzeczy. Podstawy programowania aplikacji i serwerów sieciowych w językach C/C++, MicroPython i Lua na urządzeniach IoT ESP8266, ESP32 i Arduino może się okazać idealną propozycją na początek przygody z IoT. Książka kompleksowo objaśnia specyfikę wybranych sprzętów i uczy, jak je programować w sposób na tyle dostępny,wystarczy przeciętna znajomość obsługi komputera, żeby zacząć wytwarzać pierwsze projekty. Treść została zilustrowana przykładowymi kodami źródłowymi, co bezsprzecznie upraszcza stawianie pierwszych kroków.
Dzięki książce:
- poznasz wybrane urządzenia IoT
- zaznajomisz się z narzędziami programistycznymi
- nauczysz się podstaw języków programowania
- uruchomisz własny serwer dla aplikacji web
- stworzysz serwer WWW na urządzeniu IoT
- a choćby zaprojektujesz serwer Minecrafta!
Spis treści książki
Przedmowa
1. URZĄDZENIA INTERNETU RZECZY
1.1. Platforma Arduino1.1.1. Arduino UNO R3
1.1.2. Arduino Nano
1.1.3. Arduino Mega 2560 Rev3
1.1.4. Arduino Mega 2560 + WiFi ESP8266
1.1.5. Podsumowanie
1.2. Platforma Espressif1.2.1. ESP-01
1.2.2. ESP-M
1.2.3. ESP-07
1.2.4. ESP-12
1.2.5. ESP-15F
1.2.6. Płytki rozwojowe ESP
1.2.7. Tryby pracy modułów
1.2.8. Systemy plików SPIFFS i LittleFS
1.2.9. Podsumowanie
1.3. Pozostałe urządzenia1.3.1. BW16 RTL8720DN
1.3.2. SIM800L GSM/GPRS
1.3.3. NRF24L01+
1.4. Lista zakupów1.4.1. ESP8266 na korzystny początek
1.4.2. ESP32 dla wymagających
2. OPROGRAMOWANIE
2.1. Arduino IDE2.1.1. Instalacja oprogramowania dla ESP8266 i ESP32
2.1.2. Obsługa systemów plików SPIFFS i LittleFS
2.2. PlatformIO IDE2.2.1. Instalacja i konfiguracja
2.2.2. Tworzenie nowego projektu
2.2.3. Obsługa systemów plików SPIFFS i LittleFS
2.3. ESPlorer
2.4. UPyCraft
2.5. UPyLoader
2.6. Flash Download Tool
2.7. NodeMCU PyFlasher
2.8. EM-WiFi Configuration
3. FIRMWARE
3.1. Po co aktualizować oprogramowanie układowe?
3.2. Aktualizacja oprogramowania3.2.1. Narzędzia do aktualizacji oprogramowania
3.2.2. AT
3.2.3. MicroPython
3.2.4. Lua (NodeMCU)
3.3. Kompilowanie oprogramowania3.3.1. AT
3.3.2. MicroPython
3.3.3. Lua (NodeMCU)
4. PODSTAWY PROGRAMOWANIA
4.1. C (Arduino)4.1.1. Struktura kodu źródłowego
4.1.2. Stałe predefiniowane
4.1.3. Zmienne i typy informacji
4.1.4. Konstrukcje warunkowe
4.1.5. Pętle
4.1.6. Funkcje
4.1.7. Zestaw funkcji dla Arduino
4.2. MicroPython4.2.1. Struktura kodu źródłowego
4.2.2. Zmienne i typy informacji
4.2.3. Operacje na plikach
4.2.4. Konstrukcje warunkowe
4.2.5. Pętle
4.2.6. Funkcje
4.2.7. Biblioteki programistyczne
4.3. Lua4.3.1. Zmienne i typy danych
4.3.2. Operacje na plikach
4.3.3. Konstrukcje warunkowe
4.3.4. Pętle
4.3.5. Funkcje
4.3.6. Biblioteki programistyczne
5. PROGRAMOWANIE APLIKACJI SIECIOWYCH
5.1. Szybki kurs wykorzystywania komend AT5.1.1. Diagnostyka
5.1.2. Sieć wi-fi
5.1.3. Punkt dostępowy
5.1.4. Serwer z obsługą połączeń TCP i UDP
5.2. Szybki kurs tworzenia stron WWW5.2.1. Szkielet dokumentu hipertekstowego
5.2.2. Użytkowanie wyraźników HTML w praktyce
5.3. Lista zakupów
5.4. RTC, Ethernet i karty pamięciProjekt 1. Zapis informacji z czujników na kartę SD
Projekt 2. Zegar czasu rzeczywistego - RTC
Projekt 3. Dostęp do sieci Ethernet
5.5. Wi-fi, Blynk i serwer TCPProjekt 4. Serwer TCP i udostępnianie danych
Projekt 5. Komunikacja TCP z platformą Blynk
Projekt 6. Własna platforma IoT - PHP i SQL
5.6. Powiększenia dla modułu ESP-01Projekt 7. Czujnik temperatury DS18B20
Projekt 8. Czujka temperatury DHT11
Projekt 9. Moduł przekaźnika
Projekt 10. Kontroler RGB LED
5.7. Usługi siecioweProjekt 11. SMTP - powiadomienia e-mail
Projekt 12. MySQL - transfer informacji do bazy SQL
Projekt 13. FTP - zapis informacji na serwerze plików
Projekt 14. MQTT - protokół komunikacyjny dla IoT
Projekt 15. DDNS - jedna nazwa przy zmiennym IP
Projekt 16. SMS - komunikacja przez sieć GSM
5.8. Zdalna aktualizacja oprogramowaniaProjekt 17. OTA z Arduino IDE i w linii poleceń
Projekt 18. Aktualizacja firmware poprzez WWW
Projekt 19. Aktualizacja LittleFS poprzez WWW
Projekt 20. ElegantOTA - elegancka alternatywa
6. WEB FRAMEWORK - C, MICROPYTHON I LUA
6.1. AWOT - serwer w języku C6.1.1. Szkielet serwera WWW
6.1.2. Routing
6.1.3. Obsługa żądań HTTP i odpowiedzi do klientów
Projekt 21. Serwer WWW w frameworku aWOT
6.2. Microdot - serwer w języku MicroPython6.2.1. Przygotowanie środowiska pracy
6.2.2. Routing
6.2.3. Programowanie asynchroniczne i SSL
6.2.4. Obsługa żądań HTTP i odpowiedzi do klientów
6.2.5. Szablony dla strony WWW
Projekt 22. Serwer WWW w frameworku Microdot
6.3. Express - serwer w języku Lua6.3.1. Przygotowanie środowiska pracy
Projekt 23. Serwer WWW we frameworku Express
7. ZAKOŃCZENIE
7.1. Trochę rozrywki z grą MinecraftProjekt 24. Serwer gry Minecraft