ESP8266+Nano+DS18b20,一个物联网监测温度的节点设计

首先需要准备一个arduino系列的单片机nano,esp8266WiFI模块,还有一个温度传感器ds18b20.
本设计的arduinoIDE代码如下

#include <Wire.h>
#include <SoftwareSerial.h>
#include <OneWire.h>     //da18b20
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 7
#define DBG_UART   Serial       //调试打印串口


// 初始连接在单总线上的单总线设备

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);


void setup()
{
  Serial.begin(115200);         //调试
  Serial.setTimeout(3000);     //设置find超时时间
  delay(2000);
  Serial.println("AT+CWMODE=1");                       //工作模式
  delay(200);
  Serial.println("AT+CIPMODE=0");                      //非透传模式
  delay(200);
  Serial.println("AT+CWJAP=\"WIFI名称\",\"WIFI密码\"");     //wifi和密码
  delay(10000);
  if (Serial.find( "OK" ) ) {
      Serial.println("ok");
    }
  Serial.println("AT+CIPMUX=0");
  delay(100);
  Serial.println("AT+CIPSTART=\"UDP\",\"UDP服务器的IP地址\",本地端口号,目的端口号");
  delay(100);
}

void loop()
{ 
String id,i;
id=1;
sensors.requestTemperatures(); // 发送命令获取温度
  i=sensors.getTempCByIndex(0);
  
  i=id+","+i[0]+i[1];
  sendData(i);
  delay(4000);         //延时
}
void sendData(String thisData){
  String cmd;
  cmd=thisData;
  delay(100);
  Serial.print("AT+CIPSEND=");
  Serial.println(cmd.length());
   if (Serial.find( ">" ) ) {
      Serial.println(cmd);
    }
      else {
 Serial.println("AT+CWJAP=\"WIFI名称\",\"WIFI密码\"");     //wifi和密码
    delay(10000);
  if (Serial.find( "OK" ) ) {
      Serial.println("ok");
    }
  Serial.println("AT+CIPSTART=\"UDP\",\"UDP服务器的IP地址\",本地端口号,目的端口号");
    Serial.print( "AT+CIPSEND=" );
    Serial.println( cmd.length());
    if (Serial.find( ">" ) ) {
      Serial.println(cmd);
    }
  }
  delay(100);
}

新手可以直接用了并修改一些代码看看运行效果,WIFI模块掌握最基本的几个AT指令就可以在很多场景使用。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值