查看: 246|回复: 13

[教程] 328芯片W5100网口上传DS18B20温度到腾讯云服务器【 Arduino 部...

[复制链接]

该用户从未签到

发表于 2021-5-4 12:26 | 显示全部楼层 |阅读模式
这几年一直想写一个详细案例
因为工作原因静不下心来
最近也因为工作原因总算可以开始写
第一次写,不知写什么,直接上代码
/*
IeIt
18319758276@139.com
2021-5-1
*/
#include <SPI.h>
#include <Ethernet.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 4                               //DS18B20温度传感器328引脚
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
EthernetClient client;
char server[] = "49.232.161.46";                     //腾讯云申请的免费一个月轻量应用服务器
int lastTime = 0;                                    //运行时间
int UpdateId = 1000;                                 // 更新频率1秒
void setup() {
  Serial.begin(9600);
  Serial.println("Initialize Ethernet with DHCP:");
  if (Ethernet.begin(mac) > 0) {
    Serial.print("  DHCP assigned IP ");             //第一次运行检测IP
    Serial.println(Ethernet.localIP());
  }
  delay(1000);
}
void loop() {
  String str = "";
  String body="";
  while (client.available()) {
    char c = client.read();
    str += c;
  }
  if (str != "") {
    int pos = str.indexOf("IeItTop:");
    if (pos > -1) {
      int len = str.length();                        
      body = str.substring(pos, len);                //过滤服务器返回的数据
      Serial.println(body);                          //串口打印服务器返回的数据
    }
  }
  if (millis() - lastTime > UpdateId) {
    httpRequest();                                   //按频率时间上传数据
  }
}
void httpRequest() {
  sensors.requestTemperatures();
  float tmp1 = sensors.getTempCByIndex(0);           //读取实时温度
  client.stop();
  if (client.connect(server, 80)) {
    client.println("GET /api.asp?it="+String(tmp1)+" HTTP/1.1");//温度实时上传到服务器
    client.println("Host: 49.232.161.46");
    client.println("Connection: close");
    client.println();
    lastTime = millis();                             //更新时间
  } else {
    Serial.println("connection failed");             //服务器出错
  }
}


该用户从未签到

 楼主| 发表于 2021-5-4 12:30 | 显示全部楼层
服务器是腾讯云免费试用一个月的轻量应用服务器

该用户从未签到

 楼主| 发表于 2021-5-4 12:31 | 显示全部楼层
328电路板是很久之前一个项目用到的定制板
微信图片_20210504123105.png

该用户从未签到

 楼主| 发表于 2021-5-4 12:33 | 显示全部楼层
服务器代码是用ASP写的
<%
It  = Request.QueryString("It")
application("test")=It

Response.Write "IeItTop:"
Response.Write application("test")
Response.Write "  "
Response.Write Now()

%>

该用户从未签到

 楼主| 发表于 2021-5-4 12:40 | 显示全部楼层
服务器加一个无刷新页面显示实时动态数据
微信图片_20210504124003.png

该用户从未签到

 楼主| 发表于 2021-5-4 12:41 | 显示全部楼层
<%
        dim i
        For Each i in Application.Contents
          Response.Write(i & "<br />")
        Next

        dim j
        j=Application.Contents.Count
        For i=1 to j
          Response.Write(Application.Contents(i) & "<br />")
        Next

        For Each i in Application.StaticObjects
          Response.Write(i & "<br />")
        Next
        Response.Write Now()
%>

该用户从未签到

 楼主| 发表于 2021-5-4 12:42 | 显示全部楼层
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无刷新测试</title>

<script language="JavaScript">

function GetResult() //利用XMLHTTP读取服务器端内容
{
var oBao = new ActiveXObject("Microsoft.XMLHTTP");
oBao.open("POST","test.asp",false);
oBao.send();
var strResult = unescape(oBao.responseText);
td.innerHTML = strResult;
}


function MyShow() //每五秒从服务器读取一次数据
{
timer = window.setInterval("GetResult()",500);
}
</script></head>
<body onLoad="MyShow()"><p id=td></p>
</body>
</html>

该用户从未签到

 楼主| 发表于 2021-5-4 12:43 | 显示全部楼层
无刷新页面对浏览器有要求

该用户从未签到

 楼主| 发表于 2021-5-4 12:44 | 显示全部楼层
http://49.232.161.46/       无刷新页面
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

arduino程序设计基础 blinker物联网解决方案

热门推荐

关于红外的求助
关于红外的求助
为什么红外发射出的跟我设定的不一样,如图,我两个板子一个发射,一个接收,我想要发
【Arduino】168种传感器模块系列实验(104)---MAX30102手腕心率
【Arduino】168种传感器模
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
[Arduino物联网开发实战5]云端历史数据存储与查看
[Arduino物联网开发实战5]
blinker提供了历史数据存储与图表查看数据的功能。 设备端开发 在blinker的设计下,设
程序卡着不动,最后打印Freeheap 25427
程序卡着不动,最后打印Fr
各位有见过这个错误吗,程序跑到这里卡着不动
通过定时器读取串口数据出错
通过定时器读取串口数据出
各位大佬好,本人通过树莓派和Arduino通信,一边接收Arduino传感器数据,一边给Arduin
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表