weijinhe 发表于 2014-4-14 11:05:01

machtalk.net物联网平台温度传感器采集

本帖最后由 weijinhe 于 2014-4-16 14:22 编辑

1、硬件准备
Arduino uno
串口转wifi模块
LM35温度采集传感器


2、硬件连接
串口转Wifi与Arduino uno 相连接。
LM35温度传感器5V GED output 分别与Arduino 5V GND A(0)相连接。

3、烧写代码
根据您所用的Arduino板子及端口,在Tool/Board中选择。

烧写代码时,串口转WIFI模块SW1扳到O,烧写完毕完毕扳到C,代码如下:
void setup() {
Serial.begin(115200);
pinMode(13,OUTPUT);
}
void loop() {
   int Value;
   int dat = analogRead(A0);
   Value= (dat*0.0048828125*100);
   digitalWrite(13,HIGH);
Serial.println("POST /v1.0/device/76511084f515411e8cd02e20be0f0583/1/1/datapoints/add HTTP/1.1"); //“设备ID、值ID 类型ID数值用你自己的替代
Serial.println("Host: api.machtalk.net");
Serial.println("APIKey:7a19bd7874a541a6b4c50a831ea0b3b2"); //自己APIKEY替代
Serial.print("Accept: *");
Serial.print("/");   
Serial.println("*");
Serial.print("Content-Length: ");
int thislength=17+getLength(sensorValue);
Serial.println(thislength);
Serial.println("Content-Type: application/x-www-form-urlencoded");
Serial.println("Connection: close");   
Serial.println();
Serial.print("params={\"value\":");
Serial.print(sensorValue);
Serial.println("}");
digitalWrite(13,LOW);
}
delay (9000);
}
int getLength(int someValue) {
int digits = 1;
int dividend = someValue /10;
while (dividend > 0) {
    dividend = dividend /10;
    digits++;
}
return digits;
}
4、串口转WIFI模块配置
   对wifi进行配置,首先恢复出厂值。 按住模块上的RESET按钮超过6秒钟, 等待启动(约30 秒)。启动后,用电脑的WiFi扫描空间里的WiFi信号,加入WiFi,密码为 12345678。
   
   在浏览器里输入192.168.16.254, 会弹出输入用户名和密码的对话框。 用户名和密码都是admin。
   
   登陆后有如下界面: 把wifi模块设置成客户端模式。连接本地wifi网络,服务器名称api.machtalk.net 本地端口10086,配置完成后确定。
   
5、Machtalk物联网平台配置
   在www.machtalk.net上注册用户,登录后进入“设备”模块,创建一个LM35设备,添加一个数值型的设备值。
   
   
   添加一个Email类动作,当触发动作时候,发出报警信息。
   
  
   给这个设备添加一个触发器,满足条件时触发刚添加的动作:
     
   
   以上步骤完成对LM35温度传感数据上传至Machtalk平台,可以观察数据。
   

   监控报警:当温度大于预定告警值就会触发指定动作。本案例当温度大于38度时,可以收到报警邮件。

www.machtalk.net物联网交流群:300250166

futuremeng 发表于 2014-5-29 10:59:12

用Arduino Yun传了一个甲醛传感器的值试了试#include <Process.h>
void setup() {
// Initialize Bridge
Bridge.begin();

// Initialize Serial
Serial.begin(9600);

// Wait until a Serial Monitor is connected.
while (!Serial);

// run various example processes


}

void loop() {

runCurl();

}

void runCurl() {
Process p;            
p.runShellCommand(" curl --request POST -F params={"value":}--header "APIKey:"http://api.machtalk.net/v1.0/device////datapoints/add")
while(p.running());
}原来http://machtalk.net/intro/uploaddata这里给的参考里面包含key,事实上是不需要的

futuremeng 发表于 2014-5-30 15:47:05

futuremeng 发表于 2014-5-29 10:59 static/image/common/back.gif
用Arduino Yun传了一个甲醛传感器的值试了试原来http://machtalk.net/intro/uploaddata这里给的参考里面包含 ...

可以在loop中的runcurl之后加delay(10000)

weijinhe 发表于 2014-6-3 15:01:01

futuremeng 发表于 2014-5-29 10:59 static/image/common/back.gif
用Arduino Yun传了一个甲醛传感器的值试了试原来http://machtalk.net/intro/uploaddata这里给的参考里面包含 ...

顶一个 arduino Yun 高大上

weijinhe 发表于 2014-6-3 15:33:14

futuremeng 发表于 2014-5-29 10:59 static/image/common/back.gif
用Arduino Yun传了一个甲醛传感器的值试了试原来http://machtalk.net/intro/uploaddata这里给的参考里面包含 ...

这个key是时间戳,可以用也可以不用,如果不用key,就是服务器这边时间。

wangrui224 发表于 2015-10-19 23:43:11

你好,int thislength=17+getLength(sensorValue);有错误哎
页: [1]
查看完整版本: machtalk.net物联网平台温度传感器采集