L'outil simple de surveillance des informations environnementales, précédemment présenté dans cet article, fournit des informations sur l'éclairement Texas Instruments SensorTag CC2650. Obtenu à partir de (: //processors.wiki.ti.com/index.php/CC2650_SensorTag_User's_Guide). Cependant, CC2650, qui est connu dans le monde entier depuis longtemps comme étiquette de capteur d'environnement BLE, est arrêté, il sera donc difficile de l'obtenir à l'avenir. Par conséquent, j'ai décidé de prendre en charge un autre capteur.
Cette fois, nous avons sélectionné le [BH1750FVI] de ROHM (https://www.mouser.com/datasheet/2/348/bh1750fvi-e-186247.pdf) comme nouveau capteur d'éclairement. Il est abordable et peut être obtenu pour des centaines de yens.
Ce capteur peut mesurer l'éclairement. L'interface est I2C et l'adresse I2C peut être "0x23ʻou0x5c
. De plus, il existe deux bus I2C pour Raspberry Pi 3B ou 4B, "0" et "1", vous pouvez donc utiliser jusqu'à quatre BH1750FVI en même temps avec Raspberry Pi 3B ou 4B.
La bibliothèque Java BH1750FVI créée (bh1750fvi-driver) est disponible sur Github. J'ai également écrit la procédure de configuration du système d'exploitation et du capteur. De plus, un outil simple de suivi des informations environnementales intégrant cette bibliothèque est disponible sur Github here.
Voici une utilisation simple de bh1750fvi-driver. Dans l'exemple de code ci-dessous, I2C bus = «1» et address = «0x23» sont spécifiés.
import com.pi4j.io.i2c.I2CBus;
import io.github.s5uishida.iot.device.bh1750fvi.driver.BH1750FVIDriver;
public class MyBH1750FVI {
private static final Logger LOG = LoggerFactory.getLogger(MyBH1750FVI.class);
public static void main(String[] args) {
BH1750FVIDriver bh1750fvi = null;
try {
bh1750fvi = BH1750FVIDriver.getInstance(I2CBus.BUS_1, BH1750FVIDriver.I2C_ADDRESS_23);
bh1750fvi.open();
while (true) {
float value = bh1750fvi.getOptical();
LOG.info("optical:" + value);
Thread.sleep(10000);
}
} catch (InterruptedException e) {
LOG.warn("caught - {}", e.toString());
} catch (IOException e) {
LOG.warn("caught - {}", e.toString());
} finally {
if (bh1750fvi != null) {
bh1750fvi.close();
}
}
}
}
C'est simple à utiliser comme ça. Il a été créé en utilisant Pi4J, une bibliothèque Java permettant d'utiliser GPIO de Raspberry Pi.
Un outil simple qui intègre cette bibliothèque Java a la capacité de surveiller les valeurs des capteurs sur le tableau de bord et de les envoyer au courtier MQTT au format JSON.
Enfin, l'outil simple est disponible sur Github here.
Cette série comprend les articles suivants:
Recommended Posts