在这篇文章中,我将向您展示如何使用小型m5stamp pico控制器和qubitro构建diy物联网门锁监控系统。
背景
这个项目的灵感还源于我一个可爱的小表弟。他经常会在每个人都在工作的时候自己打开冰箱吃一些零食或一些不该吃太多的东西。所以,我想在他开门的时候抓住他。我还添加了 qubitro 来记录数据并通过互联网对其进行监控。
组件要求:
1. m5stamp pico。
2. 红外传感器。
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。
结论:
这就是这个项目的全部内容;我已经用我的门测试过了这个项目,希望你们喜欢。
工信部闻库:全国已建成5G基站超过48万个
中航建设与甘肃水务成功签约5万个物联网水表订购合同
数字技术将会给触控屏带来什么新趋势
采用台积电7nm工艺 华为麒麟980进入试产前的验证期
让机器学会推理,怎么才能做到这一点呢?
如何使用M5Stamp PICO和Qubitro构建物联网门锁监控系统
三星首款游戏本评测 三星貌似留一手设计需要更大胆
OPPO Reno2与iQOO Pro不分伯仲?实际用起来还是不一样的
继电器触点类型_继电器触点形式
摩托罗拉Edge + 5G渲染图曝光,颜值令人惊叹
基于CW32的超声波模块的应用
SiP封装成为更多应用和市场的首选封装选项
谁能主宰车载语音市场,SDK和OS的商业战争一触即发
三元锂电池的分类及应用
AutoAI 2023第六届无人驾驶及智能驾舱中国峰会5月召开!
极进(Extreme)X770交换机如何配置光模块?
RFID市场为何能抵抗衰退逆势成长?
利用DS3906数字电位器精确控制升压型DC-DC转换器的输出
社交VR让全世界的人们更紧密地连接在了一起
远距离的无线监控系统如何选择合适的无线网桥