question 发表于 2017-4-26 19:04:35

esp8266 arduino 之 与服务器通信

前一篇文章已经把wifi连接上了 下面我们连接下远程服务器哈哈

和服务器通信方式一般是tcp udp 和http的post get方式 还有现在流行的实时websocket哈哈
tcp 和udp需要自己写server代码 比较烦 我的阿里云是python的环境 就直接用http的方式吧

加入ESP8266HTTPClient.h的库支持

下面是ESP8266代码:

#include <ESP8266HTTPClient.h>

#include <ESP8266WiFi.h>

HTTPClient http;
char ssid[] = "Question";      //你家的路由器wifi名称
char paswd[] = "*******";       // 你家的路由器wifi密码
void setup() {
// put your setup code here, to run once:
   Serial.begin(115200);
   Serial.println();

   Serial.print("Connecting to ");
   Serial.println(ssid);
   WiFi.begin(ssid, paswd);                //开始连接wifi

   while (WiFi.status() != WL_CONNECTED)   //等待wifi连接成功
   {
      delay(500);
      Serial.print(".");
   }
   Serial.println("");

   Serial.println("WiFi connected");
   Serial.println("IP address: ");
   Serial.println(WiFi.localIP());   //打印连接上wifi后获取的ip地址
}

void loop() {
// put your main code here, to run repeatedly:
char url="http://**********:81/test?msg=\"hello\"";   //把*号改成你的服务器地址
http.begin(url);
int httpCode = http.GET();
if(httpCode >0)
{
   Serial.printf(" GET...code:%d\n",httpCode);
   String serdata = http.getString();                                        //获取服务器返回的数据
   Serial.println(serdata);                                                         

}
else
{
    Serial.printf(" GET...failed,error:%s\n",http.errorToString(httpCode).c_str());
}
http.end();
delay(10000);
}

运行效果


返回200 表示成功请求成功,后面是服务器返回的json数据 ESP8266通过返回的数据就能判断是否有命令过来了





服务器的代码:

环境 ubuntu django python

文件 url.py
<font face="" "="">   url(r'^test', collect_data.views.test),</font>

<font face="" "="">文件 collect_data/views.py</font>
#coding=utf-8
from django.shortcuts import render

# Create your views here.
from collect_data.models import Air_data

from django.shortcuts import render,render_to_response
from django.http import HttpResponseRedirect,HttpResponse

import datetime
import json,os,time,random,string,types
def test(request):
    print request.get_full_path()
    return HttpResponse(json.dumps({'status':'ok'},sort_keys=True), content_type="application/json")

hnyzcj 发表于 2017-4-27 13:18:32

好教程值得一看

hnyzcj 发表于 2017-4-27 13:18:39

以后慢慢琢磨

pATAq 发表于 2017-4-27 19:47:30

mark一下

dsweiliang 发表于 2017-4-27 23:37:09

mark一下,学习学习了

DeepMind 发表于 2017-6-29 17:23:29

我想知道,能不能通过家里的无线路由器,连接到服务器上去?

question 发表于 2017-7-5 23:24:28

DeepMind 发表于 2017-6-29 17:23
我想知道,能不能通过家里的无线路由器,连接到服务器上去?

这个代码就是通过wifi和阿里云进行通信的例子

ishmaelQ 发表于 2017-8-5 16:32:25

有没有用php通信的例子,

question 发表于 2017-8-26 00:33:23

ishmaelQ 发表于 2017-8-5 16:32
有没有用php通信的例子,

php的服务器我不会写 arduino那边是标准的get请求 你用PHP也能用的

maomaopcy 发表于 2018-3-16 17:18:52

请问怎么下载要用到的库
页: [1]
查看完整版本: esp8266 arduino 之 与服务器通信