在這篇文章中,我將向您展示如何使用小型M5Stamp PICO控制器和Qubitro構建DIY物聯網門鎖監控系統。
背景
這個項目的靈感還源于我一個可愛的小表弟。他經常會在每個人都在工作的時候自己打開冰箱吃一些零食或一些不該吃太多的東西。所以,我想在他開門的時候抓住他。我還添加了 Qubitro 來記錄數據并通過互聯網對其進行監控。
組件要求:
1. M5Stamp PICO。
3.一些電線。
電路連接:
編碼部分:
請使用您的網絡憑據配置代碼,我在下面提供了這些憑據:
更改設備 ID 和設備令牌以匹配您的 Qubitro 云。如果您是 Qubitro 新手,請按照以下步驟了解有關 Qubitro 以及如何設置 Qubitro Cloud 的所有信息:
完成上述步驟后,使用 Arduino IDE 編譯腳本并將其上傳到您的 M5Stamp:
#include
#include
// WiFi Client
WiFiClient wifiClient;
// Qubitro Client
QubitroMqttClient mqttClient(wifiClient);
// Device Parameters
char deviceID[] = "62f53d7f-6f53-474a-897f-24c808629df9";
char deviceToken[] = "ardE7DqQFct2j3SrO2ApKbii1Dx6NkNx8EClSgKT";
// WiFi Parameters
const char* ssid = "ELDRADO";
const char* password = "amazon123";
int ledPin = 18; // choose pin for the LED/BUZ
int inputPin = 26; // choose input pin (for Infrared sensor)
int val = 0; // variable for reading the pin status
void setup() {
pinMode(ledPin, OUTPUT); // declare LED as output
pinMode(inputPin, INPUT); // declare Infrared sensor as input
// Initialize the serial port
serial_init();
// Initialize wireless connectivity
wifi_init();
// Initialize Qubitro
qubitro_init();
}
void loop() {
val = digitalRead(inputPin); // read input value
if (val == HIGH)
{ // check if the input is HIGH
digitalWrite(ledPin, LOW); // turn LED OFF
String Status = "Open";
int Rate = 100;
// Send telemetry
String payload = "{"status": "" + Status + "", "Rate": " + String(Rate) + "}";
mqttClient.poll();
mqttClient.beginMessage(deviceID);
mqttClient.print(payload);
mqttClient.endMessage();
Serial.println(payload);
}
else
{
digitalWrite(ledPin, HIGH); // turn LED ON
String Status = "Close";
int Rate = 0;
// Send telemetry
String payload = "{"status": "" + Status + "", "Rate": " + String(Rate) + "}";
mqttClient.poll();
mqttClient.beginMessage(deviceID);
mqttClient.print(payload);
mqttClient.endMessage();
Serial.println(payload);
}
delay(2000);
}
// Initialization code
void serial_init() {
// Initiate serial port connection
Serial.begin(115200);
// Delay for stabilization
delay(200);
}
void wifi_init() {
// Set WiFi mode
WiFi.mode(WIFI_STA);
// Disconnect WiFi
WiFi.disconnect();
delay(100);
// Initiate WiFi connection
WiFi.begin(ssid, password);
// Print connectivity status to the terminal
Serial.print("Connecting to WiFi...");
while (true)
{
delay(1000);
Serial.print(".");
if (WiFi.status() == WL_CONNECTED)
{
Serial.println("");
Serial.println("WiFi Connected.");
Serial.print("Local IP: ");
Serial.println(WiFi.localIP());
Serial.print("RSSI: ");
Serial.println(WiFi.RSSI());
break;
}
}
}
void qubitro_init() {
char host[] = "broker.qubitro.com";
int port = 1883;
mqttClient.setId(deviceID);
mqttClient.setDeviceIdToken(deviceID, deviceToken);
Serial.println("Connecting to Qubitro...");
if (!mqttClient.connect(host, port))
{
Serial.print("Connection failed. Error code: ");
Serial.println(mqttClient.connectError());
Serial.println("Visit docs.qubitro.com or create a new issue on github.com/qubitro");
}
Serial.println("Connected to Qubitro.");
mqttClient.subscribe(deviceID);
}
上傳腳本后檢查串行監視器結果。
數據可視化:
之后,轉到 Qubitro 門戶并檢查傳入的數據。獲得數據后,您可以開始可視化過程。
這是時間線的詳細信息,每當門打開時,它就為0,當門關閉時,它就為100。
結論:
這就是這個項目的全部內容;我已經用我的門測試過了這個項目,希望你們喜歡。
-
控制器
+關注
關注
114文章
16854瀏覽量
182368 -
物聯網
+關注
關注
2922文章
45692瀏覽量
385724 -
監控系統
+關注
關注
21文章
4006瀏覽量
180574
發布評論請先 登錄
【LeMaker Guitar申請】物聯網433M無線監控系統
帶Qubitro的物聯網書簽和閱讀跟蹤器
如何利用區塊鏈技術來構建物聯網系統
OpenHarmony Dev-Board-SIG專場:基于OpenHarmony構建物聯網生態探究

如何使用M5Stick和M5Stamp觸發藍牙操作BLE通信

如何構建物聯網系統并收集數據
使用Arduino、Sigfox和Ubidot構建物聯網應用程序

M5Stack M5Dial:一款 WiFi 和藍牙連接的智能旋鈕

M5Stack Cardputer:基于ESP32-S3的無線模塊便攜式計算機
為物聯網領域帶來全新突破:研揚科技PICO-AM62和SRG-AM62

評論