Přeskočit obsah

Senzor teploty¤

Example project¤

Stačí kliknout na odkaz, otevře se nám VSCode a nabídne se nám možnost vytvořit projekt z připraveného balíčku.

Vytvořit projekt

Tento příkaz stačí zadat do terminálu v adresáři, kde chceme mít projekt uložený. Změníme <PROJECT_NAME> na název projektu, který chceme vytvořit.

jac project-create --package https://2026.robotickytabor.cz/moduly/teplota/teplota-example.tar.gz <PROJECT_NAME>

Montឤ

Pokud nemáte sestavený senzor teploty, můžete si jej sestavit podle návodu.

Knihovna¤

Tento senzor teploty pracuje přes protokol OneWire, pro připojení by tedy stačil jen jeden pin + napájení. Nicméně, pro pohodlnější práci je senzor připojen přes PMOD. Pin si můžete buď vyčíst z popisků na Saturnu, nebo z objektu SaturnPins z knihovny saturn, například SaturnPins.Pmod1.Pin1.

Jelikož komunikace se senzor je složitější a trvá delší dobu, práce s ním musí být asynchronní - async a await. Funkce readTemperature() je tedy asynchronní. Standardně ji budeme tedy používat v asynchronní funkci s await. Pokud ji použijeme v běžné funkci, vrátí nám Promise, ze kterého si musíme teplotu vyzvednout pomocí then().

Je potřeba nainstalovat:

  • ds18b20
import { DS18B20 } from "ds18b20"
import { SaturnPins } from "saturn";

const thermo = new DS18B20(SaturnPins.Pmod1.Pin1);

setInterval(async () => {
  try {
    const temperature = await thermo.readTemperature();
    console.log(`Current temperature: ${temperature} °C`);
  } catch (error) {
    console.error("Error reading temperature:" + error);
  }
}, 1000);