L'outil simple de surveillance des informations environnementales, précédemment présenté dans cet article, fournit des informations sur la température, l'humidité et la pression Texas Instruments. Obtenu auprès de SensorTag CC2650. Cependant, CC2650, qui est connu dans le monde entier depuis longtemps comme étiquette de capteur d'environnement BLE, est discontinué, il sera donc difficile de l'obtenir à l'avenir. Par conséquent, j'ai décidé de prendre en charge un autre capteur.
Il existe de nombreux capteurs de température et d'humidité dans le monde, et je me demande vraiment lequel choisir. Juste à ce moment-là, j'ai trouvé informations utiles, et par conséquent, Bosch [BME280](https: //www.bosch-sensortec) Vous avez sélectionné .com / produits / capteurs-environnementaux / capteurs-d'humidité-bme280 /). Il est abordable et peut être obtenu pour des centaines de yens.
Ce capteur peut mesurer la température, l'humidité et la pression. De plus, il semble que la température soit principalement utilisée pour corriger la valeur mesurée de la pression atmosphérique, mais comme c'est une bonne idée, la valeur elle-même est également utilisée. L'interface prend en charge I2C et SPI, mais I2C est utilisé ici. L'adresse I2C peut être «0x76» ou «0x77». De plus, comme il existe deux bus I2C pour Raspberry Pi 3B ou 4B, "0" et "1", vous pouvez utiliser jusqu'à quatre BME280 en même temps avec Raspberry Pi 3B ou 4B.
La bibliothèque Java BME280 créée (bme280-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 surveillance des informations environnementales qui intègre cette bibliothèque est disponible sur Github here.
Voici une utilisation simple de bme280-driver. Dans l'exemple de code ci-dessous, I2C bus = «1» et address = «0x76» sont spécifiés.
import com.pi4j.io.i2c.I2CBus;
import io.github.s5uishida.iot.device.bme280.driver.BME280Driver;
public class MyBME280 {
private static final Logger LOG = LoggerFactory.getLogger(MyBME280.class);
public static void main(String[] args) {
BME280Driver bme280 = null;
try {
bme280 = BME280Driver.getInstance(I2CBus.BUS_1, BME280Driver.I2C_ADDRESS_76);
bme280.open();
while (true) {
float[] values = bme280.getSensorValues();
LOG.info("temperature:" + values[0]);
LOG.info("humidity:" + values[1]);
LOG.info("pressure:" + values[2]);
Thread.sleep(10000);
}
} catch (InterruptedException e) {
LOG.warn("caught - {}", e.toString());
} catch (IOException e) {
LOG.warn("caught - {}", e.toString());
} finally {
if (bme280 != null) {
bme280.close();
}
}
}
}
C'est simple à utiliser comme ça. Il a été créé à l'aide de 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 chaque valeur de capteur sur un tableau de bord et de l'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