2018-02-08 17:59:33 CSDNhuaong 阅读数 21890

目录

前段时间利用手边的ESP8266小WiFi模块尝试接入了Yeelink平台,今天想尝试把ESP8266接入乐为物联平台。有了上次的基础,所以今天一个上午就初步调通了。下面分享一下我们调试过程。


0.了解乐为物联

这里写图片描述

1.乐为物联的框架结构

     物联网架构分为三层,即“云端服务器 -> 设备 -> 传感器&控制器”的架构。

  • “传感器&控制器”是指可以采集、测量数据或者可以被控制的设备或仪器;
  • “设备”的作用是将设备的采集数据发送到云端服务器上或者将控制数据返回给设备,“

  • 设备”前端能够与测量设备进行通信(例如RS232接口,RS485接口),后端需要具备网络功能(例如GPRS,WI-FI和以太网功能);

  • “云端服务器”上部署了数据存储、分析等的数据库,最后用户通过客户端(电脑、手机)等可以以浏览器的形式访问数据库, 就可以实现丰富多样的基于数据的应用
    这里写图片描述

我的理解
我的设备

  • 指我们连接乐联网的整个硬件平台系统 包括开发板,联网模组(这里是ESP8266),传感器模组,控制执行模组
  • 目前支持Arduino 、lw_board、lw_modbus 、也可以自定义其他类型。

传感器与控制器 这里都是搭载在我们的某一个设备上的。

  • 传感器 这里指的是我们感知外界 能够获取物理世界一些参数的媒介
    目前支持
    这里写图片描述
  • 主要是我们的硬件设备 把数据上传到 乐联网
  • 控制器 这里主要指 我们从乐联网对 硬件系统实施控制 目前可以定义 开关量和数值量控制。当然我们也可以监测到当前控制器的状态

所以要想实现把搭载ESP8266的硬件接入乐为物联,首先要大致了解乐为物联,然后自己申请一个账号,并且创建一个设备并且为其添加几个传感器和控制器。

2.ESP8266初试小结

安信可科技推出ESP8266系列的 WiFi芯片为如今特别热门的物联网提供了低成本的解决方案。内置WiFi前端和高性能的32位ESP32MCU,内置无线网络协议IEEE802.11b/g/n 协议栈以及 TCP/IP 协议栈,能够实现用户串口或 TTL 电平数据到无线网络之间的转换,从而实现数据借助WiFi模块在局域网的无线传输和网络传输 。想初步了解ESP8266怎么使用可以参考我的博文 ESP8266初识小结


1.模拟工具在线调试

     在线调试 是乐联网我们调试API 提供的模拟工具。指的是我们虽然在乐联网申请了账号创建了设备。但是尚未把设备接入互联网,或者还不知道如何把设备接入乐联网。我们可以先用在线工具来进行测试。测试通了之后,你就知道连接乐联网的大致HTTP请求该怎么写,该包含哪些东西了。

API接口在线调试 页面
HTTP在线测试 页面
这里我们就简单的先测试 【上传测量设备数据】, 这也是大多是情况我们最常用的功能。
这里写图片描述

这里写图片描述

其实这一步还比较简单,按照要求写入自己的UserKey,稍微需要注意的两点就是

  1. 网关标识 这个根据自己的情况,根据你创建的设备的时候的标识,正常系统默认生成 01、02、03……,这里你想测试哪个设备,就写哪个标识。
  2. 数据格式 这里的数据格式是一个括号,里面也是一个或者几个JSON的数据形式。这里写入我们要上传这个设备哪一个传感器的当前值。

    所以从这里我们也可以看到,要把数据上传到乐联网

  3. 使用的是POST请求

  4. 请求中应包含 UserKey、Host地址、JSON数据
  5. JSON数据可以单独发一个传感器,也可以一次发好几个传感器数据。
    模拟调试成功的返回的响应应该是 successful true 如果是false就要找原因了。

2.PC端 串口调试


