0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Arduino与机智云的家居环境远程监控系统

9GxC_IoTMaker 来源:csdn 作者:csdn 2022-07-26 11:22 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

基于Arduino机智云的家居环境远程监控系统具备协议简单、成本低、功耗低、组网容易等优势。在智慧家居实现的同时,可以根据其它控制领域的需要,进行需求的移植,具有很强的延伸性和可移植性,提高开发效率。同时当前环境也存在这样的需求也有硬件基础保障。通过该项目的制作,也让我了解到远程家电控制并不是什么神奇的东西的,只要每一个人肯去尝试,肯去面对不同的困难,并通过自己的思考和向他人请求帮助,每一个过程都是很奇妙的,往往在这个过程中,你会获得许多意想不到的收获。

本项目分成三部分——工程实施、云平台部署、APP开发,本次分享云平台部署部分。

一、创建项目

1.1 登陆机智云开发者中心dev.gizwits.com,创建新产品

c9c36a0e-0c90-11ed-ba43-dac502259ad0.png

1.2 进入项目,查看产品的基本信息

ca134c0e-0c90-11ed-ba43-dac502259ad0.png

二、添加数据点

2.1 根据产品功能定义数据点

ca419b18-0c90-11ed-ba43-dac502259ad0.png

三、进行虚拟设备调试

3.1 创建好数据点后,进行虚拟设备调试

ca71fefc-0c90-11ed-ba43-dac502259ad0.png

3.2 在机智云APP能够观察机智云平台模拟的数据

根据系统的需要添加或修改数据点信息

ca970fc6-0c90-11ed-ba43-dac502259ad0.png

四、下载MCU代码包

4.1 在确定数据点无误后,点击MCU开发

cabacd58-0c90-11ed-ba43-dac502259ad0.png

4.2 添加库文件,进行代码移植

生成代码包后,把代码包导入Arduino IDE开发环境的libraries文件中,libraries是Arduino的库文件,包含自带的库文件和用户添加的外部库文件

cadc65bc-0c90-11ed-ba43-dac502259ad0.png

把networkConfig.ino的配网代码移植到simpleTry.ino,把串口打印的代码注释起来,可参考“史上最详细的Arduino uno R3接入机智云教程”

https://club.gizwits.com/thread-6728-1-1.html

然后根据要求修改代码,以下仅供参考:


