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

Проблема с поддержкой AT IP команд

Доброго всем дня суток! Есть такой проект: http://www.instructables.com/id/Sen...t-to-Thingspeak-using-an-ESP8266-WiFi-Module/
Если вкратце, данные с датчиков температуры и давления пересылаются на сервер ThingsSpeak. Проблема в том, что автор не указал на какой прошивке он строил свою систему. Перепробовал всяких разных прошивок, и так и не получилось переслать данные. В проекте нужны команды для работы с IP протоколом, и получается так, что в каждой прошивке есть свои нюансы и на 100% совместимости нет.
UPD: закачал прошивку с сайта, кажется 2.2. Прогнал вручную все АТ команды, всё работает. Потом притащил осциллограф и решил заглянуть на уровни ТХ RX. В esp8266 идёт приличный уровень, а вот наоборот 1/4 примерно, т.е. ТХ от модуля слаб, и он не отвечает на команды. Довольно странно, ведь при прошивке всё ок, модуль опрашивается нормально.
 
Последнее редактирование:
Дальнейшая пляска с бубнами показала, ардуино глухой после загрузки скетча проекта. Может ли это быть как-то связанно с работой библиотеки SoftwareSerial? Гружу ардуино с зажатой землёй, сажуть на UART ноги esp8266 и всё летает в терминале. Грузанул скетч-и болт. Как не менял адреса пинов, так и не заработало ничего.
 

tretyakov_sa

Moderator
Команда форума
Дальнейшая пляска с бубнами показала, ардуино глухой после загрузки скетча проекта. Может ли это быть как-то связанно с работой библиотеки SoftwareSerial? Гружу ардуино с зажатой землёй, сажуть на UART ноги esp8266 и всё летает в терминале. Грузанул скетч-и болт. Как не менял адреса пинов, так и не заработало ничего.
Задача какая изначально?
 
Задача очень простая: ардуино, esp8266 и три датчика, по wifi данные уходят в облако.
Описание проекта тут http://www.instructables.com/id/Sen...t-to-Thingspeak-using-an-ESP8266-WiFi-Module/.
Кусочек кода:
[HASHTAG]#include[/HASHTAG] <SoftwareSerial.h>
int sensor_temp = A0;
int value_temp;
int sensor_light = A1;
int value_light;
int sensor_humid = A2;
int value_humid;


[HASHTAG]#define[/HASHTAG] DEBUG FALSE //comment out to remove debug msgs

//*-- Hardware Serial
[HASHTAG]#define[/HASHTAG] _baudrate 9600

//*-- Software Serial
//
[HASHTAG]#define[/HASHTAG] _rxpin 2
[HASHTAG]#define[/HASHTAG] _txpin 3
SoftwareSerial debug( _rxpin, _txpin ); // RX, TX

//*-- IoT Information
[HASHTAG]#define[/HASHTAG] SSID "[YOURSSID]"
[HASHTAG]#define[/HASHTAG] PASS "[YOURPASSWORD]"
[HASHTAG]#define[/HASHTAG] IP "184.106.153.149" // ThingSpeak IP Address: 184.106.153.149

// GET /update?key=[THINGSPEAK_KEY]&field1=[data 1]&field2=[data 2]...;
String GET = "GET /update?key=[ThingSpeak_(Write)API_KEY]";