上面已经实现了模拟在线调试,这会我们才真正的使用ESP8266WiFi模块与乐为物联的Host建立连接,只不过我们是把ESP8266WiFi模块通过USB-TTL接在PC端的串口调试助手上,通过AT指令对ESP8266进行配置,建立连接,建立连接之后再发送POST请求。
我把这个过程大致分为四步:

  1. 初始化配置ESP8266 为STA模式,并且可搜索到附近的WiFi热点。
  2. ESP8266连接WiFi 。(这个WiFi一般指 可以接入Internet的无线路由,也可以是我们手机开的热点,关键是能联网就行)
  3. ESP8266与乐联网建立TCP连接 ESP8266是TCP Client, www.lewei50.com是TCP Server
  4. 发送POST请求,上传数据
    具体过程如下:
    123步都是通过AT指令操作的 所以我把它放在一起
 //AT指令发送时记得勾线发送新行
AT+RST                   //复位
AT+CIPMODE=1             //STA模式
AT+CIPMUX=0             //单连接模式
AT+CWMODE=1             //透传模式

AT+CWJAP="412","cxjlb412"  //连接WiFi   这里是WiFi和密码

AT+CIPSTART="TCP","api.lewei50.com",80  //与乐联网建立TCP连接
AT+CIPSEND                  //进入透传开始发送数据

/*  这里使用透传模式有一个好处 就是一般不会轻易断开连接,如果不使用透传模式,TCP连接容易断开,下次发数据还要重新建立连接 */

//开机自动进入透传 并且连接到乐联网
AT+SAVETRANSLINK=1,"api.lewei50.com",80,"TCP"

这里写图片描述


建立了TCP连接之后 第4步最关键的了,就是要发送POST请求了。这是最后一步,也可以说是最关键的一步,我这一上午大多数时间都在折腾这一步。从模拟工具在线测试,我们可以看到POST 请求大致包含
请求类型 POST /api/V1/gateway/Updatesensors/01 HTTP/1.1
UserKey **
Host 地址:open.lewei50.com
JSON数据 [{“Name”:”T1”,”Value”:25}]
但是具体怎么放在一起,以什么形式发送过去,一直不知道,尝试了很多次也一直报错。
这里写图片描述
一直在查找这个问题的资料,后来在乐为物联的平台上一篇文章上找到了答案。
【爱好者】快速搭建室内颗粒物测试系统
这虽然是一个Arduino的工程项目,用的是W5100以太网控制器,但是它的源码中还是有有提及POST数据格式。具体格式如下:


POST /api/V1/gateway/Updatesensors/02 HTTP/1.1
userkey: afe8c5*************b2f6b7f69fa7 
Host: open.lewei50.com 
Content-Length: 26 
Connection: close

[{"Name":"temp","Value":25}]
//1.数据长度就是最后一句JSON数据的字节长度
//2.JSON前面的的一行新行必不可少
//一次可以上传多个数据,但是这些传感器必须在同一个设备下,因为第一句已经写了01/02……
//还需要注意两次POST请求的间隔至少10s,不能太过频繁的请求。

这里写图片描述


3.STM32硬件调试

其实只要第二个 PC串口的调试好了,任何有串口的硬件搭载上ESP8266都可以实现这个功能。我是常用STM32的核心板,所以就把ESP8266挂载STM32上了。代码不过是通过MCU的串口,模拟上面的AT 指令、POST请求。

在STM32上调试的代码分享在这里


4.参考资料

乐联网使用详细手册 html
快速搭建室内颗粒物测试系统 HTML
乐为物联 TCP 长连接 实现反向控制
爱好者】快速搭建室内颗粒物测试系统

2018-11-04 10:51:09 u014624241 阅读数 206

dth11 使用

直接获取温湿度代码

#include <DHTesp.h>
DHTesp DHT;//对象
void setup() {
  Serial.begin(9600);
  DHT.setup(2,DHT.DHT11);
}
void loop() {
Serial.print("Temperature = "); //温度
  Serial.println(DHT.getTemperature());
  Serial.print("Humidity = "); //湿度
  Serial.println(DHT.getHumidity());
   delay(3000);
}

post 到乐为物联

/*
   http post DHT11
*/
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <DHTesp.h>
DHTesp DHT;

#define DHT11_PIN 2
const char* ssid     = "MarsStyle";
const char* password = "HHXXTTXS";
const char* host = "http://www.lewei50.com/api/v1/gateway/updatesensors/01";


void setup() {
  Serial.begin(115200);
  delay(100);
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());

  DHT.setup(2, DHT.DHT11);

}

int value = 0;

