Bezd ráto vě ■ bezdrátové přenosy dat - Bluetooth sériový port a vhodné moduly, úsporná varianta BLE ■ jak dostat data do mobilního telefonu (s Androidem) ■ ukázka vývoje aplikace pro zobrazení dat pomocí MIT App Inventor - obrázkové programování ■ představení koncepce Micro-Bit ■ infračervené ovládání ■ radiové propojení Bezdrátová komunikace ■ = spojení dvou subjektů jiným způsobem, než mechanicky (kabelem) ■ dle nosného média - opticky (světlo), rádiově a sonicky (zvukem -ultrazvuk u ponorek) - vzdálenost mezi komunikujícími body může být od několika metrů (IR infračervený ovladač) do miliónů kilometrů (družice v kosmickém prostoru) ■ nyní široce používána v oboru mobilních zařízení ■ mobilní telefony (GSM, GPRS, LTE,...), globální družicové polohové systémy (GPS), televize (DVB-T2), rádio (DAB), identifikace RFID, platby NFC, a jinde ■ vždy se používá vlnění určité frekvence - pokrývá spektrum od 9 kHz do 300 GHz ■ podstatná část spektra je striktně regulována, existují ale určité oblasti pro v podstatě volné využití - i zde ale jsou limity pro vysílací výkon vycházející z antény - RF na 433 a 868 kHz, Bluetooth a WiFi kolem 2.4 GHz ■ kdo by se dnes chtěl tahat s dráty ... Bluetooth (BT) ■ je v informatice otevřený standard pro bezdrátovou komunikaci propojující dvě a více elektronických zařízení - mobilní telefon, PC nebo bezdrátová sluchátka 1 vytvořen 1994 firmou Ericsson jako bezdrátová náhrada za sériové drátové rozhraní RS-232 - a to bude také hlavní oblast našeho využití - pracuje v ISM pásmu 2.4 GHz, k přenosu využívá metody FHSS, během 1s je provedeno 1600 skoků (přeladění) mezi 79 frekvencemi s rozestupem 1 MHz - to má zvýšit odolnost spojení vůči rušení na stejné frekvenci - dle výkonu 1-100 mW lze dosáhnout komunikace na 1 (class 3) až 100 m (class 1) 1 BT je dostupné v mobilních telefonech, přenosných a některých stolních PC, lze je dodat prostřednictvím USB-BT adaptéru - jsou různé verze (BT 2+EDR, BT 4.0, aktuálně BT 5.0), je to vrstva nabízející několik komunikačních protokolů, povinné jsou LMP, L2CAP a SDP - pro oblast mi kro kontrolérů má hlavní význam sériový RFCOMM protocol, nahrazující RS232 přenosy ■ BT viditelná zařízení o sobě předávají informace - název, třída, seznam služeb, technické (funkce, výrobce, použitá BT specifikace) ■ na počátku komunikace může být vyžadováno spárování, na základě PINU (často to je 0000 nebo 1234) ■ existuje i energeticky úsporná varianta Bluetooth LE (low energy) Hlavní BT verze ■ 2.0 + EDR (enhanced data rate) standard z 2004, rozšíření pro rychlejší přenos dat až 3 Mbit/s, reálně kolem 2.1 Mbit/s ■ 3.0 + High speed - 2009, rychlost přenosu dat až 24 Mbit/s - BT využito pouze k navázání spojení a vysokorychlostní přenos se provádí přes souběžné spojení 802.11 známé jako Wi-Fi ■ 4.0 - 2010, změnit způsob řízení spotřeby energie - pro malá zařízení, kde dochází jen k malému přenosu dat - delší životnost baterie, poprvé se objevuje název Bluetooth Low Energy (BLE) - 4.2 - 2014, zavádí funkcionalitu pro Internet of Things (loT) ■ 5.0 - 2016, přidané vlastnosti zaměřeny na loT - 4-násobný dosah, 2x vyšší rychlost a 8x větší kapacita ■ 5.1 - 2018, zpřesněná indoor navigace, s bluetooth majáky, až na cm - přidáním angle of arrival (AoA) a angle of d e partu re (AoD) - monitorují úhel odchozího signálu - najdete ztracené klíče nebo konkrétní regál v obchodě BT profily aby se dvě zařízení mezi sebou domluvila a vzájemně propojila („spárování"), musejí používat buď stejné, nebo kompatibilní BT profily; jinak se propojení nepodaří... A2DP (advanced audio distribution profile) umožňuje přenos hudby/zvuku ve stereo kvalitě AVRCP (audio/video remote control) - pro bezdrátová sluchátka - ovládat reprodukci audia na připojeném zařízení - hlasitost, posun skladeb,... BPP (basic printing) - ke komunikaci s tiskárnou DID (device ID) - k identifikaci připojeného zařízení HFP (hands-free) určený pro telefonování přes hands-free HDP (health device Profile) - zdravotnická zařízení - HTP health thermometer, HRP heart rate HID (human interface device) - myši, klávesnice, joysticky, tlačítka SPP (serial port) - náhrada za sériový přenos dat RS-232 po drátech SYNCH (synchronisation) - synchronizace času, data, kontaktů atd. VDP (video distribution) - přenos streamovaného videa BT a Arduino ■ běžné moduly BT rozhraní neposkytují, takže se musí pouzí vhodný adaptér, který sériovou komunikaci převádí na bezdrátový BT přenos ■ na obou stranách se to tedy jeví jako běžný sériový přenos ■ adaptérů existuje celá řada, SPP mod je od BT 2.0+EDR - některé umožňují komunikaci na 3.3 i 5 V úrovních, většinou ale BT adaptéry fungují na 3.3 V - u spojení s 5 V Arduinem se tedy musí provést přizpůsobení úrovní, aby nedošlo ke zničení BT modulu ■ HC-05 je asi první volbou, výchozí nastavení je pin 1234, 9600 Bd LEUEL: 3. 3U POWER: 3. 6U-6U FC-114 ►STATED — HXD ** EN S výměna dat mezi porty: #include SoftwareSerial BTSerial(9,10); // RX, TX void setup() { Serial.begin(9600); Serial.println("Enter AT commands:"); BTSerial.begin(38400); } void loop() { if (BTSerial.availableO) Serial.write(BTSerial.read()); if (Serial.availableO) BTSerial.write(Serial.read()); } na druhé straně PC je-li partnerem PC s BT rozhraním či adaptérem, volí se SPP profil a lze použít běžný terminálový program - dříve býval Hyperterminal součástí Windows Putty - univerzální komunikační aplikace využitelná (mimo jiné) i přenosům přes sériové porty - ukázka nastavení portu - ve Windows jsou sériové porty COM1,.... Mobaxterm - pokročilý, velmi mnoho protokolů a detailní nastavení další volné programy -TerraTerm, Termite součástí Arduino IDE je terminálový modul Seriál Monitor, a pro grafické znázornění přicházejících numerických dat slouží Seriál Plotter tí\ PuTTY Configuration ľategory B Session L Logging B Terminal Keyboard Bell Features B- Window Appearance Behaviour Translation Selection Colours B Connection Data Proxy Telnet Rlogin B SSH Senal Options controlling local serial lines Select a serial line Serial I™ to connect to Configure the serial line Speed (baud) Data bits Stop bits Parity Row control cor.n None About Open Cancel ;C0M Port [Serial] *4 9 ff 'É, © Quick connect 4A . Saved sessions ÉÉ 192.16B.1.128 RPiZW fcjj; Broadcast [XDMCP] (1) <S = Devices BLUETOOTH CLASSIC IBBC micro:bit D3:32:4F:38:73:52 (paired) ICC41-A 00:15:83:00:BE:69 t ▼ Á - 21:27 SCAN O BLUETOOTH LE Nastavení BT ■ pro změnu různých vlastností BT adaptérů se používají AT příkazy, pocházející z dob telefonních modemů, při přepnutí do AT-módu - propojí se s PC pomocí USB-Serial adaptéru (pozor na 3.3 V), rychlost je 38400 Bd - pin označený KEY nebo ENABLE se připojí na HIGH (3.3 V), LED bliká 2x za 1 s - alternativně může být na modulu tlačítko - podrží se před připojením napájení - posílaný text musí končit znaky CR LF ("\r\n", nebo byty OD 0A), BT modul odpovídá buď Ok, nebo Error ■ AT pro kontrolu komunikace ■ AT+VERSION? verze BT firmware ■ AT+ORGL obnovení výchozích (továrních) parametrů ■ AT+ADDR? adresa BT modulu ■ AT+NAME? název modulu (HC-05), AT+NAME=jmeno pro nastavení ■ AT+ROLE? 0 slavě, 1 master; normálně slavě - propojení inicializuje druhé zařízení ■ AT+PSWD? password, tj. PIN, defaultní je 1234 ■ AT+UART? komunikační rychlost - plus řada dalších, u jiných adaptérů se může lišit - prostudovat manuál univerzální standard pro jednoduchou výměnu dat mezi zařízeními - minimalizace energetických nároků - několik let na mincové baterii - podpora BLE na každém operačním systému umožňuje vývoj pro zařízení od domácích spotřebičů, bezpečnostních systémů, senzorů po fitness monitory pro malé objemy dat a občasné přenosy - při pravidelném rychlém záznamu dat se energie moc neušetří z programátorského hlediska ale řádově složitější - hierarchie a velká variabilita přenosový protokol má dvě části - GAP (generic access profile) a GATT (generic attribute profile) GAP specifikuje, jak se mají BLE zařízení chovat při vyhledávání ostatních zařízení, odesílání dat, navazování bezpečného spojení, apod. role zařízení: 1) vysílání - netřeba explicitně vytvářet spojení pro přenos dat - broadcaster zařízení odesílá veřejné advertising pakety - observer přijímá data, které odeslal broadcaster. ■ 2) připojení - zařízení musí explicitně vytvářet spojení pro výměnu dat - tyto role jsou více běžně využívány než vysílací role ■ peripheral odpovídá slave zařízením, používá advertising pakety, umožňující centrálním zařízením je nalézt a následně navázat spojení - po úspěšném připojení se pakety přestávají posílat a zařízení zůstává připojené k centrálnímu zařízení, které přijalo jeho žádost - většinou se jedná o zařízení s nízkou spotřebou energie, které odesílá data nebo signál, že je stále aktivní ■ central odpovídá master zařízením, jsou iniciátorem a správci spojení - přijímají advertising pakety vysílané peripheral zařízeními - v jeden okamžik můžu připojit několik peripheral zařízení - udržení více spojení je náročné na výpočetní výkon - notebooky, smartphony PERIPHERAL DEVICE PERIPHERAL DEVICE A PERIPHERAL DEVICE CENTRAL DEVICE PERIPHERAL DEVICE Advertising a skener ■ BLE má pouze jeden formát a dva typy paketu - advertising a data - advertising pakety slouží k 1) posílání dat pro aplikace, které nepotřebují navazovat spojení (broadcaster / observer) - 2) nalezení peripheral (slave) zařízení a připojení k nim - advertising paket může obsahovat až 31 bytů advertising dat, společně se základní hlavičkou s adresou zařízení - pakety jsou odesílány v pravidelném advertising intervalu - od 20 ms do 10.24 s, čím kratší je interval, tím vyšší je šance na zachycení paketu centrálním zařízením, protože pakety jsou vysílány častěji - vyšší spotřebu energie - nejsou synchronizovány takže advertising paket je zachycen skenerem pouze v případě, že zrovna naslouchá - skenování může být aktivní nebo pasivní ADVERTISING INTERVAL ADVERTISING INTERVAL ADVERTISING INTERVAL I4-h\ \4-M \4-H ADVERTISING DATA ADVERTISING DATA ADVERTISING DATA Passive Scanning i i SCANNER _!_1 ADVERTISER Active Scanning SCANNER ADVERTISING INTERVAL SCAN REQUEST ADVERTISING INTERVAL ADVERTISING DATA SCAN RESPONSE DATA ADVERTISING DATA SCAN RESPONSE DATA T i Y a SCAN REQUEST Broadcasting a observing vytvořením broadcaster zařízení lze jednoduše vysílat data - může je přijímat libovolný počet zařízení - mezi sebou nenavazují spojení - broadcasting je všesměrové vysílání, lze dosáhnout výhradně jen s pomocí advertising dat observer aktivně vyhledává tyto pakety a přijímaje - v případě, že by se observer připojil na broadcastové zařízení, odesílání advertising paketu se zastaví a broadcaster přestane vysílat data - tato situace nastane z důvodu výhradního spojení se slave zařízením OBSERVER DEVICE OBSERVER DEVICE OBSERVER DEVICE BLE BROADCASTER OBSERVER DEVICE GATT reprezentace dat - jak si je dvě BLE zařízení budou vyměňovat pomocí služeb (service) a charakteristik ■ využívá attribute protocol, popisující strukturu uložených služeb a charakteristik - ukládá to do vyhledávací tabulky - GAP a GATT role jsou na sobě nezávislé, tedy peripheral nebo centrální zařízení může být klient nebo server - dle směru toku dat ■ role zařízení: ■ client - centrální zařízení, které posílá požadavky na server a přijímá od něj odpovědi - připojení na server je definované jako výhradní, proto server může být současně připojený jen k jednomu clientovi - client musí nejprve provést vyhledání služeb (service) poskytovaných serverem, aby mohl číst, zapisovat nebo přijímat aktualizace o změně hodnoty ■ server - periferní zařízení, které obsahuje attribute protocol, umožňující zpřístupnění dat klientovi - přijímá požadavky od klienta a posílá zpět požadovaná data - posílá klientovi echo o tom, že došlo ke změně dat na serveru ■ každé BLE zařízení musí obsahovat alespoň základní server - a to i v případě, že bude vracet chybnou odpověď Profily, služby a charakteristiky BLE technologie má seznam předem definovaných služeb - každá služba je schválena organizací Bluetooth SIG1 profil je rozdělen službami (service) na logické části, kde každá služba je předem popsána use case diagramem a rolemi - lze tak vyvíjet aplikaci využívají konkrétní službu a bude zajištěno, že aplikace bude fungovat s jakýmkoliv zařízením naprogramovaným touto službou - G ATT umožňuje také vytvářet vlastní služby BLE používá pro označení služeb charakteristik tzv. UUID (universally unique identifier), pomocí kterého je lze identifikovat - UUID je 128 bitové číslo zajišťující globální unikátnost - existuje také zkrácená verze z důvodu efektivnosti, která má pouze 32 bitů; tento zkrácený formát může být použit jen pro služby definované v BLE specifikaci services obsahují charakteristiky, které představují nejnižší úroveň GATT transakcí - charakteristika obsahuje dvě základní části, v první části jsou ukládána data a druhá nepovinná slouží pro popis tzv. descriptor PROFILE SERVICE CHARACTERISTICS CHARACTERISTICS SERVICE CHARACTERISTICS CHARACTERISTICS Read / write / notify / indicate ■ toto jsou možnosti, co může centrál zařízení dělat s určitou charakteristikou z periferal zařízení ■ read: požádá periferní zařízení o zaslání zpět aktuální hodnoty charakteristiky - často se používá pro charakteristiky, které se příliš často nemění, například charakteristiky používané pro konfigurace, čísla verzí atd. ■ write: úprava hodnoty charakteristiky - často se používá pro příkazy, aby periferie něco vykonala - zapnout / vypnout ■ indicate a notify: požadavek na periferii, aby průběžně zasílala aktualizované hodnoty charakteristiky - aniž by o to centrála musela neustále žádat - data ze sensorů, stavové informace, apod. BLE a Arduino ... jednoduše díky komplikované struktuře komunikace se prosazuje pomalu výhodné je využít BLE adaptér AT-09 (HM-10, čip CC2540 nebo ..41) - ten těží z BLE úsporného provozu, ale komunikaci z hlediska uživatele zjednodušuje na klasický sériový přenos - chová se „normálně" jako HC-05 - fakticky se dle BLE zvyklostí definuje pouze charakteristika UART jako partner pro komunikaci je třeba program, který režim BLE4.0 umí - v os Android lze použít některý z programů pro BLE sériovou konzoli, např. Seriál Bluetooth Terminal LEVEL:3.3V i Power:3.6V—6V' STATE * — RXD * * TXD i — GNĎ » — VCC | — EN * je dostupný i modul integrující AT-09 společně s Arduinem: na destičce jsou čipy ATMEGA328P a CC2540 - je spojen přímo se Seriál přes DO a D1 piny, tedy to, co se pošle Seriál.print(data) jde ven přes USB i pře BLE při příjmu nesmí samozřejmě komunikovat oba současně (nastal by zmatek) neoficiální název tohoto klonu je Keywish BLE-Nano - nesplést se zcela odlišným Arduino Nano 33 BLE - dle BLE standardu nabízí Seriál - service FFEO, characteristics FFE1 read, write i notifý vše v jednom demo pro AT-09 #include SoftwareSerial mySerial(2, 3); // RX, TX void setup() { mySerial.begin(9600); Serial.begin(9600); sendCommand("AT"); sendCommand("AT+ROLE0"); sendCommand("AT+UUIDOxFFEO"); sendCommandC'AT+CHAROxFFEl") ; sendCommand("AT+NAMEbluino") ; } void sendCommand(const char * command) { Serial.print("Command send: "); Serial.println(command); mySerial.println(command); delay(100); //wait some time char reply[100]; int i = 0; while (mySerial.available()) { reply[i] = mySerial.read(); i+= 1; } reply[i] = '\0X; //end the string Serial.print(reply); Serial.println(„ Reply end"); } void readSerial() { char reply[50]; int i = 0; while (mySerial.available()) { reply[i] = mySerial.read(); i+= 1; } reply[i] = '\0X; //end the string if(strlen(reply) > 0) { Serial.println(reply); Serial.println("We have read some data"); } void loop() { readSerial(); delay(500); } BLE a Arduino ... plnohodnotně ■ originál Arduino Nano 33 BLE ■ osazeno 1 MB FLASH paměti a výkonným procesorem nRF52840 (Nordic Semiconductors) - 32-bit ARM Cortex-M4 CPU taktované na 64 MHz - BLE párování, také přes NFC, ultra úsporný režim - na desce s 9-osou inerciální měřící jednotkou (IMU) = akcelerometr, gyroskop a magnetometr s rozlišením 3 os - pro robotické experimenty, krokoměry, kompasy ■ je i varianta SENSE s mnoha dalšími sensory - teploty, tlaku, vlhkosti, světla, barev, dokonce gesta a mikrofon ■ podpora je zajištěna standardní ArduinoBLE knihovnou, v modech peripheral i centrál, funguje i s Nano 33 IOT či MKR WiFi 1010 - alternativní BLE desky jsou dostupné i od výrobce Adafruit - ItsyBitsy nRF52840 Express, Feather nRF52 Bluefruit, Clue (i s displejem) - používá se knihovna Bluefruit- příklady aj. nelze zaměnit s výše uvedenou ArduinoBLE BBC microibit - pro děti a starší ... asi nejrozšířenější modul (S BLE) pro hravé osvojení programování ihned, open source, komunita Micro USB MSC,UART,CMSIS-DAP,webUSB Grafické programování Napájení 5V 5x5 LED Matrix J Digitální a analogové 1/0 Použitelné jako SPI,UART,I2C Plošky pro vodiče s krokodýly Otvory pro vodiče s banánky r □ f o r □ llllillllllllllllllll GND i-n_n_r 2,4GHz anténa - Bluetooth s nízkou spotřebou Rádiová komunikace Gazelí Nordic nRF51822 Pohybový senzor ST LSM303AGR v1: nRF51822, v2: nRF52833 Uživatelská tlačítka A, B Externí napájení ™ Vstup napětí 3,3V nebo výstup napětí baterie r Zlacený konektor Napájecí konektor JST konektor pro napětí 3V — Tlačítko RESET NXP KL26Z Čip pro USB rozhraní Blokove schema 1 verze1.5a2 3V I2C Edge Connector Regulator GPIO KL27Z UART GPIO I2GS JST USB Reset BTN LEDs Added in V2 ■ Present in micro:bit V1 připojeni ■ na velké plošky lze připnout „krokodýlky" ■ moduly s piny, ploškami a pro kontaktní pole 3V PO Pí PZ 3V GND 0 a 3V0 01 MM 02 1Í0 3< 150 05 140 08 130 07 120 08 110 09 100 MOK UiiO SPI1 iíí_. cg «- Reserved: accessibility LED dol 1 7— #- *■ L(D Lu1 j -[.■■■..■...■■■ ■,")-| >f if D- Coí i~ti v1-T jak napájet? • USB konektor - z PC, notebooku, power banky další dvě možnosti - pozor - max. 3.3 V • konektor JST na microbitu - 2x 1.5 V baterie • přes pin 3V zlaceného konektoru Programování - MakeCode ■ https://makecode.microbit.org offline verze pro W10 a MAC OS - online - kombinuje grafické bloky + JavaScript + Python) - bloky nelze poskládat špatně, navíc hned otestování v simulátoru - rozšíření pro různé moduly, příklady a nápovědy B simulátor Microsoft Omicf°:bit A ■ 1 1 3V GND C ft 42 C 1111 Show console Simulator Python v I A Advanced fy Functions show leds bloky programu stavební prvky v ■ ob Ciame Ej Download testi 1-1 textové verze kódu ekvivalent v JavaScriptu: basic.showLeds("* # . # . # . # # # . ) let cnt = 0 basic.forever(function () { cnt = cnt + 1 serial.writeNumbers([cnt, input.temperature()]) basic.pause(1000) }) v Pythonu: basic.show_leds(""" # . # . # . # # # . ii ii ii j cnt = 0 def on_forever(): global cnt cnt = cnt + 1 serial.write_numbers([cnt, input.temperature()]) basic.pause(1000) basic.forever(on forever) kódy nemusí být zcela kompatibilní se standardními verzemi jazyků „obrázkové" programování se stává nepřehledným pro větší projekty bluetooth accelerometer service 5LE SI miCITOlblt ^° additional code is needed on the micro:bit to use the Bluetooth accelerometer service from another device. ■ v MakerCode - spustí se BLE služba odpovídající např. sensoru: ■ podobně to je možné pro další hw části E JAVASCRIPT function bluetooth. startAccelerorrteterService () : void; 4» PYTHON def bluetooth.start accelerometer service(): None ■ připojující se zařízeni si pak vybere, co chce sledovat a přihlásí se k odběru dat on start ■ services: startAccelerometerService, startButtonService, startlOPinService, startLEDService, startMagnetometerService, startTemperatureService, startUartService, ■ připojení BLE: onBIuetoothConnected, onBIuetoothDisconnected GATT služby u microibit Service On micro:bit Description Generic Access mandatory generic information about the device. Mandatory in GATT profiles. Generic Attribute mandatory informs clients of changes in the attribute table such as reassigned handle values Device Info mandatory more comprehensive details aboutthe device and its manufacturer Accelerometer optional accelerometer sensor state and configuration of the frequency for readings reports Magnetometer optional magnetometer sensor state and frequency of reports, access to a "current bearing" in degs Temperature optional integer temperature in oC, derived from several sensors in the micro:bit Button optional allows button state changes to be notified to the client LED optional access to both the LED "display" grid and the system status LED 10 Pin optional access to and configuration of 10 pins on the edge connector Event optional allows the micro:bit to inform the connected client of the types of event it wants to be informed about; event data includes both a type and a reason or origin DFU Control mandatory used to initiate device firmware update UART optional pseudo serial data communications over BLE, allowing arbitrary byte sequences to be exchanged in either direction with a connected peer; an implementation of Nordic Semicondutor's UART emulation over BLE Partial Flashing mandatory allows a client to update the MakeCode program on the Micro:Bit via BLE ■ alternativní (více profesionální...) programování micro:bit modulů: ■ Python: online na https://python.microbit.0rg/v/2 ■ Arduino IDE: - po doinstalování přes Additional Board Manager z ■ https://sandeepmistry.github.io/arduino-nRF5/package_nRF5_boards_index.json ■ Mbed: online kompilátor pro STM32 mikrokontrolery - https://os.mbed.com/ BMP180 a OLED Xiao s připojeným sensorem BMP180 - měří teplotu (oC) a atmosférický tlak (Pa) data se zobrazují na 1,3" OLED display obě periferie připojeny na I2C sběrnici (mají náhodou piny se shodnými signály) současně se data posílají sériově na USB následuje ukázka ovládacího programu o > 3J l l I I I I ololololololo >|>l>l>l>l>|> #\mm< DlOlO £l2 ls BMP180 a OLED plus Bluetooth ■ Xiao s připojeným sensorem BMP180 a 1,3" OLED display na I2C sběrnici ■ data se posílají sériově na USB ■ a navíc přes SeriaM na Bluetooth modul HC06 ■ následuje ukázka ovládacího programu ■ klasický SPP profil - chová se jako sériový port Schéma zapojení CSB GND VDDIO SCL EDO BMP180 O ů í>) o co oo r-Q2>-- f XIA Ct E V ■ f V 1 O-i M (« ŕ (Jl O #include #include U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE); Adafruit_BMP085 bmp; char buf[10],flt[10]; float t; void setup(void) { u8x8.begin(); u8x8.setPowerSave(0); Serial.begin(9600); if (!bmp.begin()) { Serial.println("Valid BMP180 sensor not found!"); while (1) { } } Seriall.begin(9600); // BT HC06, pin 1234 u8x8.setFont(u8x8_font_amstrad_cpc_extended_r); } void loop(void) { u8x8.clear(); t = bmp.readTemperature(); dtostrf(t,5,1, fIt); sprintf(buf, "t: %s",flt); u8x8.drawString(1,0,buf); Serial.print(buf); Serial.print(1\t1); Seriall.print(buf); Seriall.print(1\t1); sprintf(buf, "p: %d", bmp.readPressure()); u8x8.drawString(1,4,buf); Serial.println(buf); Seriall.println(buf); delay(2000); }} BT klasicky i LE? ... JDY-32 ■ dual Bluetooth 3.0 SPP + 4.2 BLE Slave mode ■ distance 40 m, def. 9600 Bd, SPP pin 1234 AT+VERSION Version number JDY-32-V1.0 AT+RST Soft reset AT+DISC AT command disconnected AT+MAC Query the MAC address of BLE AT+MACS AT+BAUD AT+NAME AT+NAMES AT+TYPE Query the MAC address of SPP Baud rate 9600 BLE broadcast name settings and SPP broadcast name setting and c SPP password connection type 2 ■ 0: No password, 1: You need to enter a password for each connection. 2: The first connection requires a password AT+PIN SPP connection password 1234 AT+DEFAULT Reset vcc GND Sf2 Xiao BLE = asi nejlepsi (2022) Versatile Nordic nRF52840 chip with FPU, operating up to 64 MHz, mounted multiple development ports, supported by Arduino / CircuitPython Variant SENSE ... accelerometer + microphone Wireless Capabilities: 5.0 BLE functions with onboard antenna, also provide NFC connectivity Elaborate Power Design: Provide ultra-low power consumption as 5 uA in deep sleep mode while supporting lithium battery charge management thumb-sized design: 21 x 17.5mm, classic form-factor, suitable for wearable devices perfect for production: Breadboard-friendly SMD design, no components on back Sensor Hub loT & Smart Home Robotics SWD debug Wearables More to Explore. Co na druhé straně? smartphone - obecně použitelné aplikace pro BT SPP či implementace sériového přenosu Seriál Bluetooth Terminal (Kai Morich) - aplikace pro terminály / konzoly pro m i kro kontroléry, arduino a spol., mnohá další zařízení se sériovým / UART rozhraním propojeným s Bluetooth nRF Connect for Mobile (Nordic Semiconductors) - obecný nástroj, který vám umožní skenovat, inzerovat a prozkoumám zařízení Bluetooth Low Energy (BLE) a komunikovat s nimi SCANNER BONDED AOlŕEHl ótH , Mordu: Blmk) PPP* C4:IK:EZAF74:Aa |3J-(E^^ NOT BOWQEO A - Vi ilBrr. 4-M'j ins Device Typ*. LE exily .Vlíľ'í -1m3 . eguy .'.[ ."■....... [O] Ur krifjWfi ľuyj GerteiJiDiSiL'.-snUi*. fl'EGiNrtSuüpartuü Complete l ncai Name Nord|c_Bhnk|r Complete vl ol 128 bil Strvicc JU IDs. 00001523-1712-tffl*-1523-7BSíeat>cdl23 CLONE RAW MORÍ i NVA 9Bfft$SC24FW NDT BCNOLD j HKlBrn H27]ml SalanŕWaich, iví2í03?e>tE IfffflM COfSltt A1 C7:7* uyyjuj^ NOT BONDED J 926i-e3-?A-«B-ei 190944 B83 'Kec*fc»- nroehwd 1609«4Vi [SenreiPHVundated(1 ZU) PHV updated (TX LF?I ■ CurtneLliun pardmclcf s I interval 195 0ms. tatet flDDDnts, 45 40 35 30 ř5 70 15 10 5 ■ t II. r - mít Appinventor 2 Vlastní aplikace? ■ http://ai2.appinventor.mit.edu/ ■ kombinace tvorby grafického rozhraní aplikace a „obrázkového" programování reakcí na události _ ■ https://droidscript.org DľOÍdSCľÍpt ■ rychlý vývoj mobilních aplikací pomocí Javascriptu ■ klasický textový přístup, přímo v mobilu nebo přes web ■ bohatá dokumentace a příklady ■ x BLE není přímo implementováno 18:25 ..il^ffl i*cm App development -Simplified DroidScript is an easy to use, portable coding tool which simplifies mobile App development. It dramatically improves productivity by speeding up development by as much as 10x compared with using the standard development tools. It's also an ideal tool for learning JavaScript, you can literally code anywhere with DroidScript, it's not cloud based and doesn't require an internet connection. Unlike other development tools which take hours to install and eat up gigabytes of disk space, you can install DroidScript start using it within 30 seconds! » TAKE A TOU R G ET THE A Hello World Shows an image and a popup me: Controls Dark Demo of controls using default dc Controls Light Demo of controls using light therr Button Styles Demos various button styles Card Layout Rounded corner layouts with shad Drawing Demo Shows how to use drawing functk m ♦ Hello World.js AddAdView //Called when application is started, function OnStartQ { AddButton //Create a layout with objects vertically centered lay = app.CreateLayout( "linear", "VCenter.Fili: AddCameraVi... //Add an image 1/5 of screen width and cone ^fjdCheckHnx img = app.Addlmage( lay, "Img/Heilo World.png',0.2,-1 ',. //Add a button 1/3 of screen width and 1/10 AddCodeEdit btn = app.AddButton( lay, "Press Me", 0.3,0.X)~ btn.SetMargins( 0, 0.05, 0, 0); btn.SetOnTouch( btn_OnTouch); //Add layout to app. app.AddLayout( lay); } //Called when user touches our button. function btn_0nTouch() { //Show a popup message. app.Show0opup( "Hello World!"); AddD rawer Addlmage AddLayout Add List AddScroller AddSeekBar Další informace https://cs.wikipedia.org/wiki/Bluetooth - detailní přehled standardního (klasického) Bluetooth systému, protokoly, apod. https://blog.laskarduino.cz/uart-bluetooth-moduly/ - vlastnosti HC-05, HC-06 a AT-09 (= HM-10) BT modulů https://www.arduino.cc/en/Reference/ArduinoBLE - stručný úvod do BLE z pohledu Arduina, popis ArduinoBLE knihovny zajímavé ... https://bastlirna.hwkitchen.cz/ https://github.com/jipech/PRIM-microbit - programujeme Micro:bit pomocí Pythonu https://www.microbiti.cz/2019/02/priklady-pro-zacatecniky.html https://makecode.microbit.org/courses/csintro - oficiální kurz Intro to Computer Science