OLED displej 128×64 2,42″ SSD1309 SPI a Arduino

Malé OLED displeje mám rád, protože se dají rychle připojit k Arduinu nebo ESP a hned je na čem zobrazovat hodnoty, menu nebo stav zařízení. Tentokrát tu mám ale trochu větší variantu. Nejde o klasický malý 0,96″ OLED modul, ale o bílý OLED displej s úhlopříčkou 2,42″ a rozlišením 128×64 bodů.

Displej komunikuje přes SPI, takže má víc vodičů než běžné I²C moduly, ale zase může být rychlejší a pro grafické výpisy příjemnější. V článku ho připojím k Arduinu, zkusím první zobrazení textu a grafiky a pak se podívám, k čemu se takový displej hodí v praktických projektech.

OLED displej 128×64 2,42″ SPI s řadičem SSD1309
Pokračování textu OLED displej 128×64 2,42″ SSD1309 SPI a Arduino

MicroSD karta s ESP32 – zapojení, zápis a čtení souborů

SD karty dnes najdeme hlavně ve fotoaparátech, kamerách nebo různých přenosných zařízeních. Stejně dobře se ale hodí také k Arduinu, ESP32 a dalším vývojovým deskám. Umožňují jednoduše ukládat naměřené hodnoty, nastavení programu, obrázky nebo jiné soubory, které by se do vnitřní paměti mikrokontroléru nevešly.

Pro připojení microSD karty se nejčastěji používá malý modul komunikující přes sběrnici SPI. K jeho zapojení stačí napájení a čtyři vodiče sběrnice SPI. O práci se soubory se potom postará knihovna, takže vytvoření souboru nebo zápis textu není o mnoho složitější než výpis na sériový monitor.

V tomto článku použiji jednoduchý modul určený pro napájení a logické úrovně 3,3 V. Ten je vhodný například pro ESP nebo Raspberry Pi. Existují ale také větší moduly se stabilizátorem a převodníkem logických úrovní, které lze připojit přímo k 5V deskám, jako je Arduino UNO, Nano nebo Mega.

Ukážeme si zapojení modulu a základní práci se soubory. Vyzkoušíme vytvoření souboru, zápis dat, jejich následné přečtení a přidávání dalších záznamů bez smazání původního obsahu.

Pokračování textu MicroSD karta s ESP32 – zapojení, zápis a čtení souborů

SCD41 – měření CO₂, teploty a vlhkosti vzduchu pomocí Arduina

Kvalitu vzduchu v místnosti není vždy možné poznat podle zápachu nebo pocitu. Pokoj může působit úplně normálně, přesto v něm může být kvůli lidem poměrně vysoká koncentrace oxidu uhličitého. Právě pro její měření jsem vyzkoušel modul se senzorem Sensirion SCD41.

SCD41 umí měřit koncentraci CO₂, teplotu a relativní vlhkost vzduchu. Na rozdíl od jednodušších čidel, která hodnotu CO₂ pouze odhadují podle jiných plynů ve vzduchu, používá skutečné optické měření oxidu uhličitého. Výsledkem je přímo koncentrace udávaná v ppm.

V článku modul připojím k Arduino UNO, nainstaluji potřebnou knihovnu a pomocí jednoduchého programu vypíšu všechny naměřené hodnoty do sériového monitoru.

Modul SCD41
Pokračování textu SCD41 – měření CO₂, teploty a vlhkosti vzduchu pomocí Arduina

OPEN-SMART 1,8″ LCD 128×64 ST7567 s ESP8266

Tentokrát jsem vyzkoušel malý monochromatický grafický displej OPEN-SMART 1,8″ LCD 128×64 s řadičem ST7567. Rozlišením připomíná běžné malé OLED displeje, místo OLED technologie ale používá klasický LCD panel.

Na displeji mě zaujal hlavně nízký odběr – bez podsvícení jsem naměřil pouze 0,6 mA. Můj kus jsem získal s demontovaným podsvícením a při běžném okolním světle je obraz velmi dobře vidět, takže podsvícení nakonec ani nepotřebuji.

Pro první test jsem displej připojil k desce LOLIN D1 mini s ESP8266 a ovládal ho pomocí knihovny U8g2.

LCD OPEN-SMART 1,8″
Pokračování textu OPEN-SMART 1,8″ LCD 128×64 ST7567 s ESP8266

GPS modul GY-NEO6MV2 – první pokus s určováním polohy

GPS modul GY-NEO6MV2 je malý a levný modul pro příjem GPS signálu. Na první pohled vypadá nenápadně, ale umí z družic zjistit polohu, čas, rychlost, výšku a další údaje. Pro bastlení s Arduinem je to zajímavý modul hlavně proto, že komunikuje obyčejnou sériovou linkou, takže k prvnímu pokusu stačí jen pár vodičů a jednoduchý program.

Na modulu je použitý přijímač u-blox NEO-6M. Podle dokumentace jde o 50kanálový GPS přijímač pro signál GPS L1, podporuje také SBAS systémy jako WAAS, EGNOS a MSAS. Běžná přesnost polohy je uváděná kolem 2,5 m CEP, maximální obnovovací frekvence u NEO-6M je 5 Hz a výchozí nastavení bývá 1 Hz. Komunikace probíhá přes UART a modul umí posílat textová NMEA data i binární UBX protokol.

GPS modul s anténou
Pokračování textu GPS modul GY-NEO6MV2 – první pokus s určováním polohy

BME280 – měření teploty, vlhkosti a tlaku pomocí Arduina