void loop() {
  delay(10000);
  Serial.print("Temperature = "); //温度
  Serial.println(DHT.getTemperature());
  float TEM =  DHT.getTemperature();
  String tem1 = String(TEM);
  Serial.print("Humidity = "); //湿度
  Serial.println(DHT.getHumidity());
  float HUM =  DHT.getHumidity();
  String hum1 = String(HUM);
  Serial.print("connecting to ");
  Serial.println(host);
  // Use WiFiClient class to create TCP connections
  //WiFiClient client;
  HTTPClient httpClient;
  String httpString;
  httpClient.begin(host);
  //这句话非常的重要否则无法post到服务器上参数无法取得。
  httpClient.addHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
  httpClient.addHeader("userkey", "8c749228fd914ba2835b38a4fbb95518");
  String thData = "[{\"Name\":\"TM5\",\"Value\":" + tem1 + "},{\"Name\":\"HH5\",\"Value\":" + hum1 + "}]";
  //  String thData = "[{\"Name\":\"TM5\",\"Value\":\"23\"},{\"Name\":\"HH5\",\"Value\":\"46.2\"}]";
  int httpCode = httpClient.POST(thData);

  if (httpCode > 0) {
    if (httpCode == HTTP_CODE_OK) {
      httpString = httpClient.getString();
      Serial.println(httpString);
    }
  }
  httpClient.end();
}
2018-02-08 17:57:08 CSDNhuaong 阅读数 2308

写在前面

在上篇博客 ESP8266WiFi模块接入乐为物联平台中,简答介绍了乐为物联平台,并且用串口调试助手,通过串口转USB线连接ESP8266 WiFi模块,并且串口命令建立了与乐为物联的连接,还虚拟了一些传感器的数据并且POST上去。

在实际的应用中,我们需要用微控制器来完成这一系列操作,并且把获取的传感器数据上传到乐为物联平台,而且能够从乐为物联对设备反向控制。

还有一个比较重要的问题是在实际应用中,不同的环境的无线路由的账号和密码都不同,那么如何能够让ESP8266主动连接到到无线路由呢,这里借助ESP8266硬件支持smartconfig配网,因此在程序中通过按键能够进行smartconfig自动连接WiFi的过程。

smartconfig

                if(KEY1==0)
                {
                    while(KEY1==0);
                    usart3_printf("\r\nKEY1 has been passed\r\n");
                    Smartconfig();  
                }

smartconfig 主要功能是退出透传模式,启动smartconfig,等待配网,如果配网成功,串口会有些反馈,所以启动一个定时器 (周期10ms),在定时器中断中GET_Status(void),判断是否配网成功。

void Smartconfig(void)
    {

        printf("+++");
        Delay_ms(100);
        printf("+++");
        Delay_ms(100);
        printf("AT+SAVETRANSLINK=0\r\n");   
        Delay_ms(100);      
        printf("AT+RST\r\n"); //ESP8266 reset 1s
        Delay_ms(1000);

        printf("AT+CWMODE=1\r\n");
        Delay_ms(100);
        printf("AT+CIPMUX=0\r\n");
        Delay_ms(100);

        if(WIFI_Status==ENABLE)
            usart3_printf("wifi has been connected\r\n");
        else
        {       
        printf("AT+CWSTARTSMART\r\n");
        Delay_ms(100);
        printf("AT+CWSTOPSMART\r\n");
        Delay_ms(100);
        printf("AT+CWSTARTSMART\r\n");
//      Send_Cmd("+++","OK",10);
//      Send_Cmd("+++","OK",10);
//      Send_Cmd("AT+SAVETRANSLINK=0\r\n","OK",10);     
//      Send_Cmd("AT+RST\r\n","OK",50); //ESP8266 reset 1s
//      
//      Send_Cmd("AT+CWMODE=1\r\n","OK",10);
//      Send_Cmd("AT+CIPMUX=0\r\n","OK",10);
//      
//      Send_Cmd("AT+CWSTARTSMART","OK",10);
//      Send_Cmd("AT+CWSTOPSMART","OK",10);
//      Send_Cmd("AT+CWSTARTSMART","OK",10);
        SMART_Status = 0;       
        while(SMART_Status==0)
        {
            IWDG_Feed();
            LED1_Blink();
            Delay_ms(150);          
        }
    Send_Cmd("AT+CWSTOPSMART","OK",10);
     printf("AT+SAVETRANSLINK=1,\"101.37.32.173\",9960,\"TCP\"\r\n");
     Blink_Blink();
     printf("AT+RST\r\n");
     Blink_Blink();

    }
}

