物联网方案之“Arduino+以太网盾板+MQTT+Android”(二.远程入侵检测系统)

本文介绍了使用Arduino结合以太网盾板和MQTT协议,构建物联网远程入侵检测系统的实践过程。在Android端,通过集成MQTT客户端库,实现与Arduino的实时通信,确保在vivo 5a设备上接收到通知。
摘要由CSDN通过智能技术生成

记录《用于物联网Arduino 项目开发实用案例解析》第五章 物联网模式:实时客户端的实践过程

一、Arduino 部分

#include <SPI.h>
#include <Ethernet.h>
#include <PubSubClient.h>

//1.网络连接所需变量及函数
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress staticIP(192, 168, 31, 159);
EthernetClient client;

void connectToInternet()
{
  if (Ethernet.begin(mac) == 0)
  {
    Serial.print("[ERROR] Failed to Configure Ethernet using DHCP");
    Ethernet.begin(mac, staticIP);
  }
  delay(1000);
  Serial.println("[INFO] Connection Successsful");
  Serial.print("");
  printConnectionInformation();
  Serial.println("-------------------------");
  Serial.println("");
}
void printConnectionInformation()
{
  Serial.print("[INFO] IP Address: ");
  Serial.println(Ethernet.localIP());
  Serial.print("[INFO] Subnet Mask: ");
  Serial.println(Ethernet.subnetMask());
  Serial.print("[INFO] Gateway: ");
  Serial.println(Ethernet.gatewayIP());
  Serial.print("[INFO] DNS: ");
  Serial.println(Ethernet.dnsServerIP());
}

//2.MQTT数据发布
char server[] = {"iot.eclipse.org"};
int port = 1883;
char topic[] = {"codifythings/intrusiondetection"};

void callbace(char* topic, byte*payload, unsigned int length)
{ }
PubSubClient pubSubClient(server, port, 0, client);
void publishSensorData()
{
  Serial.println("[INFO] Connecting to MQTT Broker");
  if (pubSubClient.connect("cumtzdArduinoIoTClient"))
  {
    Serial.println("[INFO] Connection to MQTT Broker Successful");
  } else {
    Serial.println("[INFO] Connection to MQTT Broker Failed");
  }
  if (pubSubClient.connected())
  {
    Serial.println("[INFO] Publishing to MQTT Broker");
    pubSubClient.publish(topic, "Intrusion Detected");
    Serial.println("[INFO] Publish to MQTT Broker Complete");
  } else {
    Serial.println("[ERROR] Publish to MQTT Broker Failed");
  }
  pubSubClient.disconnect();
}

//3.读取传感器数据变量及函数
int calibrationTime = 30;
long unsigned int lowIn;
long unsigned int pause = 5000;
boolean lockLow = true;
boolean takeLowTime;
int pirpin = 3;

void calibrateSensor()
{
  pinMode(pirpin, INPU
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值