Jednotka pro zobrazování dat z Thingspeaku

Pro zobrazování teplotních dat z webu Thingspeak jsem si postavil jednoduchou zobrazovací jednotku s LED displejem a wifi.

Jednotka je postavená na desce Arduino, která řídí zobrazování, a modulu ESP-01 pro komunikaci s internetem přes wifi.
Funkce je jednoduchá. Modul ESP-01 se připojí přes wifi na servery Thingspeak a načte data. Data odešle přes sériovou linku do čekajícího arduina. Arduino je po přijetí zpracuje k zobrazení a odešle je do LED displeje.

Četnost aktualizací je nastavená na 5 minut a lze jí upravit v programu pro ESP-01.
Vlastní zapojení je provedené na kousku univerzální DPS v plastové krabičce a k napájení slouží externí adaptér na 5V.
LED displej je s řadičem TM1637 a upravený pro zobrazení desetinné tečky vyvrtáním díry ze spodu displeje v místě tečky a zalepením LED diody. V programu pro ESP je potřeba zadat údaje pro připojení k wifi síti a číslo Thingspeak kanálu.

NEDSAT – koncept

Jak už název napovídá NEDSAT bude testovací „satelit“. „Satelit“ je v uvozovkách úmyslně, prakticky jde o jakousi maketu satelitu která bude pouze na Zemi. Základ vychází z myšlenky cubesatu, miniaturního satelitu. Rozměrově proto půjde o krychli o hraně 10cm na jejímž povrchu budou z 5 stran solární panely a čidla. Na spodní straně musí NEDSAT stát a proto na ní budou gumové nožky a ve středu silný magnet na uchycení ke kovovému povrchu. Spodní strana bude také jako jediná odklápěcí a tím zajistí přístup k vnitřnímu HW.

Úkolem NEDSATu bude sbírat data na dané pozici, ukládat je do paměti a v případě žádosti je odeslat po RF spojení.

Budou se sbírat následující hodnoty: venkovní teplota, vnitřní teplota a vlhkost, tlak vzduchu, stav akumulátoru, osvětlení panelů, aktuální čas a datum. Dál uvidíme, možná magnetické pole připadně radiace, to se pozná v průběhu. K ukládání dat nejspíš poslouží SD karta. Jako řídící MCU plánuji nejspíš Arduino UNO, resp. jen jeho MCU ATmega, pro minimalizování odběru.

RF spojení se základnovou stanicí NEDCPU bude probíhat v pásmu 433MHz, pomocí modulů HC-12 s čipem SI4463. Tyto moduly je možné konfigurovat na velmi nízkou spotřebu a nebo na velký dosah (až stovky metrů) nebo různé kombinace. Primárně bude poslouchat v módu minimální spotřeby a pokud zachytí žádost o komunikaci přepne se do standartního módu a po ukončení přenosu přejde opět do úsporného módu.

Cíle NEDSATU

Účelem NEDSATU je především seznámení se a otestování konstrukce se solárním napájením, stavba a naprogramování konstrukce s ohledem na minimální spotřebu, možnost vzdálené komunikace a konfigurace s otestováním maximální komunikační vzdálenosti, a hlavně udržet vše v chodu bez servisního zásahu po co nejdelší dobu. Prostě v principu vesmírný satelit či meziplanetární sonda.

Popis SW NEDCPU

Řídící SW je napsaný v Arduino IDE, díky čemuž by měl po pár úpravách fungovat i na jiných podporovaných deskách.

Ovládání probíhá přez sériovou linku z PC pomocí emulátoru sériového terminálu (používám GTKTerm).

UI bylo od začátku myšleno ve stylu prvních počítačů, takže probíhá pomocí zadávání příkazů. Zadané příkazy potvrzujeme entrem. Řídící příkazy jsou inspirované jazykem BASIC.

První verze NED-BASICu podporuje základní matematické příkazy s celými čísly (sčítání, odčítání, násobení a dělení), nepodmíněné skoky, výstup a vstup na port, ukládání a načítání programu na/z SD karty/u, ukládání celého čísla do proměnné a – z. Všechny podporované příkazy je možné zobrazit příkazem help. Zápis probíhá malými písmeny. Název souboru na SD kartě se zadává ve formátu 8.3 – 8 znaků název . 3 znaky přípona.

Pokračování textu Popis SW NEDCPU

Popis HW – NEDCPU

Řídící jednotka NEDCPU je zabudovaná do plastové krabičky o rozměru 15x5x13 cm. Na čelní panel jsou vyvedené LED diody přístupné na portu 22hex = 34dec, dále LPT konektor, tlačítko pro reset MCU a přepínač pro programování MCU. Na zadní straně je mikroUSB konektor pro připojení PC a slot pro mikroSD kartu.

Vnitřní HW

Jako řídící MCU je použitý ARM kontrolér STM32F103C8, který obsahuje 20kB RAM a 128kB FLASH. Na něj je připojen přes SPI slot pro SD kartu; rozšiřující 8bitové moduly PCF8574 pro ovládání LED a LPT, a modul RTC na I2C sběrnici a převodník USB <> UART pro komunikaci s PC.

NEDCPU – Úvod

NEDCPU je počítačová jednotka inspirovaná prvními počítači ovládanými pomocí příkazů po sériovém terminálu, postavená na současných technologiích.

Hardware

Základní jednotka je postavená na základě ARM MCU STM32F103C8, který komunikuje s PC pomocí USB převodníku který současně zajišťuje napájení. Přímo na MCU je připojený slot pro mikro SD kartu pro ukládání a načítání dat. Dále přez převodník úrovní (3,3V z MCU na 5V) na I2C sběrnici modul RTC a tři moduly 8-bitových bran PCF8574. Jedna brána slouží k ovládání 8 LED diod na čelním panelu a zbylé dvě jsou připojené k rozšiřujícímu konektoru LPT.

Na blokovém schématu je vše zřejmé

Čelní panel tedy obsahuje 8 LED diod, rozšiřující LPT konektor, tlačítko pro RESET a přepínač pro programování (MCU ho vyžaduje)

Software

Software je psaný v Arduino IDE. Není to určitě nejlepší řešení ale je pro mě nejvhodnější.

Ve verzi 0.1 mám funkční základní rozhraní které umí podle zadaného příkazu provést podprogram.