查看: 6093|回复: 1

案例八:MQTT方式上传数据至machtalk

[复制链接]

该用户从未签到

发表于 2014-8-29 10:36 | 显示全部楼层 |阅读模式
本帖最后由 weijinhe 于 2014-10-15 12:46 编辑

服务器启动后,主动订阅一个公共主题,名字可以是/machtalk/commontopic,当设备需要上传数据时,publish一个消息到该主题,消息内容可以是{"APIKey":"7f3802bd3e474757bfba1f6ab20a8fbf","device_id":"861001002720064","device_value_id":"1","device_type_id":"3",”value”:XX}服务端收到该消息后,分析该设备的相关信息是否合法,合法的话就调用入库的代码。

1、硬件准备(1)Arduino uno (2)模拟声音传感器模块(3)Arduino Ethernet W5100 网络扩展板模块(4)网线一根
2、硬件连接(1)Arduino Ethernet W5100 网络扩展板模块与Arduino uno连接。(2)Arduino Ethernet W5100 网络扩展板模块插上网线(3)模拟声音传感VC GND out 分别与Arduino uno 5V GND A(0)连接     
3、烧写代码

kittenblock中小学创客名师推荐的图形化编程软件


#include <SPI.h>
#include <Ethernet.h>
#include <PubSubClient.h>

byte mac[]    = {  0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
byte server[] = { 60, 211, 253, 162 };  //machtalk平台服务器
byte ip[]     = { 192, 168, 0, 100 };

void callback(char* topic, byte* payload, unsigned int length) {
  // handle message arrived
}

EthernetClient ethClient;
PubSubClient client(server, 1883, callback, ethClient);
char json[100];
void setup()
{
  //连接网络
  Serial.begin(9600);
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    Ethernet.begin(mac, ip);
  }  
}
void loop()
{
  client.loop();
  if (client.connect("arduinoClient")) {
    Serial.println("connected");
  }
   int value=analogRead(A0);
   Serial.println(value);
//device_id、device_value_id、devce_type_id替换为自己ID  sprintf(json,"{\"device_id\":\"4fa0ee5291f4402e8fc98e4d72e17ce0\",\"device_value_id\":\"1\",\"device_type_id\":\"1\",\"value\":%d}",value);
   client.publish("/machtalk/commontopic",json);
   Serial.println(json);
   delay(1000);
}
4Machtalk物联网平台配置    Machtalk物联网平台配置、动作设置、触发器设置如http://machtalk.net/intro/regist所示,不再累述。
www.mactalk.net技术交流群:300250166



w5100.jpg
声音传感器.jpg

该用户从未签到

发表于 2018-1-9 13:38 | 显示全部楼层
你好, 我在使用client.publish的时候返回值是0,消息没有成功发送出去,我该如何分析原因?

谢谢!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

[限时福利]5分钟带你快速了解新一代开发板:M5STACK
[限时福利]5分钟带你快速
一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
ESP-01M上传问题
ESP-01M上传问题
求告诉,如何解决!
Arduino四则混合运算计算器
Arduino四则混合运算计算
#由于时间问题,再加上东西刚刚做出来过于兴奋导致发帖太着急,帖子暂时没写完
【干货分享】mega2560原理图PCB图纸altium designer18
【干货分享】mega2560原理
分享一下mega2560的板子 AD版本 **** 本内容被作者隐藏 **** ergo
M5StickC平衡机器人
M5StickC平衡机器人
M5StickC内置了SH200Q/MPU6886,也就是加速度计和陀螺仪 ,添加驱动板和小电机就可以
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表