#include #include #include #include int con_ledPin = 13;    //成功连接网络,13引脚低电平int smokePin = 2;int movePin = 3;int alarmPin = 4;int ledPin = 5;int relayPin1 = 8;int relayPin2 = 9;int firePin = A0;int lightPin = A1;int beepPin = 10;int temhumPin = 11;bool alarmflag = 0;dht myDHT_11;SoftwareSerial mySerial(A2, A3); // A2 -> RX, A3 -> TXGizwits myGizwits;#define   KEY1              6#define   KEY2              7#define   KEY1_SHORT_PRESS  1#define   KEY1_LONG_PRESS   2#define   KEY2_SHORT_PRESS  4#define   KEY2_LONG_PRESS   8#define   NO_KEY            0#define   KEY_LONG_TIMER    3#define   ALARM_SHORT_PRESS 16#define   ALARM_LONG_PRESS  32unsigned long Last_KeyTime = 0;
unsigned long gokit_time_s(void){  return millis() / 1000;}char gokit_key1down(void){  unsigned long keep_time = 0;  if (digitalRead(KEY1) == LOW)  {    delay(100);    if (digitalRead(KEY1) == LOW)    {      keep_time = gokit_time_s();      while (digitalRead(KEY1) == LOW)      {        if ((gokit_time_s() - keep_time) > KEY_LONG_TIMER)        {          Last_KeyTime = gokit_time_s();          return KEY1_LONG_PRESS;        }      } //until open the key      if ((gokit_time_s() - Last_KeyTime) > KEY_LONG_TIMER)      {        return KEY1_SHORT_PRESS;      }      return 0;    }    return 0;  }  return 0;}char gokit_key2down(void){  unsigned long keep_time = 0;  if (digitalRead(KEY2) == LOW)  {    delay(100);    if (digitalRead(KEY2) == LOW)    {    delay(100);    if (digitalRead(KEY2) == LOW)    {      keep_time = gokit_time_s();      while (digitalRead(KEY2) == LOW) //until open the key      {        if ((gokit_time_s() - keep_time) > KEY_LONG_TIMER)        {          Last_KeyTime = gokit_time_s();          return KEY2_LONG_PRESS;        }      }      if ((gokit_time_s() - Last_KeyTime) > KEY_LONG_TIMER)      {        return KEY2_SHORT_PRESS;      }      return 0;    }    return 0;  }  return 0;}//室内报警监测char gokit_alarmdown(void){  unsigned long keep_time = 0;  if (digitalRead(alarmPin) == LOW)  {    delay(100);    if (digitalRead(alarmPin) == LOW)    {      keep_time = gokit_time_s();      while (digitalRead(alarmPin) == LOW) //until open the key      {        if ((gokit_time_s() - keep_time) > KEY_LONG_TIMER)        {          Last_KeyTime = gokit_time_s();          return ALARM_LONG_PRESS;        }      }      if ((gokit_time_s() - Last_KeyTime) > KEY_LONG_TIMER)      {        return ALARM_SHORT_PRESS;      }      return 0;    }    return 0;  }  return 0;}char gokit_keydown(void){  char ret = 0;  ret |= gokit_alarmdown();  ret |= gokit_key2down();  ret |= gokit_key1down();  return ret;}void KEY_Handle(void){  /*  Press for over than 3 second is Long Press  */  switch (gokit_keydown())  {    case KEY1_SHORT_PRESS:      myGizwits.setBindMode(WIFI_PRODUCTION_TEST);      break;    case KEY1_LONG_PRESS:      myGizwits.setBindMode(WIFI_RESET_MODE);      break;    case KEY2_SHORT_PRESS:      myGizwits.setBindMode(WIFI_SOFTAP_MODE);      //Soft AP mode      break;    case KEY2_LONG_PRESS:      myGizwits.setBindMode(WIFI_AIRLINK_MODE);      //AirLink mode      break;    case ALARM_SHORT_PRESS:      alarmflag = ((alarmflag == 0) ? 1 : 0);      if (alarmflag)      {        digitalWrite(beepPin, LOW);      }      else      {        digitalWrite(beepPin, HIGH);      }      break;    case ALARM_LONG_PRESS:      digitalWrite(ledPin, HIGH); //设置为高电平      digitalWrite(relayPin1, HIGH); //设置为高电平      digitalWrite(relayPin2, HIGH); //设置为高电平      break;    default:      break;  }}//获取温度数据int dht_11_gettemperature() {  int chk = myDHT_11.read11(temhumPin);  int value = myDHT_11.temperature;  return value;}//获取湿度数据int dht_11_gethumidity() {  int chk = myDHT_11.read11(temhumPin);  int value = myDHT_11.humidity;  return value;}/**  Serial Init , Gizwits Init  @param none  @return none*/void setup() {  // put your setup code here, to run once:  mySerial.begin(115200);  pinMode(KEY1, INPUT_PULLUP);  pinMode(KEY2, INPUT_PULLUP);  pinMode(smokePin, INPUT);  //设置为数字输入模式  pinMode(movePin, INPUT);  pinMode(alarmPin, INPUT_PULLUP);  pinMode(firePin, INPUT);  pinMode(lightPin, INPUT); //模拟量为输入模式  pinMode(beepPin, OUTPUT); //设置为数字输出模式  pinMode(ledPin, OUTPUT);  pinMode(relayPin1, OUTPUT);  pinMode(relayPin2, OUTPUT);  pinMode(con_ledPin, OUTPUT);  digitalWrite(beepPin, HIGH); //设置为高电平  myGizwits.begin();}void wifiStatusHandle(){  if (myGizwits.wifiHasBeenSet(WIFI_CON_ROUTER))  {    digitalWrite(con_ledPin, HIGH); //设置为低电平    digitalWrite(ledPin, HIGH); //设置为高电平    digitalWrite(relayPin1, HIGH); //设置为高电平    digitalWrite(relayPin2, HIGH); //设置为高电平  }}/**  Arduino loop  @param none  @return none*/void loop() {  //Configure network  //if(XXX) //Trigger Condition  //myGizwits.setBindMode(0x02);  //0x01:Enter AP Mode;0x02:Enter Airlink Mode  bool varW_Alarm = alarmflag;//Add Sensor Data Collection  myGizwits.write(VALUE_Alarm, varW_Alarm);  unsigned long varW_fire = analogRead(firePin);//Add Sensor Data Collection  myGizwits.write(VALUE_fire, varW_fire);  unsigned long varW_Move_Test = digitalRead(movePin);//Add Sensor Data Collection  myGizwits.write(VALUE_Move_Test, varW_Move_Test);  unsigned long varW_Tem = dht_11_gettemperature();//Add Sensor Data Collection  myGizwits.write(VALUE_Tem, varW_Tem);  unsigned long varW_Hum = dht_11_gethumidity();//Add Sensor Data Collection  myGizwits.write(VALUE_Hum, varW_Hum);  unsigned long varW_Light = analogRead(lightPin);//Add Sensor Data Collection  myGizwits.write(VALUE_Light, varW_Light);  bool varR_LED_OnOff = 0;  if (myGizwits.hasBeenSet(EVENT_LED_OnOff))  {    myGizwits.read(EVENT_LED_OnOff, &varR_LED_OnOff); //Address for storing data    if (varR_LED_OnOff == 0)    {      digitalWrite(ledPin, HIGH);    }    else    {      digitalWrite(ledPin, LOW);    }  }  bool varR_Relay_1 = 0;  if (myGizwits.hasBeenSet(EVENT_Relay_1))  {    myGizwits.read(EVENT_Relay_1, &varR_Relay_1); //Address for storing data    if (varR_Relay_1 == 0)    {      digitalWrite(relayPin1, HIGH);    }    else    {      digitalWrite(relayPin1, LOW);    }  }  bool varR_Relay_2 = 0;  if (myGizwits.hasBeenSet(EVENT_Relay_2))  {    myGizwits.read(EVENT_Relay_2, &varR_Relay_2); //Address for storing data    if (varR_Relay_2 == 0)    {      digitalWrite(relayPin2, HIGH);    }    else    {      digitalWrite(relayPin2, LOW);    }  }  bool varR_beep = 0;  if (myGizwits.hasBeenSet(EVENT_beep))  {    myGizwits.read(EVENT_beep, &varR_beep); //Address for storing data    if (varR_beep == 0 )    {      digitalWrite(beepPin, HIGH);    }    else    {      digitalWrite(beepPin, LOW);    }  }  KEY_Handle();  wifiStatusHandle();  myGizwits.process();}
 
五、下载Android开发代码包

5.1 在应用开发生成APP代码包

caf35aa6-0c90-11ed-ba43-dac502259ad0.png

通过Android Studio软件导入项目进行编译,因版本问题需要修改关键词,compile 均替换为implementation,testcompile均替换为testimplementation,可参考以下代码:


apply plugin: 'com.android.application'
android {    compileSdkVersion 25    buildToolsVersion '28.0.2'    useLibrary 'org.apache.http.legacy'    defaultConfig {        applicationId "com.gizwits.opensource.appkit"        minSdkVersion 16        targetSdkVersion 25        versionCode 1        versionName "2.5.1.072715"        multiDexEnabled true    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }}
dependencies {    implementation fileTree(dir: 'libs', include: ['*.jar'])    implementation 'com.android.support.constraint1.1.0'    testImplementation 'junit4.12'    implementation 'com.android.support24.2.1'    implementation files('libs/BLEasyConfig.jar')    implementation files('libs/easylink2.0.jar')    implementation files('libs/GizWifiSDK.jar')    implementation files('libs/jpush-android-2.1.5.jar')    implementation files('libs/Lark7618SDK_noudp1606031910_0101.jar')    implementation files('libs/libammsdk.jar')    implementation files('libs/libForEElink.jar')    implementation files('libs/LSFSK_1.0.jar')    implementation files('libs/ltlink2.jar')    implementation files('libs/mta-sdk-1.6.2.jar')    implementation files('libs/OneShotConfig.jar')    implementation files('libs/open_sdk_r5756.jar')    implementation files('libs/pushservice-5.6.0.30.jar')    implementation files('libs/simpleconfigwizardlib.jar')    implementation files('libs/xUtils-2.6.14.jar')    implementation files('libs/zxing.jar')    implementation 'com.android.support25.3.0'    implementation 'com.yanzhenjie1.0.5'}

同时可参考“基于机智云AIoT平台的Android开源app修改教程”https://www.sohu.com/a/476083681_486728

使项目成功编译

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 监控系统
    +关注

    关注

    21

    文章

    4196

    浏览量

    185256
  • Arduino
    +关注

    关注

    191

    文章

    6534

    浏览量

    197658
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于STM32与机智的智能家居系统(完整项目)

    物联网与嵌入式技术推动智能家居成为主流,传统家居存在功能单一、监测不全、控制繁琐等缺陷。本文设计基于STM32F103C8T6与机智平台的智能家居
    的头像 发表于 05-15 18:04 188次阅读
    基于STM32与<b class='flag-5'>机智</b><b class='flag-5'>云</b>的智能<b class='flag-5'>家居</b><b class='flag-5'>系统</b>(完整项目)

    机房环境监控系统与动环监控系统包括哪些?

    智慧动环监控系统、物联网智能动环监控系统、物联网动环智能监控、动环监控智慧机房
    的头像 发表于 03-31 08:11 299次阅读
    机房<b class='flag-5'>环境</b><b class='flag-5'>监控</b><b class='flag-5'>系统</b>与动环<b class='flag-5'>监控</b><b class='flag-5'>系统</b>包括哪些?

    危废暂存间远程监控管理系统方案

    ,也要保障人员安全、避免事故。但目前人工管理模式的弊端越来越大,亟待更加高效可靠的管理机制。 对此,数之能通过部署数据采集终端与远程监控平台,实现对危废暂存间的环境
    的头像 发表于 03-24 10:29 192次阅读
    危废暂存间<b class='flag-5'>远程</b><b class='flag-5'>监控</b>管理<b class='flag-5'>系统</b>方案

    机智斩获顾家家居2025年度技术创新奖

    新年伊始,捷报频传!1月16日,顾家家居客餐厅事业本部供应商合作伙伴大会于浙江杭州盛大启幕,行业翘楚齐聚一堂,共话家居产业智能化发展新未来。在这场备受瞩目的行业盛会上,机智凭借深耕智
    的头像 发表于 02-06 11:23 862次阅读

    STM32快速上实战指南:手把手带你入门机智

    本项目基于STM32F103C8T6最小系统板,采用HAL库开发方式,结合ESP01sWi-Fi模块,实现将各类传感器数据快速上传至机智平台。通过移植机智
    的头像 发表于 12-10 18:04 1550次阅读
    STM32快速上<b class='flag-5'>云</b>实战指南:手把手带你入门<b class='flag-5'>机智</b><b class='flag-5'>云</b>

    基于STM32的矿井作业环境监测系统的设计与实现

    WiFi传输数据至机智物联网平台,支持手机APP远程监控与操作,提升应急响应和管理效率。PART01系统总体结构
    的头像 发表于 12-05 18:04 1709次阅读
    基于STM32的矿井作业<b class='flag-5'>环境</b>监测<b class='flag-5'>系统</b>的设计与实现

    基于机智平台的新疆农田气候检测系统设计与实现

    本文设计了一种基于平台的新疆农田气候检测系统,用于实时监测风速、温湿度和PM2.5等环境参数,提升农业生产智能化水平。系统采用STM32单片机与传感器采集数据,通过ESP8266Wi
    的头像 发表于 09-23 18:45 1011次阅读
    基于<b class='flag-5'>机智</b><b class='flag-5'>云</b>平台的新疆农田气候检测<b class='flag-5'>系统</b>设计与实现

    汉威科技空气质量传感器助力家居环境安全监测

    家居环境是人类的“第一空间”,是人们安身立命、享受生活的地方,然而现代社会的家居环境往往暗藏危险,尤其是甲醛这种看不见摸不着的有害物质。
    的头像 发表于 08-22 17:51 1447次阅读

    智慧农业温室大棚远程监控物联网系统解决方案

    御控农业物联网温室智能管理系统,通过部署环境监测传感器(气象、土壤、气体)、4G/LORA通信网络和AI平台,实现温室环境实时监控与智能调
    的头像 发表于 08-21 14:09 1071次阅读

    基于PLC与物联网的气流粉碎机智监控系统

    PLC气流粉碎机远程监控系统解决方案
    的头像 发表于 07-03 15:57 803次阅读
    基于PLC与物联网的气流粉碎<b class='flag-5'>机智</b>能<b class='flag-5'>监控</b><b class='flag-5'>系统</b>

    STM32项目分享:智能家居(机智)升级版

    01—项目简介1.功能详解STM32智能家居(机智)升级版功能如下:检测功能:监测环境温湿度、烟雾浓度、一氧化碳、空气质量、光照强
    的头像 发表于 07-02 18:04 1135次阅读
    STM32项目分享:智能<b class='flag-5'>家居</b>(<b class='flag-5'>机智</b><b class='flag-5'>云</b>)升级版

    机智配网教程 第二期:生成MCU代码包与调试

    在上一期中,我们介绍了机智GAgent固件的烧录过程,并在测试中完成了机智开发者账号的注册及数据点的创建。接下来,我将继续为大家讲解如何生成MCU代码包。数据点创建登录
    的头像 发表于 06-28 10:02 1092次阅读
    <b class='flag-5'>机智</b><b class='flag-5'>云</b>配网教程 第二期:生成MCU代码包与调试

    物联网智能家居方案-基于Nucleo-STM32L073&amp;机智实例项目打包下载

    物联网智能家居方案-基于Nucleo-STM32L073&机智实例项目打包,推荐下载!
    发表于 05-29 21:50

    机智Airlink配网超时、数据上传延迟及更新不及时问题分析

    本教程旨在分析并解决在使用32单片机和ESP8266-01S接入机智时可能遇到的配网超时、数据上传延迟及更新不及时的问题。通过将传感器采集的数据上传至机智APP,同时实现
    的头像 发表于 05-26 18:03 1412次阅读
    <b class='flag-5'>机智</b><b class='flag-5'>云</b>Airlink配网超时、数据上传延迟及更新不及时问题分析

    移动基站远程集中监控系统与基站电力远程监控系统是什么监控系统

    物联网智能配电室监控系统包含哪些:综合监控系统、安全监控系统
    的头像 发表于 05-26 15:19 1168次阅读
    移动基站<b class='flag-5'>远程</b>集中<b class='flag-5'>监控</b><b class='flag-5'>系统</b>与基站电力<b class='flag-5'>远程</b><b class='flag-5'>监控</b><b class='flag-5'>系统</b>是什么<b class='flag-5'>监控</b><b class='flag-5'>系统</b>