Dnes se podíváme na senzor BME280, který v jednom malém čidle zvládne měřit teplotu a vlhkost vzduchu a atmosférický tlak. Na první pohled vypadá jako obyčejné teplotní čidlo, ale díky měření tlaku se dá použít i jako jednoduchý základ domácí meteostanice.

Použil jsem kabelovou verzi od LaskaKitu, kde je senzor umístěný v pouzdře s držákem a připojený metrovým kabelem. To je praktické hlavně proto, že se čidlo nemusí nacházet přímo u Arduina nebo jiného mikrokontroléru, kde by ho mohlo ovlivňovat teplo z elektroniky. Modul komunikuje přes I2C sběrnici a podle prodejce zvládá napájení 3,3 až 5 V.

Pokračování textu BME280 – měření teploty, vlhkosti a tlaku pomocí Arduina

Měření vzdálenosti s Arduinem: ultrazvukový dálkoměr HC-SR04

Modulů pro Arduino existuje spousta. Některé měří teplotu, jiné světlo, napětí, proud nebo třeba vlhkost. Tentokrát se podíváme na jeden z nejznámějších modulů pro měření vzdálenosti – ultrazvukový dálkoměr HC-SR04.
Na první pohled ho pozná snad každý. Má dvě kulatá „očka“, díky kterým vypadá trochu jako malý robot nebo obličej. Ve skutečnosti jde o vysílač a přijímač ultrazvuku. Modul vyšle krátký zvukový impuls, počká na jeho odraz od překážky a podle času návratu spočítá vzdálenost.
Je to jednoduchý, levný a pro začátečníky hodně vděčný modul. Dá se na něm pěkně ukázat nejen měření vzdálenosti, ale i to, že reálný svět není tak dokonalý jako příklady v učebnici. Některé předměty se měří dobře, jiné hůř, na šikmé plochy se zvuk odráží jinam a hodnoty občas trochu poskakují.
V článku si ukážeme, jak HC-SR04 funguje, jak ho zapojit k Arduinu, jak napsat jednoduchý program a na co si dát při měření pozor.

Pokračování textu Měření vzdálenosti s Arduinem: ultrazvukový dálkoměr HC-SR04

Jak zjistit stav Li-Ion akumulátoru pomocí modulu MAX17043

Bateriově napájené projekty mají jednu společnou věc: dřív nebo později začne člověka zajímat, kolik energie v baterii ještě zbývá. U jednoduchých projektů to někdy vůbec neřešíme. Zařízení prostě běží, dokud se baterie nevybije. Jenže u venkovních čidel, meteostanic, solárních projektů nebo různých přenosných zařízení už je dobré mít alespoň základní přehled o stavu baterie.

Nejjednodušší možností je měřit napětí baterie přes analogový vstup. To ale není vždy ideální. U Li-Ion a Li-Pol článků napětí neklesá úplně pěkně lineárně, takže z něj nejde jednoduše říct, kolik procent baterie ještě zbývá. Hodnota 3,7 V neznamená automaticky 50 % a 3,9 V nemusí znamenat přesně tolik, kolik bychom čekali.

Právě k tomu slouží modul DFRobot Gravity I2C 3.7V Li Battery Fuel Gauge s čipem MAX17043. Je to malý modul, který umí měřit napětí jednočlánkové Li-Ion nebo Li-Pol baterie a zároveň odhadovat její zbývající kapacitu v procentech. S Arduinem, ESP nebo Raspberry Pi komunikuje přes sběrnici I2C, takže zapojení i program jsou poměrně jednoduché. Modul má pevnou I2C adresu 0x36 a je určený pro baterii s napětím 2,5 až 4,2 V.

Pokračování textu Jak zjistit stav Li-Ion akumulátoru pomocí modulu MAX17043

DS18B20 – digitální teploměr pro Arduino

Digitální teplotní čidlo DS18B20 je taková malá klasika mezi Arduino senzory. Není to žádná novinka, ale pořád se používá hodně často, protože je jednoduché, levné a připojuje se jen přes jednu datovou linku.

Mám tu dvě varianty. Jednu obyčejnou v pouzdru TO-92, která vypadá jako malý tranzistor, a druhou vodotěsnou variantu v kovové sondě na kabelu. Obě uvnitř fungují stejně, ale každá se hodí na trochu jiné použití.

V článku ukážu základní zapojení, rozdíly mezi pouzdry, klasické i parazitní napájení a přidám několik testovacích programů. Jeden bude používat pevně zadanou adresu čidla, druhý si čidlo najde automaticky a třetí bude jednoduchý 1-Wire scanner, který vypíše nalezená čidla i s adresou a teplotou.

Oba druhy čidla
Pokračování textu DS18B20 – digitální teploměr pro Arduino

Servo: malý motor, který ví, kam se má otočit

Motorů a pohonů existuje spousta. Některé se jen točí, jiné potřebují složité řízení a u některých musíme řešit přesné počítání kroků. Servo je proti tomu docela příjemná součástka. Neříkáme mu totiž jen „toč se“, ale rovnou „natoč se sem“.

Právě proto jsou serva oblíbená v modelářství, robotice, jednoduchých mechanických projektech a různých bastlících pokusech. Hodí se všude tam, kde potřebujeme něco pootočit do určité polohy. Třeba klapku, páčku, ukazatel, ručičku, zámek, přepínač nebo malý mechanický mechanismus.

V článku se podíváme na to, co servo vlastně je, jak funguje, jak ho připojit k Arduinu a na co si dát pozor, aby se místo hezkého pohybu nedostavilo jen cukání, bzučení a resetování desky.

levné mikro servo SG90
Pokračování textu Servo: malý motor, který ví, kam se má otočit