我是靠谱客的博主 外向钢笔,最近开发中收集的这篇文章主要介绍ESP8266连接谷雨云透传平台,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在我之前上传的springboot项目中,需要配合硬件使用,这篇文章就是给硬件的传输模块ESP8266 wifi使用的
这篇代码是Arduino文件,配合Arduino软件使用,烧录完ESP8266之后,可以插在stm32或者arduino中都可以使用

谷雨云平台是NBIOT平台,为什么要把WIFI接入?

  • 在esp8266模块中,大家都知道可以定义ip和端口连接,进行数据的发送,我们可以很简单的使用我们自己服务器的IP和端口进行数据发送,但是当我们要使用反向控制功能的时候,我们会碰到一个问题,云服务器要将指令发给谁? 这个问题是我在做项目想到的,肯定可以解决,但是比较费时费力,而且绝对没有接入云平台稳定
  • 谷雨云平台有个功能 :分组透传,不仅可以一对一透传,还可以一对多,这就实现了硬件的温湿度发送给很多其他自己需要任何后台
  • 谷雨云平台是免费的,其他相同的物联网平台很多都要收费。。。。。(但是我极力不推荐大家白嫖谷雨云透传平台!!必须要合理收入才能维护和增加他们的服务器水平给我们提供更好的服务,大家可以去他们淘宝店买个NB模块正儿八经的接入

好了,话不多说,上代码


#include <ESP8266WiFi.h>
#define LED 2
const char* ssid     = "**";//待连接WIFI
const char* password = "**";//待连接WIFI密码
const char* serverIP  = "115.29.240.46";//谷雨固定IP,无需修改
int serverPort = 9000;//谷雨UDP固定端口号,无需修改
WiFiClient client;
bool bConnected = false;
char buff[512];
int nm = 0;
void setup() {
  delay(100);
  Serial.begin(9600);
  WiFi.mode(WIFI_STA);//设置模式为STA
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {//等待WiFi连接成功
    delay(500);
    Serial.print("!");
  }
  Serial.println("WiFi connected");  
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  digitalWrite(LED,HIGH);
}
void loop() {
   ClientToServer();
}
void ClientToServer()
{
  if (client.connected()== false)//如果从服务器断开或者连接失败,则重新连接
  {
    if (!client.connect(serverIP, serverPort))//如果连接失败
    {
      Serial.println("F");
      delay(5000);
      return;
    }
    client.write("ep=**&pw=**");//请填入谷雨云透传平台的注册包
    Serial.println("OK");
  }
  else if (client.available())//如果有数据到达
  {
    while (client.available())//接收数据
    {
      buff[nm++] = client.read();
      if (nm >= 100) break;
    }
    buff[nm] = 0x00;
    nm=0;
    Serial.print(buff);//打印数据到串口
    client.flush();//丢弃已写入客户端但尚未读取的字节
  }
   /*if (client.connected()==false ) {
    Serial.println("disconnecting.");
     bConnected = false;
  }*/
  //检查UART端口数据
  if(Serial.available()>0&&client.connected()){
    char sbuf[100];
    int i=0;
    while(Serial.available()){
      sbuf[i]=Serial.read();
      i++;
       if (i >= 98) break;
    }
    sbuf[i]= 0x00;
    //将UART端口数据推送到服务器,实现双向通信
    client.write(sbuf,i);
    i=0;
    delay(1000);
  }
}

至于esp8266模块如何烧录,大家自行百度吧。

最后

以上就是外向钢笔为你收集整理的ESP8266连接谷雨云透传平台的全部内容,希望文章能够帮你解决ESP8266连接谷雨云透传平台所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部