// 前面 smartconfig 发的命令,串口会有些反馈,判断是否配网成功
void GET_Status(void)
{
    if(USART1_Check("WIFI DISCONNECT"))   //send wifi disconnect
        WIFI_Status = 0;                                            // the flag take 0
    if(USART1_Check("WIFI CONNECTED"))   //send wifi connected
        WIFI_Status = 1;                                            // the flag take 1
    if(USART1_Check("smartconfig connected wifi"))   //smartconfig successful
    {
        SMART_Status = 1;
      printf("AT+CWSTOPSMART");
    }
}

#

上传数据到乐为物联,这里使用长连接,定时上传数据到乐为物联
5s 上传一次

printf(Heartbeat); //send heartbeat
Lewei_Send();

const char *Heartbeat = "{\"method\":\"update\",\"gatewayNo\":\"01\",\"userkey\":\"afe8c596525747f49a3db2f6b7f69fa7\"}&^!"; //keeping link  heartbeat message

const char *Response = "{\"method\":\"response\",\"result\":{\"successful\":true,\"message\":\"Write serial successful 0\"}}&^!"; //Response the commend message ,to make sure receive the signal


void Lewei_Send(void)
{
    char *Device_string;
    Device_string = mymalloc(150);
    sprintf(Device_string,"{\"method\":\"upload\",\"data\":\
[{\"Name\":\"T1\",\"Value\":\"%d\"},\
{\"Name\":\"H1\",\"Value\":\"%d\"},\
{\"Name\":\"LED1\",\"Value\":\"%d\"},\
{\"Name\":\"LED2\",\"Value\":\"%d\"}]}&^!",System.Temp,System.Humi,System.LED1_Sta,System.LED2_Sta);
    printf(Device_string);
    myfree(Device_string);
}

收到数据之后,在定时器中断中GET_Commed(),响应收到数据,并且对数据进行分割、解析

工程概述

整个工程不仅包含ESP8266的配网和收发数据,同时还包含NRF24L01组网, HMI串口屏显示部分。
具体工程文件分享在这里

STM32+ESP8266+smartconfig配网.zip

NRF24L01+STM32 slave1 湿度DHT22.zip

NRF24L01+STM32 slave3 反向控制.zip

2017-09-29 23:54:11 happyliuliming 阅读数 4120

ESP8266 WiFi 模块连接乐为物联云实现PM2.5测试系统

1.关于ESP8266
安信可科技推出的ESP8266 WiFi 模块可以以极低的成本把传统单片机系统接入物联网。内置WiFi前端和高性能的32位ESP32MCU,内置无线网络协议IEEE802.11b/g/n 协议栈以及 TCP/IP 协议栈,能够实现用户串口或 TTL 电平数据到无线网络之间的转换,从而实现数据借助WiFi模块在局域网的无线传输和网络传输 。
这里写图片描述
2.现有单片机颗粒物传感器应用方案
原本基于cypress PSOC4单片机和攀藤科技的PMS6003 PM2.5传感器的已经OK。仅能通过LCD显示,无法接入internet。
具体实现过程不在详述,请自行参考PMS6003颗粒物传感器中文说明书V2.5及PSOC4 CY8CKIT-042 开发板。
这里写图片描述
2.PC端串口调试ESP8266 WiFi 模块
串口WiFi 模块嘛!所有的设置及操作命令都要通过串口命令来执行,以PC串口设置来说明。
首先通过PC串口设置ESP8266 WiFi 模块
接线方式:
这里写图片描述
打开串口工具,设置好波特率(115200), 通过AT command来设置。
/****AT command list*****/
AT+RST //reset
AT+CIPMODE=1 //STA mode
AT+CIPMUX=0 //单连接模式
AT+CWMODE=1 //透传模式
AT+CWJAP=”lemon p9”,”xxxxxxxx” //connect to a WIFI AP with SSID & password
AT+CIPSTART=”TCP”,”api.lewei50.com”,80 //setup TPC link with leiwei service
AT+CIPSEND //进入透传开始发送数据
/*
收到此命令后先换行返回”>”
然后就进入了透传模式,每包数据以20ms间隔区分,每包最大2048字节。
当输入单独一包”+++”返回指令模式。
该指令必须在开启透传模式以及单连接模式下使用
*/
+++ //透传模式下发送三个+++退出透传,不要勾选新行(\r\n),
AT+SAVETRANSLINK=1,”api.lewei50.com”,80,”TCP” //开机自动进入透传 并且连接到乐联网
AT+CIPCLOSE //Close TCP or UDP
这里写图片描述

