Как отправлять твиты с датчиком пламени и ESP8266?

Я хочу отправлять твиты с датчиком пламени и ESP8266. Датчик пламени у меня цифровой. Я думаю, что все хорошо, но он не отправляет.

Это мой код:

#define ag_ismi "SSID"
#define ag_sifresi "PASSWORD"
#define IP "184.106.153.149" // IP-адресthingspeak.com

int sensorPin = 8;
int smoke_level = HIGH;

void setup() {
  pinMode(sensorPin, INPUT);
  Serial.begin(115200);
  Serial.println("AT");
  delay(3000);
  if (Serial.find("OK")) {
    Serial.println("AT+CWMODE=1");
    delay(2000);
    String baglantiKomutu = String("AT+CWJAP=\"") + ag_ismi + "\",\"" + ag_sifresi + "\"";
    Serial.println(baglantiKomutu);
    delay(5000);
  }
}

void loop() {
  smoke_level = digitalRead(sensorPin); // Arduino считывает значение с датчика дыма
  Serial.println(smoke_level);// печатает только в целях отладки, чтобы увидеть, какие значения принимает датчик
  if (smoke_level == HIGH) {
    // если уровень дыма больше 500, сработает зуммер
    sicaklik_yolla();
  }
  delay(20000);
}
void sicaklik_yolla() {
  Serial.println(String("AT+CIPSTART=\"TCP\",\"") + IP + "\",80");
  delay(1500);
  String tweet = "POST /apps/thingtweet/1/statuses/update HTTP/1.1\n";
  tweet += "Host: api.thingspeak.com\n";
  tweet += "Connection: close\n";
  tweet += "Content-Type: application/x-www-form-urlencoded\n";
  tweet += "Content-Length:67\r\n\r\napi_key=";
  tweet += String("MY API KEY");
  tweet += String("&status=");
  tweet += String("MY TWEET TEXT");
  Serial.print("AT+CIPSEND=");
  delay(100);
  Serial.println(tweet.length());
  if (Serial.find(">")) {
    Serial.println(tweet);
    Serial.println("AT+CIPCLOSE=0");
    delay(100);
  } else {
    Serial.println("AT+CIPCLOSE=0");
  }
}

Эта схема устарела. Датчик подключен к контакту 8.

старое соединение

, 👍1


1 ответ


1

Я думаю, ваша скорость передачи данных и сетевое соединение с модулем Wi-Fi работают нормально. Должен сказать, что немного сложно получить данные, отправленные в ThingSpeak с помощью ESP8266. На самом деле я провел несколько экспериментов, чтобы отправить данные. Проблема на самом деле с задержкой. Добавление задержки в 5000 мс между отправкой длины твита и его содержания решает эту проблему. Вы можете использовать формат GET. Ознакомьтесь с этой инструкцией.

,