thingspeak에 초음파데이터 로깅하기

by 이민지 | 2018-04-10 22:50
esp8266 iot thingspeak 아두이노

첨부파일


#include <SoftwareSerial.h>
#include <stdlib.h>
#include <NewPing.h>
#include <Wire.h>



#define TRIGGER_PIN  12 
#define ECHO_PIN     11
#define MAX_DISTANCE 200
 
// 업로드 알림 LED 설정 (아두이노 우노 On Board LED)
int ledPin = 13;
 
// 자신의 thingspeak 채널의 Write API key 입력
String apiKey = "VQ283T7IYXDWI7A8";








NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
//LiquidCrystal_I2C lcd (0x3F,2,1,0,4,5,6,7,3,POSITIVE);
SoftwareSerial ser(2, 3); // RX/TX 설정, serial 객체생성
 
void setup() {
 
  //Serial.begin(115200);
  //lcd.begin(16,2);
 
  //알림 LED 아웃풋 설정
  pinMode(ledPin, OUTPUT);
  //시리얼통신속도 9600보드레이트 설정   
  Serial.begin(9600);
  //소프트웨어 시리얼 시작
  ser.begin(9600);
  //ESP8266 Reset
  ser.println("AT+RST");
}
 
void loop() {
  // blink LED on board
  digitalWrite(ledPin, HIGH);  
  delay(200);              
  digitalWrite(ledPin, LOW);
 
  // 초음파 값 읽음
  float v = sonar.ping_cm();
 
  // String 변환
  char buf[16];
  String strV = dtostrf(v, 4, 1, buf);






























 
  Serial.println(strV);
 
  // TCP 연결
  String cmd = "AT+CIPSTART=\"TCP\",\"";
  cmd += "184.106.153.149"; // api.thingspeak.com 접속 IP
  cmd += "\",80";           // api.thingspeak.com 접속 포트, 80
  ser.println(cmd);
  
  if(ser.find("Error")){
    Serial.println("AT+CIPSTART error");
    return;
  }
 
  // GET 방식으로 보내기 위한 String, Data 설정
  String getStr = "GET /update?api_key=";
  getStr += apiKey;
  getStr +="&field1=";
  getStr += String(strV);
  getStr += "\r\n\r\n";
 
  // Send Data
  cmd = "AT+CIPSEND=";
  cmd += String(getStr.length());
  ser.println(cmd);
 
  if(ser.find(">")){
    ser.print(getStr);
  }
  else{
    ser.println("AT+CIPCLOSE");
    // alert user
    Serial.println("AT+CIPCLOSE");
  }
   
  // Thingspeak 최소 업로드 간격 15초를 맞추기 위한 delay
  delay(16000); 
}





































댓글 0

MADE BY

HELP ME!

thingspeak에 초음파센서가 감지한 거리 값을 로깅하고 싶어요.. 시리얼 모니터에서는 데이터를 보냈다고 나오는데 thingspeak에는 데이터가 올라오지 않네요ㅠㅠ time도 서울로 설정했는데 아는 분 계실까요..ㅠㅠ

답하기
thingspeak에 초음파데이터 로깅하기현재글