📜  使用超声波传感器Arduino距离计算的物联网项目(1)

📅  最后修改于: 2023-12-03 15:06:58.733000             🧑  作者: Mango

使用超声波传感器Arduino距离计算的物联网项目

概述

本项目使用Arduino开发板和超声波传感器,实现测量距离的功能,通过将数据上传至云端进行数据分析,实现物联网的应用。

技术栈
  • Arduino
  • 超声波传感器
  • NodeMCU
  • MQTT
  • Node-Red
  • 云服务
实现步骤
步骤一:硬件接线

将超声波传感器连接至Arduino开发板,具体接线如下所示:

  • Vcc -> 5V
  • GND -> GND
  • Trig -> 8
  • Echo -> 9
步骤二:编写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);
}
步骤三:编写NodeMCU程序

使用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对数据进行分析和可视化展示,实现了物联网中设备的远程监控和控制,具有很好的实际应用价值。