네트워크화된 온도 센서 구현(Arduino)
3366 단어 단편기
사용 부품: ESP8266, LM35, LCD1602, IR LED, 적외선 수신기
문제 발생:
1. ESP8266은 네트워크 연결이 느립니다.
2.arduino가 115200보트율에서 직렬 통신 부호화 이상이 심각하다(해결됨).
3.LM35 시뮬레이션 신호는 간섭을 받기 쉽다.
주의해야 할 문제:
1.LM35에 대한 입력 검사를 실시하면 용착률이 크게 개선된다.
2.ESP8266 연결 네트워크는 비교적 큰 delay()를 제시하여 충분한 시간 반응을 주어야 한다.
3.Arduino의 C++ 라이브러리가 완전하지 않으니 스스로 해결하십시오.
4.본인 코드가 봉인되지 않아서 읽기가 어려울 수 있습니다
#include
#include "SoftwareSerial.h"
#include "stdlib.h"
#include
int reading;
String val1;
String cmd;
int ReadTemp;
char OutTemp[10];
int count = 0;
int foundon;
int foundoff;
const String host = "http://wechatmaster.cn";
const String url = "/temp";
SoftwareSerial mySerial(12,13);//Set Soft Serial. 12: RX 13: TX
IRrecv irrecv(8);
decode_results results;
IRsend irsend;
LiquidCrystal lcd(11, 10, 7, 6, 5, 4);
void ReadSerialInfor()
{
val1 = "";
while(mySerial.available())
{
val1+=char(mySerial.read());
delay(5);
}
Serial.println(val1);
}
int SendTemperature(int temp)
{
if (temp>=0&&temp<10)
{
mySerial.println("AT+CIPSEND=5");
delay(100);
mySerial.print("LM35");
mySerial.println(itoa(temp,OutTemp,10));
delay(100);
Serial.println("sent");
return 0;
}
else if ((temp>=10&&temp<100)||(temp<0&&temp>-10))
{
mySerial.println("AT+CIPSEND=6");
delay(100);
mySerial.print("LM35");
mySerial.println(itoa(temp,OutTemp,10));
delay(100);
Serial.println("sent");
return 0;
}
else if (temp>=100||temp<=-10)
{
mySerial.println("AT+CIPSEND=7");
delay(100);
mySerial.print("LM35");
mySerial.println(itoa(temp,OutTemp,10));
delay(100);
Serial.println("sent");
return 0;
}
}
void LcdPrint(int Temp)
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Temperature:");
lcd.print(itoa(Temp,OutTemp,10));
lcd.setCursor(0, 1);
lcd.print("Condition:");
if((foundon == 1)&&(foundoff == 0)) lcd.print("ON");
else if((foundoff == 1)&&(foundon == 0)) lcd.print("OFF");
else lcd.print("NOCMD");
}
void GetCmd()
{
cmd = "";
while(mySerial.available())
{
cmd+= char(mySerial.read());
delay(10);
}
Serial.println(cmd);
}
int FindONString(String Str)
{
int i;
for(i=0;i
* 서버 측과 사용자 측은 다른 학생이 책임지고 코드를 묻지 마십시오.
* TCP 전송을 http 전송으로 변경할 여력이 있으면 ESP8266은 http 프로토콜을 시뮬레이션할 수 있습니다.
* 개인 정보 보호 문제 때문에 (라우터 비밀번호는 내 이름...)WiFiSetup() 함수가 제공되지 않았습니다.
환영 교류 관련 경험
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 출력 포인터 변수 주소(16진수)텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.