Dzien 1 - Wstep do IoT

Dzien 1 - Wstep do IoT
Photo by Jorge Ramirez / Unsplash

Cwiczymy PrintScreen 🗡️

  1. IoT - Internet rzeczy - oznacza sieć obiektów fizycznych — „rzeczy” —które są wyposażone w czujniki, oprogramowanie i inne technologie w celu łączenia się i wymiany danych z innymi urządzeniami i systemami za pośrednictwem Internetu.
  2. Przyklady: czujniki w garazach, inteligentna lodowka, SMART temperatura - system wentylacji mieszkania, systemy koszenia, smartwatch, smart TV, automatyczne bramy wjazdowe

Arduino

  1. Czym jest Arduino?

Arduino to platforma stworzona przez włoską organizację o tej samej nazwie. Obejmuje ona oprogramowanie wraz ze specjalnym językiem na bazie C oraz środowiskiem Arduino IDE, a także hardware w postaci serii płytek z mikrokontrolerem w pojedynczym obwodzie drukowanym i wyprowadzeniami.

Jest to projekt typu open source, dzięki czemu możliwe jest nie tylko kupienie płytki Arduino od producenta, ale również jej samodzielne zbudowanie i zaprogramowanie na podstawie udostępnianych schematów oraz kodu źródłowego.

Arduino można wykorzystać do budowy rozmaitych projektów, takich jak roboty, sterowniki do instalacji i sprzętów, urządzenia elektroniczne, pojazdy RC, zabawki, dekoracje oświetleniowe i wiele innych. Jest to możliwe przy użyciu kompatybilnych rozszerzeń, komponentów elektronicznych i urządzeń peryferyjnych, wśród których znajdują się między innymi nakładki GPIO Arduino Shield, moduły z czujnikami, sprzęt do odtwarzania i nagrywania dźwięku, ekspandery wyprowadzeń, sterowniki silników i serw, serwomechanizmy, silniki, kamery, wyświetlacze, klawiatury czy przyciski.

Arduino zostało wymyślone jako platforma umożliwiająca szybkie, łatwe i tanie prototypowanie. Dzięki tym założeniom korzystanie z płytki nie wymaga zaawansowanych umiejętności i pozwala na tworzenie ciekawych projektów nawet początkującym osobom. Ogromną zaletą platformy Arduino jest również jej popularność oraz duża społeczność użytkowników zgromadzona wokół projektu, dzięki czemu dostęp do akcesoriów, rozszerzeń i gotowych projektów jest bardzo szeroki, a znalezienie pomocy w razie problemów nie sprawia żadnej trudności.


2. Arduino - od czego zacząć?

Po wybraniu i zakupie płytki Arduino można przejść do właściwej nauki. W przeciwieństwie do bardziej skomplikowanych urządzeń, takich jak Raspberry Pi, do uruchomienia Arduino nie są potrzebne nośniki pamięci, zasilacze ani urządzenia peryferyjne – wystarczy przewód USB, który umożliwi podłączenie płytki do komputera i rozpoczęcie programowania.


3. Programowanie Arduino - jak to działa?

Arduino jest programowane w specjalnym języku, który w dużej mierze opiera się o popularny C/C++, ale dzięki uproszczonej strukturze umożliwia łatwe programowanie nawet początkującym osobom. Kodowanie odbywa się za pośrednictwem środowiska Arduino IDE. Zarówno w jego obrębie, jak i w sieci dostępne jest mnóstwo przykładowych programów, dzięki którym można poznać jak w praktyce należy pisać aplikacje dla Arduino. Dostępnych jest też wiele gotowych bibliotek od producentów akcesoriów oraz użytkowników – dzięki nim kod stanie się bardziej przejrzysty, a sterowanie poszczególnymi funkcjami będzie znacznie prostsze. Arduino IDE można pobrać z oficjalnej witryny projektu w zakładce “Software”.

  1. Uproszczony schemat i fajny blog: https://arduinotogo.com/2016/09/09/chapter-3-arduino-schematic/

ESP32

  1. Technologie IoT zawdzięczają swój rozwój przede wszystkim ekspansji niedrogich modułów WiFi o dużych możliwościach – jednym z głównych graczy na tym rynku jest ESP32.

