极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 18141|回复: 5

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

[复制链接]
发表于 2014-4-14 11:05:01 | 显示全部楼层 |阅读模式
本帖最后由 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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2014-5-29 10:59:12 | 显示全部楼层
用Arduino Yun传了一个甲醛传感器的值试了试
  1. #include <Process.h>
  2. void setup() {
  3.   // Initialize Bridge
  4.   Bridge.begin();

  5.   // Initialize Serial
  6.   Serial.begin(9600);

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

  9.   // run various example processes
  10.   

  11. }

  12. void loop() {

  13. runCurl();

  14. }

  15. void runCurl() {
  16.   Process p;            
  17.   p.runShellCommand(" curl --request POST -F params={"value":[value]}  --header "APIKey:[APIKey]"  http://api.machtalk.net/v1.0/device/[device_id]/[device_value_id]/[device_type_id]/datapoints/add")
  18. while(p.running());
  19. }
复制代码
原来http://machtalk.net/intro/uploaddata这里给的参考里面包含key,事实上是不需要的
回复 支持 反对

使用道具 举报

发表于 2014-5-30 15:47:05 | 显示全部楼层
futuremeng 发表于 2014-5-29 10:59
用Arduino Yun传了一个甲醛传感器的值试了试原来http://machtalk.net/intro/uploaddata这里给的参考里面包含 ...

可以在loop中的runcurl之后加delay(10000)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-3 15:01:01 | 显示全部楼层
futuremeng 发表于 2014-5-29 10:59
用Arduino Yun传了一个甲醛传感器的值试了试原来http://machtalk.net/intro/uploaddata这里给的参考里面包含 ...

顶一个 arduino Yun 高大上
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-3 15:33:14 | 显示全部楼层
futuremeng 发表于 2014-5-29 10:59
用Arduino Yun传了一个甲醛传感器的值试了试原来http://machtalk.net/intro/uploaddata这里给的参考里面包含 ...

这个key是时间戳,可以用也可以不用,如果不用key,就是服务器这边时间。
回复 支持 反对

使用道具 举报

发表于 2015-10-19 23:43:11 | 显示全部楼层
你好,int thislength=17+getLength(sensorValue);有错误哎
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 19:47 , Processed in 0.040303 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表