通过PC设置好模式及AP SSID/Password之后,再把WIFI 模块与单片机UART 端口相连。需要提供一个稳定的3.3V给ESP8266. 此时模块上电后会自动连接WIFI 并与乐联网建立TCP连接, ESP8266是TCP Client, www.lewei50.com是TCP Server。
**

/*********AT command list**********/
AT+RST                                                              //reset
AT+CIPMODE=1                                                        //STA mode
AT+CIPMUX=0                                                             //单连接模式
AT+CWMODE=1                                                             //透传模式
AT+CWJAP="lemon p9","xxxxxxxx"                  //connect to a WIFI AP with SSID & password
AT+CIPSTART="TCP","api.lewei50.com",80      //setup TPC link with leiwei service
AT+CIPSEND                                                              //进入透传开始发送数据
/*
收到此命令后先换行返回”>”
然后就进入了透传模式,每包数据以20ms间隔区分,每包最大2048字节。
当输入单独一包”+++”返回指令模式。
该指令必须在开启透传模式以及单连接模式下使用
*/
+++                                                                             //透传模式下发送三个+++退出透传,不要勾选新行(\r\n),
AT+SAVETRANSLINK=1,"api.lewei50.com",80,"TCP" //开机自动进入透传 并且连接到乐联网
AT+CIPCLOSE                                                                     //Close TCP or UDP

[Remark]

** 为了方便说明,AP SSID/Password直接由电脑串口写死在WIFI 模组中,当然也可以通过单片机串口来写入。

3.乐为网API在线调试

乐为物联提供的是接受post请求,具体请至乐为网申请账号,并在线测试API接口。
具体请至 https://www.lewei50.com 了解

这里写图片描述

其实这一步还比较简单,按照要求写入自己的UserKey,稍微需要注意的两点就是
网关标识 这个根据自己的情况,根据你创建的设备的时候的标识,正常系统默认生成 01、02、03……,这里你想测试哪个设备,就写哪个标识。
数据格式 这里的数据格式是一个括号,里面也是一个或者几个JSON的数据形式。这里写入我们要上传这个设备哪一个传感器的当前值。
所以从这里我们也可以看到,要把数据上传到乐联网
使用的是POST请求
请求中应包含 UserKey、Host地址、JSON数据
JSON数据可以单独发一个传感器,也可以一次发好几个传感器数据。
模拟调试成功的返回的响应应该是 successful true 如果是false就要找原因了。

4 然后就是单片机通过串口命令与TCP server通讯了。

/***post command to lewei cloud***/

POST /api/V1/gateway/Updatesensors/01 HTTP/1.1
userkey: f93d25ae3a1d45c58416ccd4f26048ea
Host: open.lewei50.com
Content-Length: 32
Connection: close

[{"Name":"particle","Value":11}]

//Remark:
[1] Content-Length: 32 = total length of jason command([{"Name":"particle","Value":11}])
[2] Please add a new empty line before json command

单片机代码


/***********WiFi Tx Buffer define***************/
char8 PM2_5[]="0";

char8 *WifitxBuffer1={"POST /api/V1/gateway/Updatesensors/01 HTTP/1.1\r\n\
userkey: f93d25ae3a1d45c58416ccd4f26048ea\r\n\
Host: open.lewei50.com\r\n\
Content-Length: 32\r\n\
Connection: close\r\n\
\r\n\
[{\"Name\":\"particle\",\"Value\":"};

char8 *WifitxBufferend={"}]\r\n"};

/************Send POST command to TCP Server*********************/
void SendExhaustParticleSensorData(void)
{
    WIFI_UART_UartPutString(WifitxBuffer1);
    WIFI_UART_UartPutString(PM2_5)
    WIFI_UART_UartPutString(WifitxBfferend);
}

//Remark: 发送频率不能过高,服务器最高允许10S接受一次数据。
5 测试结果。
这里写图片描述