Jeszcze dwadzieścia lat temu implementacja łączności WiFi w urządzeniach elektronicznych wiązała się z naprawdę niemałymi kosztami i koniecznością zastosowania złożonych rozwiązań sprzętowych. Czasy zmieniły się jednak i dziś „dodanie” interfejsu bezprzewodowego do budowanego przez siebie urządzenia stało się nie tylko bardzo tanie, ale także niebywale proste – a to za sprawą doskonałych, wyspecjalizowanych w łączności radiowej układów scalonych oraz opartych na nich modułach, pozwalających na szybkie i łatwe wdrożenie nawet złożonych funkcjonalności sieciowych tak w projektach amatorskich, jak i realizacjach komercyjnych. Dziś przyjrzymy się układowi ESP32 oraz możliwościom, jakie oferuje w zależności od rodzaju modułu bądź zestawu uruchomieniowego.


ESP32 jako taki, czyli najważniejsze informacje o popularnym transceiverze WiFi

ESP32 to popularna seria układów scalonych ASIC, stworzonych przez firmę Espressif Systems i przeznaczonych głównie do zastosowań w zakresie IoT (Internet Rzeczy) oraz w innych projektach związanych z komunikacją bezprzewodową.

Poszczególne wersje układu różnią się pod względem architektury i liczby rdzeni procesora, częstotliwości taktowania, a także ilości pamięci czy wreszcie rozmiarów obudowy i liczby pinów. Każdy z przedstawicieli rodziny ESP32 należy do klasy SoC (System-on-Chip), co oznacza, że integruje w sobie szereg bazowych komponentów, pełniących kluczowe role we współczesnych urządzeniach cyfrowych: procesor, zestaw pamięci i bloków peryferyjnych, a także podstawowe obwody zasilania oraz – najważniejszy element – transceiver radiowy, umożliwiający komunikację WiFi lub WiFi + Bluetooth.

Podstawowa seria układów ESP32 obejmuje aż 10 układów. Pozostałe sześć to dwurdzeniowe układy w kompaktowych obudowach QFN 5×5 mm lub LGA 7×7 mm, wyposażone w 48 pinów i obsługujące szereg trybów pracy transceivera. Co ważne, moduł Bluetooth pozwala na pracę z profilami klasycznego BT (L2CAP, SDP, GAP, SMP, AVDTP, AVCTP, A2DP (SNK), AVRCP (CT)), a także niskoenergetycznego standardu BLE (profile L2CAP, GAP, GATT, SMP).

W przypadku urządzeń o zasilaniu bateryjnym bardzo istotny jest fakt, iż układy ESP32 pozwalają „zejść” z poborem prądu nawet do 5 mikroamperów (!), co pozwala znacząco zaoszczędzić energię nawet w przypadku sprzętu przenośnego, wyposażonego w akumulatory o małej pojemności.

Z programistycznego punktu widzenia, zastosowanie ESP32 jest znacznie łatwiejsze, niż w przypadku wielu konkurencyjnych rozwiązań. Marka Espressif dostarcza oficjalne środowisko programistyczne oraz szereg bibliotek, przykładów oraz dokumentacji ułatwiającej rozpoczęcie pracy. Ponadto, dla ESP32 dostępne jest wsparcie dla różnych platform programistycznych, w tym Arduino, MicroPython oraz PlatformIO, dzięki czemu moduły i płytki deweloperskie oparte na ESP32 mogą być z łatwością wykorzystywane także przez mniej doświadczonych programistów, którzy do tej pory zdobywali doświadczenie np. na bazie Arduino IDE. Ze względu na niską cenę, wszechstronność i łatwość użycia, seria ESP32 zdobyła ogromną popularność wśród majsterkowiczów, hobbystów i profesjonalistów, a to w prostej linii doprowadziło do powstania ogromnej ilości dostępnych zasobów, tutoriali i przykładowych projektów, znacząco ułatwiających rozpoczęcie pracy z platformą.

Tinkercad - Circuts

Tinkercad is a free web app for 3D design, electronics, and coding.

Circuts - Tinkercad Circuits is a free online circuit simulator that runs in your web browser. You can use it to prototype circuits and even run Arduino code.

Kontrakt - Zasady na zajeciach

BAS - slowo klucz, by zatrzymac za dluga dygresje :D