yesdayoncemore 发表于 2017-5-22 13:52:22

IoT小能手:机智云自助开发平台及云服务小白体验

本帖最后由 Genius 于 2017-5-23 14:59 编辑

很早就从朋友那里听说机智云的云服务特别好,开发工具十分丰富。
身为小白的我想玩玩智能硬件开发啊,但是只会玩玩Arduino怎么破,最近学习了下机智云的平台,感觉十分不错,文档资料完善,论坛和群里有很多大神答疑解惑。
这不,刚看到论坛的活动,就赶紧来占个坑,分享一下小白我使用机智云自助开发平台及云服务(含开发工具、SDK、开发套件)的经验和体验。


很早就想做一个监测PM2.5的DIY作品了,模块买好了,和Arduino通信也调通了,但不会做手机APP,通信协议也不会啊~~~

这个是我买的微雪的PM2.5模块,传感器输出模拟电压值,与PM2.5浓度成正比。

看了一些大神的帖子和文档中心的资料后,知道了机智云的MCU代码自动生成工具,简直好用到没朋友啊,点下鼠标,工程直接给你生成好了,自己在注释的地方填下代码就行了。
果断试了下,先爆照,我要做的是用Arduino板子采集PM2.5传感器的数据,让它显示在手机APP上,用了一个正点原子的esp8266 wifi模块,这个wifi模块要烧写一个叫GAgent的固件,论坛首页有教程帖,很详细的步骤。



先要注册机智云开发者账号,然后建立一个产品:


接着建立数据点,啥是数据点,文档中心说的很清楚了,建议像我一样的小白先看看文档中心的资料,对机智云平台有个整认识再动手,俗话说磨刀不误砍柴工嘛~~~~


然后点击生成工程就行了,选Arduino平台方案,支持的板子还是很多的

然后下载工程:



解压下载的工程,把\MCU_ArduinoUNOR3_source\Gizwits下的6个文件复制到\MCU_ArduinoUNOR3_source\examples\simpleTry文件夹下,然后用Arduino软件打开simpleTry.ino文件,



先把尖括号改为双引号,这样编译就没错误了。


然后在添加下代码,机智云把整个框架都搭建好,我这里只需要填充下就OK。
/****************************

Name:                  Gizwits + ArduinoUnoWiFi Library
Author:                tli@gizwits.com / bing@arduino.org.cn
Version:      V1.0
Init:                  2016-12-23
Modify:   2016-12-23
*****************************/
#include "Gizwits.h"
#include <Wire.h>

Gizwits myGizwits;
   
#define      COV_RATIO                     0.2            //ug/mmm / mv
#define      NO_DUST_VOLTAGE               400            //mv
#define      SYS_VOLTAGE                     5000         


/*
I/O define
*/
const int iled = 7;                                          //drive the led of sensor
const int vout = 0;                                          //analog input

/*
variable
*/
float density, voltage;
int   adcvalue;

/*
private function
*/
int Filter(int m)
{
static int flag_first = 0, _buff, sum;
const int _buff_max = 10;
int i;

if(flag_first == 0)
{
    flag_first = 1;

    for(i = 0, sum = 0; i < _buff_max; i++)
    {
      _buff = m;
      sum += _buff;
    }
    return m;
}
else
{
    sum -= _buff;
    for(i = 0; i < (_buff_max - 1); i++)
    {
      _buff = _buff;
    }
    _buff = m;
    sum += _buff;
   
    i = sum / 10.0;
    return i;
}
}
void setup() {
// put your setup code here, to run once:
pinMode(iled, OUTPUT);
digitalWrite(iled, LOW);                                     //iled default closed

Serial.begin(9600);
myGizwits.begin();
}

void loop() {

//Configure network
//if(XXX) //Trigger Condition
//myGizwits.setBindMode(0x02);//0x01:Enter AP Mode;0x02:Enter Airlink Mode
<font color="#00ff00">    /*
unsigned long varW_Air_Quality = 0;//Add Sensor Data Collection
myGizwits.write(VALUE_AIR_QUALITY, varW_Air_Quality);
unsigned long varW_PM2_5 = 0;//Add Sensor Data Collection
myGizwits.write(VALUE_PM2_5, varW_PM2_5);




//binary datapoint handle
*/</font>
<font color="#ff0000">/*
get adcvalue
*/
digitalWrite(iled, HIGH);
delayMicroseconds(280);
adcvalue = analogRead(vout);
digitalWrite(iled, LOW);

adcvalue = Filter(adcvalue);

/*
covert voltage (mv)
*/
voltage = (SYS_VOLTAGE / 1024.0) * adcvalue * 11;

/*
voltage to density
*/
if(voltage >= NO_DUST_VOLTAGE)
{
    voltage -= NO_DUST_VOLTAGE;
   
    density = voltage * COV_RATIO;
}
else
    density = 0;
   
unsigned char AQILevel=0;
   
if(density>=0 && density<=35)      AQILevel=0;
else if(density>35 && density<=75)   AQILevel=1;
else if(density>75 && density<=115)AQILevel=2;
else if(density>115 && density<=150) AQILevel=3;
else if(density>150 && density<=250) AQILevel=4;
else if(density>250 && density<=500) AQILevel=5;

unsigned longvarW_Air_Quality = AQILevel;//Add Sensor Data Collection
myGizwits.write(VALUE_AIR_QUALITY, varW_Air_Quality);
unsigned longvarW_PM2_5 =long(density);//Add Sensor Data Collection
myGizwits.write(VALUE_PM2_5, varW_PM2_5);
delay(100);//必要</font>
myGizwits.process();
}

红色的部分就是采集传感器数据后运算了,绿色看到木有,这是生成好的代码,告诉你怎么去填充数据了。。。

还有个问题,怎么让它联网,看了文档中心的应该会。。。

最后,说下手机APP,图中的APP是一个通用的,在这里下载:
http://dev.gizwits.com/zh-cn/developer/resource/demo_app?protoc=WIFI



附上工程文件:

bigfanofloT 发表于 2017-6-10 20:51:09

不错

物联网小白 发表于 2017-11-7 20:40:06

做的不错,学习了

天鹏元帅不会飞 发表于 2018-5-4 13:49:20

学习了谢谢:P

天才小子 发表于 2019-8-4 15:55:34

你好,有32的PM2.5监测么?想学习一下,QQ934211601,谢谢
页: [1]
查看完整版本: IoT小能手:机智云自助开发平台及云服务小白体验