Po prvotním nadšení z pořízení Raspberry PI a provozování Kodi mě napadlo, že bych mohl taky zkusit do něj něco zapojit a tak jsem na eBayi zakoupil termo čidlo MAX6675. Zatím jsem neměl jasný účel pro jaký to chci použít, ale znáte to, prostě to chcete a stejně trvá měsíc, než to z Číny přijde... Uběhl necelý půlrok a já našel důvod, proč ho zprovoznit: Důvodem se stal výměnný pobyt ve Finsku, kde sice přežívám jen se základním vybavením, ale Raspberry mám s sebou také.
Co činí komplikace? MAX6675 thermocouple je původně prvek pro Andruino, ne Raspberry, ovládá se přes sběrnici SPI, nicméně tu má Raspberry také a proto je možné pži použití knihovny WiringPI zprovoznit systém i na této platformě. V podstatě by to nemělo být vůbec složité, jde o to to jenom správně zapojit piny podle schématu, program zkompilovat a spustit, ale...
Předně PINOUT se může lišit podle SW konfigurace. Já použil vzor z tohoto webu podle tohoto videa. Protože však z materiálů není na první pohled zřejmé, jak to zapojit, tak přidávám překreslené schéma:
Dále je třeba Raspberry PI 3 oživit vhodným softwarem a ovládat. Jako operační systém posloužil Raspbian GNU/Linux 8, tedy super základní verze Linuxu bez GUI. Připojení na něj tradičně přes Putty a hurá na konfiguraci.
Na začátek je dobré si OS vylepšit podle mého dřívějšího návodu.
sudo suapt-get updatesudo apt-get install git-coregit clone https://git.drogon.net/wiringPicd wiringPi./buildgpio -vgpio readall !dont take care about errorcd ..sudo raspi-configAdvanced => SPI => Enable => Finishshutdown -rgpio load spi
mkdir MAX6675Pi
cd MAX6675Pigcc myMAX6675.cpp -lwiringPi -o thermometerchmod +x thermometer./thermometer
Teď už program poskytuje nějaké hodnoty a je možné se pustit do složitějších programátorských činností. Pro méně zkušené, program teď běží v aktivním režimu, takže po přerušení přestane snímat hodnoty. Předělat to lze jednak spuštěním na pozadí nebo vytvořením služby, ale o tom později.
./thermometer &
Zkoušel jsem také jiný předpřipravený program z GitHubu autora mttrb, ale ten počítá s jiným zapojením. Když se mi jej konečně podařilo zkompilovat, tak nefungoval, proto jsem využil triviálního příkladu výše.
Mám v plánu tento jednoduchý návod ještě rozšířit o složitější funkcionalitu, zejména co se týká zobrazování hodnot uživatelsky přívětivým způsobem, ale o tom později, doufám, že vám tento "návod" usnadnil začátek...
Můj C++ kód nezobrazuje záporné hodnoty teploty! Kdyby to chtěl někdo opravit, rád zveřejním novou verzi...
Mám v plánu tento jednoduchý návod ještě rozšířit o složitější funkcionalitu, zejména co se týká zobrazování hodnot uživatelsky přívětivým způsobem, ale o tom později, doufám, že vám tento "návod" usnadnil začátek...
Můj C++ kód nezobrazuje záporné hodnoty teploty! Kdyby to chtěl někdo opravit, rád zveřejním novou verzi...