• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь ESP8266+ Arduino

Scriper86

New member
Приветствую всех! Пытаюсь создать осуществить идею: подключить несколько датчиков уровня воды к Arduino uno и показания этих датчиков передавать через esp8266 (07) на Thingspeak (выбрал его потому что есть удобный виджет для Android). Нашел подходящий скетч , залил его в uno. Начинаю смотреть как происходит подключение Wifi в последовательном поту, AT команды идут, а вот ответа от Esp нет. Всю голову уже сломал, что не так? Может в esp какой скетч еще надо заливать чтобы он отвечал UNO? Платы подключены так:
UTXD --> RX на Arduino
CH_PD <--> VCC
RST
VCC --> VCC на Arduino
----------------------------------
GND --> GND на Arduino
GPIO2
GPIO0
URXD --> TX на Arduino
Знаю что можно обойтись без uno, но это не мой вариант. Код прилагаю.
Код:
#include <SoftwareSerial.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 8
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
#define SSID "XPERIA"
#define PASS "12345678"
#define IP "184.106.153.149" // thingspeak.com
String GET = "GET /update?key=4SKSH5*******TB&field1=";
SoftwareSerial monitor(0, 1); // RX, TX
void setup()
{
monitor.begin(115200);
Serial.begin(115200);
sensors.begin();
sendDebug("AT");
delay(5000);
if(Serial.find("OK")){
monitor.println("RECEIVED: OK");
connectWiFi();
}
}
void loop(){
sensors.requestTemperatures();
float tempC = sensors.getTempCByIndex(0);
tempC = DallasTemperature::toFahrenheit(tempC);
char buffer[10];
String tempF = dtostrf(tempC, 4, 1, buffer);
updateTemp(tempF);
delay(60000);
}
void updateTemp(String tenmpF){
String cmd = "AT+CIPSTART=\"TCP\",\"";
cmd += IP;
cmd += "\",80";
sendDebug(cmd);
delay(2000);
if(Serial.find("Error")){
monitor.print("RECEIVED: Error");
return;
}
cmd = GET;
cmd += tenmpF;
cmd += "\r\n";
Serial.print("AT+CIPSEND=");
Serial.println(cmd.length());
if(Serial.find(">")){
monitor.print(">");
monitor.print(cmd);
Serial.print(cmd);
}else{
sendDebug("AT+CIPCLOSE");
}
if(Serial.find("OK")){
monitor.println("RECEIVED: OK");
}else{
monitor.println("RECEIVED: Error");
}
}
void sendDebug(String cmd){
monitor.print("SEND: ");
monitor.println(cmd);
Serial.println(cmd);
}
boolean connectWiFi(){
Serial.println("AT+CWMODE=1");
delay(5000);
String cmd="AT+CWJAP=\"";
cmd+=SSID;
cmd+="\",\"";
cmd+=PASS;
cmd+="\"";
sendDebug(cmd);
delay(5000);
if(Serial.find("OK")){
monitor.println("RECEIVED: OK");
return true;
}else{
monitor.println("RECEIVED: Error");
return false;
}
}
 
Сверху Снизу