📅  最后修改于: 2023-12-03 15:06:58.733000             🧑  作者: Mango
本项目使用Arduino开发板和超声波传感器,实现测量距离的功能,通过将数据上传至云端进行数据分析,实现物联网的应用。
将超声波传感器连接至Arduino开发板,具体接线如下所示:
使用Arduino IDE编写程序,读取超声波传感器返回的数据,并将数据通过串口发送给NodeMCU模块,代码如下:
#define trigPin 8
#define echoPin 9
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
int distance = duration * 0.034/2;
Serial.print(distance);
Serial.println("cm");
delay(1000);
}
使用Lua编写程序,接收Arduino发送的数据,通过MQTT协议将数据上传至云端,代码如下:
wifi.setmode(wifi.STATION)
wifi.sta.config("SSID","password")
m = mqtt.Client("clientid", 120)
m:on("connect", function(client) print("connected") end)
m:on("offline", function(client) print("offline") end)
m:connect("mqtt.server.com", 1883, false, function(client)
print("connected")
end, function(client, reason)
print("failed reason: " .. reason)
end)
tmr.alarm(0, 1000, 1, function()
uart.on("data", "\r",
function(data)
m:publish("topic",data,0,0, function(client)
print("sent")
end)
end, 0)
end)
使用Node-Red对上传至云端的数据进行处理和分析,可通过可视化界面对数据进行监控和分析,实现对物联网设备的远程监控和控制。
本项目使用Arduino和超声波传感器实现了距离测量功能,并通过NodeMCU和MQTT协议将数据上传至云端,通过Node-Red对数据进行分析和可视化展示,实现了物联网中设备的远程监控和控制,具有很好的实际应用价值。