2017-07-26 23:15:43 zp357252539 阅读数 2419

转自:http://tieba.baidu.com/p/4673033289

入手arduino和W5100已经有一段时间,朝着物联网的方向努力百度了好几天,试过Yeelink和乐联网均未成功,后来在一个百度贴吧中看到了这个帖子,抱着试一试的心态研究了一下,几经周折终于成功控制LED,在这里感谢http://tieba.baidu.com/p/4500765226这个帖子的楼主给了我重生的希望









下面进入正题






第一先在http://www.lewei50.com申请账号,估计这个大家都不用我教了吧
第二步在“我的物联”列表下的“我的设备”中新建设备如图,名字可以自己定义



第三
在“传感器与控制器”新建一个传感器如图,设备选择刚才新建的设备,标识就写led3




第四,点击“智能物联”,点击 控制命令管理 ,新建两个命令




其中标题和方法名框中的都可以自己定义




第五
添加执行单元
执行单元管理新建两个










第六 
自定义微信命令








第七


关键的一步来了,首先下载乐为的库文件,我整理了一下在这里http://pan.baidu.com/s/1nv92pvj


下载完成以后在

这个文件夹新建一个leweiclient的文件夹把下载的文件复制到里面
第八


打开arduino IDE
点 文件,示例



打开以后修改自己的API,把下面的代码下载以后就可以试试了,微信也可以控制,有什么不明白的地方再联系我了扣扣三六九吧腰吧四六吧











#include <SPI.h>
#include <Ethernet.h>
#include <LeweiTcpClient.h>
#include <EEPROM.h>




#define LW_USERKEY "你的API"
#define LW_GATEWAY "01"


#define LED_PIN 4//plug led in the d3,gnd->gnd// 我发现LED接在数字口3会断线,后来改到4口就好了,其他的端口还没试过




//byte mac[] = {0x74,0x69,0x69,0x2D,0x30,0x31};
//IPAddress ip(192,168,1, 15);
//IPAddress mydns(8,8,8,8);
//IPAddress gw(192,168,1,1);
//IPAddress subnet(255,255,255,0);

LeweiTcpClient *client;


void setup()
{
pinMode(LED_PIN, OUTPUT);
//digitalWrite(3,LOW);


Serial.begin(57600);
//you can use 3 ways to init your network
//1.simplest
client = new LeweiTcpClient(LW_USERKEY, LW_GATEWAY);
//2.full setting for your network
//client = new LeweiTcpClient(LW_USERKEY, LW_GATEWAY,mac,ip,mydns,gw,subnet);


//test1 is the function you write below to handle your program
//"testFunction" is the function name you set on website:http://www.lewei50.com/
//on "controll command manager" menu
//we test transfer 1-5 para from website(you defined on it) to your arduino
//enjoy it

// UserFunction uf1(functionIWrote,"functionNameDefinedOnWeb");
//client->addUserFunction(uf1);
UserFunction uf2 (ledOn,"ON");
client->addUserFunction(uf2);
UserFunction uf3 (ledOff,"OFF");
client->addUserFunction(uf3);

/*
enable easySetupMode will open the port 80 of this board,
you can setup your apikey and gateway number via http://your_arduino_ip/
the key and number will be burned into board's eeprom
after setting you need to restart your arduino.
after reboot,you can comment this line for fasten your board.
this library will will use apikey and gateway number in eeprom FIRST,if it exsit.
you can send empty value from the browser to wipe the data in eeprom.
*/
//client->easySetupMode(true);
;
}


void loop()
{
client->keepOnline();
// client->setRevCtrlMsg("true","on");
//digitalWrite(12,HIGH);
// client->setRevCtrlMsg("true","off");
//digitalWrite(12,LOW); 

}




//function functionIWrote use 1 parameter,on the website,it point to "p1"
void functionIWrote(char * p1)
{
client->setRevCtrlMsg("true","message to server");
// client->sendSensorValue("tcp1",pi);
Serial.println(p1);
}




//function without parameter
void ledOn()
{
client->setRevCtrlMsg("true","on");
digitalWrite(LED_PIN,HIGH);
}
void ledOff()
{
client->setRevCtrlMsg("true","off");
digitalWrite(LED_PIN,LOW);
}
没有更多推荐了,返回首页