void setup() {
Serial.begin( _baudrate );
debug.begin( _baudrate );

sendDebug("AT");
delay(5000);
if(Serial.find("OK"))
{
debug.println("RECEIVED: OK\nData ready to sent!");
connectWiFi();
}

Спотыкается на отправке АТ в esp8266, т.е. не получает ответа, и на этом всё циклится.
 

tretyakov_sa

Moderator
Команда форума
Задача очень простая: ардуино, esp8266 и три датчика, по wifi данные уходят в облако.
Описание проекта тут http://www.instructables.com/id/Sen...t-to-Thingspeak-using-an-ESP8266-WiFi-Module/.
Кусочек кода:
[HASHTAG]#include[/HASHTAG] <SoftwareSerial.h>
int sensor_temp = A0;
int value_temp;
int sensor_light = A1;
int value_light;
int sensor_humid = A2;
int value_humid;


[HASHTAG]#define[/HASHTAG] DEBUG FALSE //comment out to remove debug msgs

//*-- Hardware Serial
[HASHTAG]#define[/HASHTAG] _baudrate 9600

//*-- Software Serial
//
[HASHTAG]#define[/HASHTAG] _rxpin 2
[HASHTAG]#define[/HASHTAG] _txpin 3
SoftwareSerial debug( _rxpin, _txpin ); // RX, TX

//*-- IoT Information
[HASHTAG]#define[/HASHTAG] SSID "[YOURSSID]"
[HASHTAG]#define[/HASHTAG] PASS "[YOURPASSWORD]"
[HASHTAG]#define[/HASHTAG] IP "184.106.153.149" // ThingSpeak IP Address: 184.106.153.149

// GET /update?key=[THINGSPEAK_KEY]&field1=[data 1]&field2=[data 2]...;
String GET = "GET /update?key=[ThingSpeak_(Write)API_KEY]";

void setup() {
Serial.begin( _baudrate );
debug.begin( _baudrate );

sendDebug("AT");
delay(5000);
if(Serial.find("OK"))
{
debug.println("RECEIVED: OK\nData ready to sent!");
connectWiFi();
}

Спотыкается на отправке АТ в esp8266, т.е. не получает ответа, и на этом всё циклится.
А без ARDUINO Это сделать нельзя? Три датчика сразу на ноги ESP. Если используешь Software Serial на ногах 2 и 3, поставь резисторы Нога Arduino -> резистор 1 кОм -> нога ESP8266.
Да и еще посмотрел на схему непонятно зачем там на 5 ноге 1 Ком на землю? У тебя модуль ESP какой?
 
Последнее редактирование:
А без ARDUINO Это сделать нельзя? Три датчика сразу на ноги ESP. Если используешь Software Serial на ногах 2 и 3, поставь резисторы Нога Arduino -> резистор 1 кОм -> нога ESP8266.
Да и еще посмотрел на схему непонятно зачем там на 5 ноге 1 Ком на землю? У тебя модуль ESP какой?
Делитель на резисторах по входу на esp8266 ставил, с Ардуины выход 5 Вольт TTL, в esp8266 3,3 вольта. Но если смотреть даташиты, это не настолько важно. Устойчивая единица и ноль перекрывает уровни в обоих случаях в пределах допуска. У меня версия ESP1, самая простая. В загажнике лежит ESP12, на ней наверное можно будет сделать так, как вы предлагаете.
З.Ы. имхо что-то с библиотекой в коде. Под командами АТ из терминала всё прекрасно работает. Вечером попробую сесть осциллом на ноги Ардуины и померять, есть ли разница в размахе сигнала.
 

tretyakov_sa

Moderator
Команда форума
З.Ы. имхо что-то с библиотекой в коде. Под командами АТ из терминала всё прекрасно работает. Вечером попробую сесть осциллом на ноги Ардуины и померять, есть ли разница в размахе сигнала.
Когда подаешь AT команды с терминала, я так понимаю через ARDUINO с зажатой землей все работает. На какой скорости? Потому как в скетче у тебя #define _baudrate 9600, а обычно для AT команд порт ESP настроен 115200.
 
Когда подаешь AT команды с терминала, я так понимаю через ARDUINO с зажатой землей все работает. На какой скорости? Потому как в скетче у тебя #define _baudrate 9600, а обычно для AT команд порт ESP настроен 115200.
Именно, это больше всего удивительно, что на 115200 Ардуино работает. А на более низкой скорости не хочет. Была где-то прошива, которая эмулирует UART на других ногах, попробую грузануть и из под неё попробовать АТ команды
 
Грузанул код в Ардуину:
[HASHTAG]#include[/HASHTAG] <CyberLib.h>

void setup()
{
D0_In; //Ard RX
D10_Out; //BT RX
D1_Out; //Ard TX
D9_In; //BT TX
}

void loop()
{ Start
if(D0_Read==1)D10_High; else D10_Low;
if(D9_Read==1)D1_High; else D1_Low;
End;
}

Сел на ноги согласно коду. Ардуино выдало такие сообщения:

ets`Jan 8 2013,rst cause:2( boot mode:(3,6)

load 0x40100000, len 1396, room 16
tail 4
chksum 0x89C!л+‘Ѓ0x3ffe8000, len 776, room 4
tail 4
chksum 0xe8
load 0x3ffe8308, len 540, room 4
tail 8
chksum 0xc0
csum 0xc0

2nd boot version : 1.4(b1)
SPI Speed : 40MHz
RPI Mode : QIO
SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000

„ГХЃMEM CHECK FAIL!!!
d{d‡ѓsр
Ai-Thinker Technology Co. Ltd.

UPD1 Дал команду на снижение скорости, Esp уже нормально отвечает.
 
Последнее редактирование:
Сверху Снизу