Oxoscript se transforme en NanoPy - plus d'infos

Bibliothèques

AIR

Uniquement Oxocard-Connect avec AIR Cartridge

La cartouche AIR contient 3 capteurs de qualité de l’air de Sensirion: - SHT40 capteur de température et d’humidité - SCD40 capteur de CO2 - SGP41 capteur de COV et de NOx

La bibliothèque AIR met l’objet AIR à disposition.

Fonctions:

Renvoie la valeur actuelle de CO2 en ppm.

AIR.CO2()

Renvoie l’indice NOx. Celui-ci est calculé avec l’algorithme “Sensirion’s Gas Index” et correspond à une valeur représentative comprise entre 1 et 500.

AIR.NOxIndex()

Renvoie l’indice COV. Celui-ci est calculé avec l’algorithme “Sensirion’s Gas Index” et correspond à une valeur représentative comprise entre 1 et 500.

AIR.VOCIndex()

image

Renvoie la température actuelle en °C.

AIR.température()

Renvoie l’humidité actuelle de l’air en %RH.

AIR.humidity()

Renvoie l’humidité absolue actuelle en g/m^3. Cette valeur indique la quantité de vapeur d’eau (humidité) dans l’air, indépendamment de la température.

AIR.humidityAbsolute()

Renvoie le classement IAQ actuel. IAQ signifie Indoor Air Quality et prend normalement une valeur entre 0 et 5:

AIR.IAQ()

Valeur Niveau état
≤1,99 1 Très bon
2,00-2,99 2 Bien
3.00-3.99 3 Moyen
4.00-4.99 4 Mauvaise
≥5.00 5 Très mauvais

Exemple:

import air

setPrecision(3)
textFont(FONT_ROBOTO_24)

def onDraw():
    clear()
    drawText(10, 10, "CO2: " + AIR.CO2() + " ppm")
    drawText(10, 40, "NOxIdx: " + AIR.NOxIndex() + " / 500")
    drawText(10, 70, "VOCIdx: " + AIR.VOCIndex() + " / 500")
    drawText(10, 100, "IAQ: " + AIR.IAQ())
    drawText(10, 130, "temp: " + AIR.temperature() + " °C")
    drawText(10, 160, "humi: " + AIR.humidity() + " %RH")
    drawText(10, 190, "humiAbs: " + AIR.humidityAbsolute() + " g/m3")
    update()
    delay(100)

TOF

Uniquement Oxocard-Connect avec TOF Cartridge

La bibliothèque TOF fournit l’objet TOF.

Le capteur “Time of Flight” (TOF) est un capteur de distance. Il mesure la distance à un objet dans une matrice (8x8 ou 4x4) et renvoie les 64 ou 16 valeurs en millimètres.

Fonctions:

Le TOF doit d’abord être initialisé. L’initialisation dure environ 10 secondes la première fois.

TOF.init()

Si on ne veut pas utiliser 8x8 avec 15Hz d’échantillonnage mais 4x4 avec 60Hz, on peut utiliser la fonction set4x4(). Et pour revenir en arrière, set8x8().

TOF.set4x4()
TOF.set8x8()

Avec getData(), les 64 ou 16 valeurs sont lues et enregistrées dans le tableau TOF.data.

TOF.getData()

Variables de classe:

La classe TOF contient deux variables qui sont actualisées lors de l’appel de getData().

Le tableau TOF.data contient les distances mesurées en millimètres.

TOF.data[64]

Le TOF.status-Array contient le statut des différentes distances mesurées. Les valeurs 5 et 9 correspondent à une mesure valide et toutes les autres valeurs à une mesure non valide.

TOF.status[64]

Exemple:

import tof

TOF.init()
TOF.set4x4()

def onDraw():
    TOF.getData()
    for i in 16:
        print(TOF.data[i] + "mm (" + TOF.status[i] + ")")
    print("")

IO

La bibliothèque IO met à disposition l’objet IO, qui simplifie le pilotage des IO matérielles.

Fonctions:

Avec writePin(), place une IO soit à 0 (LOW) soit à 1 (HIGH).

IO.writePin(pinid:byte, value:bool)

Détermine avec setSampleRate() le nombre de valeurs de mesure pour le calcul de la moyenne lors des mesures ADC (IO06 & IO07).

IO.setSampleRate(newSampleRate:int)

Avec readPin(), l’état actuel (0 ou 1) d’une IO peut être renvoyé.

IO.readPin(pinid:byte)->int

Exemple #1:

import io

def onDraw():
    IO.writePin(C_PIN_01, 1)
    delay(500)
    IO.writePin(C_PIN_01, 0)
    delay(500)

Exemple #2:

import io

IO.setSampleRate(1000)

def onDraw():
    if IO.readPin(C_PIN_01):
        IO.writePin(C_PIN_04, 1)
    else:
        IO.writePin(C_PIN_04, 0)
    if IO.readPin(C_PIN_06) > 200:
        IO.writePin(C_PIN_05, 1)
    else:
        IO.writePin(C_PIN_05, 0)
    delay(10)

Notez:
C_PIN_06 et C_PIN_07 ne renvoient pas une valeur numérique (1 ou 0) avec readPin() mais une valeur analogique (0 à 4095).