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
附上工程文件:
不错 做的不错,学习了 学习了谢谢:P 你好,有32的PM2.5监测么?想学习一下,QQ934211601,谢谢
页:
[1]