首先需要准备一个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指令就可以在很多场景使用。