Ich habe einmal in diesem Artikel über ein einfaches Tool zur Überwachung allgemeiner Umweltinformationen in Innenräumen (zu Hause / im Büro / in der Fabrik) geschrieben. .. Ich konnte keine Open Source finden, die in einem Tool zur Überwachung solcher Umweltinformationen zusammengestellt wurde, und habe daher das folgende Konzeptbild privat erstellt.
Informationen, die von jedem Sensor und jeder industriellen Automatisierungsausrüstung erhalten werden, können wie folgt verwendet werden.
Dieses einfache Tool wurde entwickelt, um mindestens einen Sensor und Raspberry Pi 3B oder 4B zu enthalten. Dieses Mal habe ich versucht, dieses Tool mit Bewegungserkennungssensoren kompatibel zu machen.
Die folgenden zwei Arten von Bewegungserkennungssensoren wurden dieses Mal übernommen.
Java-Bibliotheken (hc-sr501-Treiber, rcwl-0516-Treiber -0516-driver)) wurde erstellt und auf Github veröffentlicht. Ich habe auch das Verfahren zum Einstellen des Betriebssystems und des Sensors geschrieben. Darüber hinaus steht unter Github hier ein einfaches Tool zur Überwachung von Umweltinformationen zur Verfügung, das diese Bibliotheken enthält.
Ein Beispiel für das Verwendungsbild dieser Bewegungserkennungssensoren ist wie folgt.
--HC-SR501 ist ein sogenannter "menschlicher Sensor", der Infrarotstrahlen verwendet, die von der Wärmequelle eines Objekts emittiert werden. Die maximale Erkennungsentfernung beträgt 7 m. Da es Infrarotstrahlen verwendet, kann es nicht erkannt werden, wenn etwas es blockiert. --RCWL-0516 ist ein Typ, der 3,2-GHz-Mikrowellen bestrahlt und die Bewegung des Objekts anhand des Doppler-Übergangs der reflektierten Welle erfasst, sodass die Bewegung des Objekts unabhängig von der Anwesenheit oder Abwesenheit einer Wärmequelle erfasst werden kann. Die maximale Erkennungsentfernung beträgt 9 m. Zum Beispiel reagiert es auf die Bewegung von Objekten auf der anderen Seite der Hauswand. Ich denke, diese Funktion kann je nach Anwendung sowohl ein Vorteil als auch ein Nachteil sein.
In Anbetracht dieser Eigenschaften haben wir zwei Typen unterstützt, damit sie je nach Anwendung ordnungsgemäß verwendet werden können.
Da es sich um Qiita handelt, werde ich einige Beispiele für die Verwendung des Codes veröffentlichen.
-Wie man [hc-sr501-Treiber] verwendet (https://github.com/s5uishida/hc-sr501-driver)
Der folgende Beispielcode verwendet GPIO12, um das Bewegungserkennungssignal zu empfangen. Es implementiert handle ()
, das aufgerufen wird, wenn eine Bewegung erkannt wird.
import com.pi4j.io.gpio.Pin;
import com.pi4j.io.gpio.RaspiPin
import io.github.s5uishida.iot.device.hcsr501.driver.HCSR501Driver;
import io.github.s5uishida.iot.device.hcsr501.driver.IHCSR501Handler;
public class MyHCSR501 {
private static final Logger LOG = LoggerFactory.getLogger(MyHCSR501.class);
public static void main(String[] args) {
HCSR501Driver hcsr501 = HCSR501Driver.getInstance(RaspiPin.GPIO_12, new MyHCSR501Handler());
hcsr501.open();
// if (hcsr501 != null) {
// hcsr501.close();
// }
}
}
class MyHCSR501Handler implements IHCSR501Handler {
private static final Logger LOG = LoggerFactory.getLogger(MyHCSR501Handler.class);
private static final String dateFormat = "yyyy-MM-dd HH:mm:ss.SSS";
private static final SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
@Override
public void handle(String pinName, boolean detect, Date date) {
LOG.info("[{}] {} {}", pinName, detect, sdf.format(date));
}
}
-Wie man [rcwl-0516-Treiber] verwendet (https://github.com/s5uishida/rcwl-0516-driver)
Der folgende Beispielcode verwendet GPIO18, um das Bewegungserkennungssignal zu empfangen. Es implementiert handle ()
, das aufgerufen wird, wenn eine Bewegung erkannt wird.
import com.pi4j.io.gpio.Pin;
import com.pi4j.io.gpio.RaspiPin
import io.github.s5uishida.iot.device.rcwl0516.driver.RCWL0516Driver;
import io.github.s5uishida.iot.device.rcwl0516.driver.IRCWL0516Handler;
public class MyRCWL0516 {
private static final Logger LOG = LoggerFactory.getLogger(MyRCWL0516.class);
public static void main(String[] args) {
RCWL0516Driver rcwl0516 = RCWL0516Driver.getInstance(RaspiPin.GPIO_18, new MyRCWL0516Handler());
rcwl0516.open();
// if (rcwl0516 != null) {
// rcwl0516.close();
// }
}
}
class MyRCWL0516Handler implements IRCWL0516Handler {
private static final Logger LOG = LoggerFactory.getLogger(MyRCWL0516Handler.class);
private static final String dateFormat = "yyyy-MM-dd HH:mm:ss.SSS";
private static final SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
@Override
public void handle(String pinName, boolean detect, Date date) {
LOG.info("[{}] {} {}", pinName, detect, sdf.format(date));
}
}
Beide Codes sind einfach, nicht wahr? Es wurde mit Pi4J erstellt, einer Java-Bibliothek zur Verwendung von GPIO von Raspberry Pi.
Das einfache Tool sendet diese Bewegungserkennungen zur Vereinfachung der Verwendung als Ereignisse in MQTT im JSON-Format. Dies kann als Auslöser verwendet werden, um eine Verbindung zu einer nachfolgenden Verarbeitung herzustellen (z. B. Einschalten der Kamera oder des Mikrofons). Es ist gut, dass diese Bewegungserkennungssensoren für einige hundert Yen erhältlich sind.
Schließlich ist das einfache Tool auf [Github hier] verfügbar (https://github.com/s5uishida/rainy).
Diese Reihe besteht aus folgenden Artikeln:
Recommended Posts