И по нему у меня вопрос. Кто может объяснить происходящее в строке №33 "<p>Uptime: %02d:%02d:%02d</p>\"
Что такое "%02d" ? Какие ещё варианты могут быть? И что такое в строке №38?
Я пробовал переделать код под себя, всунув DTH
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
//******************************
#include <dht.h>
dht DHT;
#define DHT22_PIN 2
//******************************
const char *ssid = "my";
const char *password = "1234";
MDNSResponder mdns;
ESP8266WebServer server ( 80 );
const int led = 13;
void handleRoot() {
digitalWrite ( led, 1 );
char temp[400];
int chk = DHT.read22(DHT22_PIN);
int sec = millis() / 1000;
int min = sec / 60;
int h = (DHT.humidity);
int t = (DHT.temperature);
snprintf ( temp, 400,
"<html>\
<head>\
</>\
<title>Влажность</title>\
<style>\
body { background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }\
</style>\
</head>\
<body>\
<h1>Hello from ESP8266!</h1>\
<p>Uptime: %d | %d </p>\
</>\
</body>\
</html>",
h, t
);
server.send ( 200, "text/html", temp );
//digitalWrite ( led, 0 );
}
В принципе данные отображаются, но куда-то пропадают десятые, и остаются только целые. Как поправить? Как вообще вывести данные?
Если не делать так int h = (DHT.humidity); а сразу писать DHT.humidity, то вылазят странные многозначные значения. Если писать так (DHT.temperature, 1); то выводится только единица... Как быть?
Работал с одним ESP8266 посылал запросы с командой AT+CIPSEND=str.length()+1 без +1 выдаёт busy ... , с +1 работает. Подключил другой ESP8266 (прошивки разные) и блин надо уже передавать AT+CIPSEND=str.length()+2 . Не знаете почему ? и что на это влияет ? :)
Работал с одним ESP8266 посылал запросы с командой AT+CIPSEND=str.length()+1 без +1 выдаёт busy ... , с +1 работает. Подключил другой ESP8266 (прошивки разные) и блин надо уже передавать AT+CIPSEND=str.length()+2 . Не знаете почему ? и что на это влияет ? :)
У разных "AT"-прошивок немножко разный синтаксис. Почему меняется синтаксис? Потому что это-ж надо было кому-то сесть, и сначала все продумать... Китайцы (да и нынешние европейские пионеры) - так не умеют. Вплоть до того, что у модемов AT команды были регистро-независимые, а у esp8266 "at" можно писать как угодно, а вот остальное - как в мануале... Такое ощущение, что изначальный код где-то сперли, но элементарно доработать не смогли.
Andrey_Y_Ostan спасибо за ответ. Прошивки я залил одинаковые последние и сейчас обоим есп надо length()+2. .Бесит, нельзя использовать готовые библиотеки, без их правки :(. Скажите у кого какая прошивка и работает без +2 :)
У разных "AT"-прошивок немножко разный синтаксис. Почему меняется синтаксис? Потому что это-ж надо было кому-то сесть, и сначала все продумать... Китайцы (да и нынешние европейские пионеры) - так не умеют. Вплоть до того, что у модемов AT команды были регистро-независимые, а у esp8266 "at" можно писать как угодно, а вот остальное - как в мануале... Такое ощущение, что изначальный код где-то сперли, но элементарно доработать не смогли.
В моём экземпляре eps8266 всё только в верхнем регистре. Вобщем-то без разницы, но расхождение с канонической документацией настораживает. Мысль скребётся -- чего они там ещё не доложили.
В моём экземпляре eps8266 всё только в верхнем регистре. Вобщем-то без разницы, но расхождение с канонической документацией настораживает. Мысль скребётся -- чего они там ещё не доложили.
Не доложили чего? 0_о
Никто Вам не запрещает самостоятельно залить любую из существующих готовых АТ-прошивок. Или написать свою.
Я извиняюсь, если повторю вопрос. Но быстрый просмотр 14 страниц темы не дал на него ответа.
Тестирую esp8266-01 в режиме клиента при подключении к серверу. Коннект устанавливается и запросы посылаются. Но вот не приходит ответ с сервера. Через некоторое время получаю CLOSED.
Точнее, один раз пришел нормальный ответ от сервера в формате html. Но последующие попытки получить ответ не получились.
Подскажите, где можно почитать про организацию обмена данными с esp и сервером?
Пытаюсь через esp8266 подключиться к серверу и получить ответ. Запросы посылаю через терминал монитора IDE с помощью АТ-команд. Обмен выглядит примерно так:
AT+CIPSTART="TCP","domen.ru",80
CONNECT
OK
AT+CIPSEND=22
OK
> GET / HTTP/1.0\r\n\r\n (это посылаю через монитор IDE)
busy s...
Recv 22 bytes
SEND OK
+IPD,166:<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx</center>
</body>
</html>
CLOSED
Вроде бы брал рабочий пример, который находил в разных источниках
Пытаюсь через esp8266 подключиться к серверу и получить ответ. Запросы посылаю через терминал монитора IDE с помощью АТ-команд. Обмен выглядит примерно так:
AT+CIPSTART="TCP","domen.ru",80
CONNECT
OK
AT+CIPSEND=22
OK
> GET / HTTP/1.0\r\n\r\n (это посылаю через монитор IDE)
busy s...
Recv 22 bytes
SEND OK
+IPD,166:<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx</center>
</body>
</html>
CLOSED
Вроде бы брал рабочий пример, который находил в разных источниках
Подскажите, плиз
Проблему удалось решить. Оказалось, что не надо в конце строки прописывать символы \r\n, но в команде AT+CIPSEND надо предусмотреть 2 символа добавить. Т.е. если длина строки 20, то надо писать в команде 22. Перевод строки подставлется самой командой АТ.
Сеичас вопсче какие то непонятки неговоря что надо добовалять +15 баитов 53 строка strlen(hello)+15.
Даже интересно стало :) . этот пример из примеров либы у меня нечего не возвворсчает если я что нибудь меняю в строке 62 Serial.print("]\r\n"); ну например убираем символ ] всё нет ответа, хотя по логам на сервере видно что запрос проходит. Вопсчем совсем не понимаю причём эта строка и ответ, помогите :)
На сервере самый простои скрипт, возврасчает параметр а <?php echo $_GET["a"]; ?>
Сервер принципе тоже не причём на несколких испробовал.
Добрый день форумчане! Недавно приобрёл сие чудо в сборе за 10$, нашел инструкцию, программу для тестирования, но вот никак не могу понять как создать сам Web сервер в интернете. Я так понимаю в настройках я вбиваю свой вайфай с паролем и указываю куда цепляться, вот только куда и как создать??? сильно стого не судите, с web сервером да еще и на ардуино впервые делаю!
Купил ESP2866 на 12 модуле, подсоединил к нему датчик температуры, отправляю данные на thingspeak.com, теперь при работе и настройке оборудования не надо бегать и смотреть температуру, сидишь спокойно и смотришь, что там происходит, сейчас хочу прикрутить ещё датчик напряжения и заменит 18b20 на совмещённый датчик влажности и температуры DTH 11.
Ребята, подскажите пожалуйста почему здесь некоторые схемы идут с ардуино, при том что сама ESP8266 как я понимаю вполне может самостоятельно принимать и отправлять данные по wifi будучи прикрученой к батарейке и паре датчиков?
Вряд ли. Вопрос "как создать сам Web сервер в интернете" достаточно общий и простого ответа не имеет. Вам бы поискать что-то типа https://www.google.com.ua/?gws_rd=ssl#q=esp8266+web+server , да почитать побольше из разных источников, глядишь, и ответ найдётся.
В том то и дело что в интернете полно примеров использования ESP8266 без arduino uno и второй момент в примерах прошивают модуль с логином и поролем сети, а у модуля ESP-13 логин и пороль забивается на 192.168.4.1 https://fineshang.gitbooks.io/esp8266-based-serial-wifi-shield-for-ardui...
Если нужно перепрошить модуль то как это зделать через arduino uno!?
В интернете ни одного примера нет про ESP-13 в таком исполнении....
Какая разница esp-13 оно или esp-хзчто, главное что оно ESP8266 и в виде чего китайцы его спаяли не важно. Примеров связи ESP8266 с ардуино масса. Главное подобрать хорошую прошивку для ESP8266.
В том то и дело что в интернете полно примеров использования ESP8266 без arduino uno и второй момент в примерах прошивают модуль с логином и поролем сети, а у модуля ESP-13 логин и пороль забивается на 192.168.4.1 https://fineshang.gitbooks.io/esp8266-based-serial-wifi-shield-for-ardui... Если нужно перепрошить модуль то как это зделать через arduino uno!? В интернете ни одного примера нет про ESP-13 в таком исполнении....
Я на видео снимал и выкладывал пример работы с ESP-12, прошивка через Arduino Nano. Все тоже самое можно сделать с ESP-13 и Arduino UNO.
Наткнулся в интернете на интересную тему http://esp8266.ru/iot-manager-for-diy/#more-1108
Всё толково расписано, запустилось с первого раза. (Впринципи ответ на мой не корректный вопрос "как создать сервер в интернете")
Действительно на кой они Arduino UNO присобачили к ESP-13 до сих пор не понимаю, использую как питание для модуля.
Модуль esp8266 должен быть предварительно прошит прошивкой 1.0.0 SDK 0.22 и сконфигурирован (скорость порта, точка доступа, автоматическое подключение) через любую терминальную программу и переходник USB-UART на макетке с помощью АТ-команд. Читаем описание АТ-команд на esp8266.ru
Пользуйтесь!
Добрый день!
Долго уже бьюсь над вашим скетчем, но синхранизацию сделать так и не получается. Правда прошивка более новая, может это быть причиной?
На запрос NTP у меня возвращаются всегда одни и те же данные в out
4294967295
4294967295
Подскажите хоть в какую сторону рыть? ))
Скетч
/*
Настенные часы на семисегментных индикаторах GNS23011
Модуль управления - Arduino Pro Mini 3V 8MHz
Часы - DS3231 в виде готового модуля с резервным аккумулятором
Модуль ESP8266 для получения времени с NTP через WiFi
*/
#define ISDEBUG // Мы в отладке
#include <SPI.h>
#include <Time.h>
#include <Wire.h>
#include <SoftwareSerial.h>
// For NTP & ESP8266
SoftwareSerial mySerial(51, 53); // A2 - RX, A3 - TX
unsigned long started=0;
uint32_t out=0;
time_t NTPtime=0;
//tmElements_t tm;
int c0, lenght=0;
const unsigned long seventyYears = 2208988800UL;
const unsigned long LocalTimeZone = 10800UL; // GMT+3
const int NTP_PACKET_SIZE= 48; // NTP time stamp is in the first 48 bytes of the message
byte packetBuffer[NTP_PACKET_SIZE]; //buffer to hold incoming and outgoing packets
// Сервер <a href="http://WWW.BELGIM.BY" title="WWW.BELGIM.BY" rel="nofollow">WWW.BELGIM.BY</a> 178.124.164.107
time_t lastNTPtime = 0; // время получения времени от NTP
unsigned long PreviousClockTime, i;
boolean dotsEnable=true;
tmElements_t tm;
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
#ifdef ISDEBUG
Serial.println("RTC reading OK");
PrintTime (now());
#endif
ShowRTC(); // Отобразим время
//Запрашиваем время с NTP сервера
#ifdef ISDEBUG
Serial.println("Request for NTP ...");
#endif
GetNTP_esp8266(); //
//Если время получили успешно, то записываем данные в RTC
if (NTPtime!=0)
{
setTime(NTPtime);
lastNTPtime=NTPtime;
#ifdef ISDEBUG
Serial.println("NTP updated OK!");
PrintTime (now());
#endif
}
ShowRTC();
} //end of setup
void loop() {
GetNTP_esp8266(); // секунд около 40
//Если время получили успешно, то записываем данные в RTC
if (NTPtime!=0)
{
setTime(NTPtime);
lastNTPtime=NTPtime;
#ifdef ISDEBUG
Serial.println("NTP updated OK!");
PrintTime (now());
#endif
}
ShowRTC();
dotsEnable=true;
PreviousClockTime = millis();
i=1;
while (abs(millis()-PreviousClockTime) < 20000) // 20 секунд крутим цикл
{
if ( (abs(millis()-PreviousClockTime)) >= (i*1000))
{dotsEnable=!dotsEnable;
ShowRTC();
i++;
};
};
} //loop
// ФУНКЦИИ ДЛЯ ЧАСОВ
void ShowRTC()
{
#ifdef ISDEBUG
Serial.println("Show RTC ...");
#endif
#ifdef ISDEBUG
// PrintTime(RTC.get());
Serial.print("Hour = ");
Serial.print(tm.Hour);
Serial.print(" Minute = ");
Serial.println(tm.Minute);
#endif
}
time_t GetNTP_esp8266()
{
NTPtime=0;
mySerial.println("AT+RST");
delay(1000);
mySerial.println("AT+CWMODE=1");
delay(2000);
#ifdef ISDEBUG
Serial.println("Connect to my AP");
#endif
mySerial.println("AT+RST\r\n");
mySerial.println("AT+CWJAP=\"UA\",\"Gjhnatkm\""); // \" - так передается двойная кавычка внутри двойных кавычек
delay(8000);
setNTPpacketBuffer();
#ifdef ISDEBUG
Serial.println("Connect to NTP");
#endif
mySerial.println("AT+CIPSTART=\"UDP\",\"178.124.164.107\",123,34000");
delay(5000);
#ifdef ISDEBUG
Serial.println("Send lenght 48 bytes");
#endif
mySerial.println("AT+CIPSEND=48");
delay(4000);
while ( mySerial.available()) mySerial.read();
// delay(100);
#ifdef ISDEBUG
Serial.println("Send NTP packet ");
#endif
for (int i=0; i<NTP_PACKET_SIZE; i++) {mySerial.write(packetBuffer[i]); }
#ifdef ISDEBUG
Serial.println("NTP packet sended ");
#endif
delay(10000);
#ifdef ISDEBUG
Serial.println("Receive Message");
#endif
if (mySerial.available())
{
started = millis();
do {c0 = mySerial.read();} while ((c0 != ':') && (mySerial.available()));
for (int i=0; i<NTP_PACKET_SIZE; i++) {packetBuffer[i] = mySerial.read();
// Serial.print(packetBuffer[i],HEX); Serial.print(",");
}
out = (uint32_t(packetBuffer[40])<<24) + (uint32_t(packetBuffer[41])<<16) + (uint32_t(packetBuffer[42])<<8) + uint32_t(packetBuffer[43]) ;
NTPtime = out - seventyYears + LocalTimeZone + 12;
Serial.println(out);
}
else {
#ifdef ISDEBUG
Serial.println("No data received!");
#endif
mySerial.println("AT+CIPCLOSE");
return 0;
}
#ifdef ISDEBUG
Serial.println("Close connection");
#endif
mySerial.println("AT+CIPCLOSE");
// delay(1000);
return NTPtime;
}
void setNTPpacketBuffer()
{
// set all bytes in the buffer to 0
memset(packetBuffer, 0, NTP_PACKET_SIZE);
// Initialize values needed to form NTP request
// (see URL above for details on the packets)
packetBuffer[0] = 0b11100011; // LI, Version, Mode
packetBuffer[1] = 0; // Stratum, or type of clock
packetBuffer[2] = 6; // Polling Interval
packetBuffer[3] = 0xEC; // Peer Clock Precision
// 8 bytes of zero for Root Delay & Root Dispersion
packetBuffer[12] = 49;
packetBuffer[13] = 0x4E;
packetBuffer[14] = 49;
packetBuffer[15] = 52;
}
#ifdef ISDEBUG
void PrintTime (time_t ttt)
{
tmElements_t tttm;
Serial.print("UNIXTIME ->>>> ");
Serial.print(ttt,HEX);
Serial.print(" ->>>> ");
Serial.println(ttt,DEC);
breakTime(ttt, tttm);
Serial.print("Date time is: ");
Serial.print(tttm.Day);
Serial.print(".");
Serial.print(tttm.Month);
Serial.print(".");
Serial.print(tttm.Year+1970);
Serial.print(" - ");
Serial.print(tttm.Hour);
Serial.print(":");
if ( (tttm.Minute) < 10 ) {
// In the first 10 minutes of each hour, we'll want a leading '0'
Serial.print('0');
}
Serial.print(tttm.Minute);
Serial.print(":");
if ( (tttm.Second) < 10 ) {
Serial.print('0');
}
Serial.print(tttm.Second);
Serial.println(); // Start a new line.
}
#endif
Граждане, помогите идиоту, пожалуйста! Пробежался по теме галопом и ответа на свой вопрос не нашёл. Поиграв с ESP8266-01, купил версии ESP8266-12-Q. И теперь мучаюсь. Нашёл только одну инструкцию под похожий модуль (http://wellknownteam.ru/microelectronics/esp8266-12-e-arduino-uno/), но у меня оно не работает как в инструкции.
Подключаю всё так же, как в инструкции, за небольшим исключением: вместо резисторов на 10к нашёл только на 4,7к. Смартфон сетку от модуля (AI-THINKER_007B82) видит, но подключиться к ней не может. Arduino UNO либо никак не реагирует на подключение модуля, либо начинает в монитор порта сыпать кучу мусора (строчки букв "я" или ещё какие кракозябры).
Видеоинструкцию выше видел, но как-то я там всё равно толком ничего не понял. Почитать бы это, да схемки вживую поглядеть, а не на видео...
Хочется с учениками попробовать что-то полезное собрать с этим модулем и Ардуино, да замутить машинку, которой можно будет через интернет управлять.
Побаловался с ESP01 и модифицированной под ESP8266 Arduino IDE и ГПС шилдом. Поменяв в примере WiFiTelnetToSerial скорость порта с 115200 на ГПСные 9600. И подключив после прошивки Tx GPS к Rx ESP01. Работает нормально с OpenCPN.
А вот, нашел. Вставил ESP01 ( с конвертором 12В/3.3В)в АИС приемник NASA ENGIN3. Теперь к приемнику подключена только антенна и питание. Провод СОМ порта можно не ставить. Пашет нормально с OpenCPN.
Схемка мало чем отличается от опробованной ранее. К сожалению, при таком подключении модуль пару раз моргает светодиодом и всё. Точки доступа видимой не появляется. К Ардуинке, правда, подключить не могу пока, но не уверен, что будет толк.
Схемка мало чем отличается от опробованной ранее. К сожалению, при таком подключении модуль пару раз моргает светодиодом и всё. Точки доступа видимой не появляется. К Ардуинке, правда, подключить не могу пока, но не уверен, что будет толк.
Вы же писали, что точку доступа видно? Модуль может находится в 2 режимах: работа и программирование. Сначало в режиме работы нужно получить работу с AT командами. Подключите по схеме, запустите без перемычки, установите в терминале скорость 115200. Нажмите кнопку сброс получите ответ от платы. Отправьте команду AT получите ответ. Если все работает. Проверьте режим программирования: Установите перемычку, нажмите сброс на GPIO 16 появится 3,3 вольта. Попробуйте залить скетчь.
Если не работает, напишите на каком шаге затык.
А тут есть, кто пишет прошивки в Eclipse на Sming? Что бы помочь разобраться с программированием.
Открыл для себя такую тему: https://github.com/esp8266/Arduino Можно кодить ESP8266 как ардуино.
Беру пример "Advanced Web Server", оригинальный кусок кода:
И по нему у меня вопрос. Кто может объяснить происходящее в строке №33 "<p>Uptime: %02d:%02d:%02d</p>\"
Что такое "%02d" ? Какие ещё варианты могут быть? И что такое в строке №38?
Я пробовал переделать код под себя, всунув DTH
В принципе данные отображаются, но куда-то пропадают десятые, и остаются только целые. Как поправить? Как вообще вывести данные?
Если не делать так int h = (DHT.humidity); а сразу писать DHT.humidity, то вылазят странные многозначные значения. Если писать так (DHT.temperature, 1); то выводится только единица... Как быть?
Это всего лишь функция
snprintf ( temp, 400, ...<p>Uptime: %02d:%02d:%02d</p>\... , hr, min%60, sec%60 )
%02d %02d %02d - где выводить и как выводить,
hr, min%60, sec%60 - что выводить.
В общем, почитайте про snprintf(), там и про форматы вывода переменных найдете.
Это всего лишь функция
snprintf ( temp, 400, ...<p>Uptime: %02d:%02d:%02d</p>\... , hr, min%60, sec%60 )
%02d %02d %02d - где выводить и как выводить,
hr, min%60, sec%60 - что выводить.
В общем, почитайте про snprintf(), там и про форматы вывода переменных найдете.
Спасиб. Дофига чего читал, но задачу так и не решил..
Работал с одним ESP8266 посылал запросы с командой AT+CIPSEND=str.length()+1 без +1 выдаёт busy ... , с +1 работает. Подключил другой ESP8266 (прошивки разные) и блин надо уже передавать AT+CIPSEND=str.length()+2 . Не знаете почему ? и что на это влияет ? :)
У разных "AT"-прошивок немножко разный синтаксис. Почему меняется синтаксис? Потому что это-ж надо было кому-то сесть, и сначала все продумать... Китайцы (да и нынешние европейские пионеры) - так не умеют. Вплоть до того, что у модемов AT команды были регистро-независимые, а у esp8266 "at" можно писать как угодно, а вот остальное - как в мануале... Такое ощущение, что изначальный код где-то сперли, но элементарно доработать не смогли.
Andrey_Y_Ostan спасибо за ответ. Прошивки я залил одинаковые последние и сейчас обоим есп надо length()+2. .Бесит, нельзя использовать готовые библиотеки, без их правки :(. Скажите у кого какая прошивка и работает без +2 :)
AT22SDK100-2015-03-20-boot1.3b.bin
Либа https://github.com/itead/ITEADLIB_Arduino_WeeESP8266
Это прошивка под какой объем набортной памяти? 512К, или 1Мб?
А то, есть ощущение, что разработчики "старые" платы с 512К чипом уже похоронили и новые прошивки идут для плат с памятью мегабайт и более.
Под 512кБ.
Кстати не так давно увидел такую штуку) Молодцы китайцы.
http://ru.aliexpress.com/store/product/Free-Shipping-Smart-Electronics-E...
В моём экземпляре eps8266 всё только в верхнем регистре. Вобщем-то без разницы, но расхождение с канонической документацией настораживает. Мысль скребётся -- чего они там ещё не доложили.
В моём экземпляре eps8266 всё только в верхнем регистре. Вобщем-то без разницы, но расхождение с канонической документацией настораживает. Мысль скребётся -- чего они там ещё не доложили.
Не доложили чего? 0_о
Никто Вам не запрещает самостоятельно залить любую из существующих готовых АТ-прошивок. Или написать свою.
Я извиняюсь, если повторю вопрос. Но быстрый просмотр 14 страниц темы не дал на него ответа.
Тестирую esp8266-01 в режиме клиента при подключении к серверу. Коннект устанавливается и запросы посылаются. Но вот не приходит ответ с сервера. Через некоторое время получаю CLOSED.
Точнее, один раз пришел нормальный ответ от сервера в формате html. Но последующие попытки получить ответ не получились.
Подскажите, где можно почитать про организацию обмена данными с esp и сервером?
Я еще раз тут со своими вопросами :)
Уперся в стену и не знаю куда идти.
Пытаюсь через esp8266 подключиться к серверу и получить ответ. Запросы посылаю через терминал монитора IDE с помощью АТ-команд. Обмен выглядит примерно так:
Вроде бы брал рабочий пример, который находил в разных источниках
Подскажите, плиз
Я еще раз тут со своими вопросами :)
Уперся в стену и не знаю куда идти.
Пытаюсь через esp8266 подключиться к серверу и получить ответ. Запросы посылаю через терминал монитора IDE с помощью АТ-команд. Обмен выглядит примерно так:
Вроде бы брал рабочий пример, который находил в разных источниках
Подскажите, плиз
Проблему удалось решить. Оказалось, что не надо в конце строки прописывать символы \r\n, но в команде AT+CIPSEND надо предусмотреть 2 символа добавить. Т.е. если длина строки 20, то надо писать в команде 22. Перевод строки подставлется самой командой АТ.
Все заработало.
У меня тоже надо добавлять +2 баита, почему так никто незнает и при том на разных есп.
MikSer посоветовал : AT22SDK100-2015-03-20-boot1.3b.bin
Либа https://github.com/itead/ITEADLIB_Arduino_WeeESP8266
Сеичас вопсче какие то непонятки неговоря что надо добовалять +15 баитов 53 строка strlen(hello)+15.
Даже интересно стало :) . этот пример из примеров либы у меня нечего не возвворсчает если я что нибудь меняю в строке 62 Serial.print("]\r\n"); ну например убираем символ ] всё нет ответа, хотя по логам на сервере видно что запрос проходит. Вопсчем совсем не понимаю причём эта строка и ответ, помогите :)
На сервере самый простои скрипт, возврасчает параметр а <?php echo $_GET["a"]; ?>
Сервер принципе тоже не причём на несколких испробовал.
P.S. 54 строка должна быть: char *hello = "GET http://www.vakaras.lt/a.php?a=18884";
движок форума переделавяет линк
Не могу подсказать, так как не пользовался никакой библиотекой, а работал напрямую с модулем. Возможно баг где-то в библиотеке.
ну хоть попробуете кто нибудь, интересно это только у меня так :)
Добрый день форумчане! Недавно приобрёл сие чудо в сборе за 10$, нашел инструкцию, программу для тестирования, но вот никак не могу понять как создать сам Web сервер в интернете. Я так понимаю в настройках я вбиваю свой вайфай с паролем и указываю куда цепляться, вот только куда и как создать??? сильно стого не судите, с web сервером да еще и на ардуино впервые делаю!
https://fineshang.gitbooks.io/esp8266-based-serial-wifi-shield-for-arduino-user/content/chapter4.html
Купил ESP2866 на 12 модуле, подсоединил к нему датчик температуры, отправляю данные на thingspeak.com, теперь при работе и настройке оборудования не надо бегать и смотреть температуру, сидишь спокойно и смотришь, что там происходит, сейчас хочу прикрутить ещё датчик напряжения и заменит 18b20 на совмещённый датчик влажности и температуры DTH 11.
Ребята, подскажите пожалуйста почему здесь некоторые схемы идут с ардуино, при том что сама ESP8266 как я понимаю вполне может самостоятельно принимать и отправлять данные по wifi будучи прикрученой к батарейке и паре датчиков?
Если в ESP8266 залита АТ-прошивка, то можно подключить ESP8266 к Ардуино и использовать как адаптер Serial - WiFi, управляя АТ-командами.
Значит никто мне не подскажет по поводу ESP-13?
Вряд ли. Вопрос "как создать сам Web сервер в интернете" достаточно общий и простого ответа не имеет. Вам бы поискать что-то типа https://www.google.com.ua/?gws_rd=ssl#q=esp8266+web+server , да почитать побольше из разных источников, глядишь, и ответ найдётся.
А где был вопрос по ESP-13?
Если же Вы про Ваш вопрос "как создать сам Web сервер в интернете", то он, извините, говорит о том, что Вы не понимаете что хотите сделать.
В том то и дело что в интернете полно примеров использования ESP8266 без arduino uno и второй момент в примерах прошивают модуль с логином и поролем сети, а у модуля ESP-13 логин и пороль забивается на 192.168.4.1 https://fineshang.gitbooks.io/esp8266-based-serial-wifi-shield-for-ardui...
Если нужно перепрошить модуль то как это зделать через arduino uno!?
В интернете ни одного примера нет про ESP-13 в таком исполнении....
Какая разница esp-13 оно или esp-хзчто, главное что оно ESP8266 и в виде чего китайцы его спаяли не важно. Примеров связи ESP8266 с ардуино масса. Главное подобрать хорошую прошивку для ESP8266.
Я на видео снимал и выкладывал пример работы с ESP-12, прошивка через Arduino Nano. Все тоже самое можно сделать с ESP-13 и Arduino UNO.
https://youtu.be/GDezCrN31KI
https://youtu.be/44iIrpjFkRI
Если есть вопросы спрашивайте.
esp8266, как правило, перешиваются через линии Rx|Tx и одевание GND на GPIO0. Зачем Вам для этого прокладка в виде Uno?
Наткнулся в интернете на интересную тему http://esp8266.ru/iot-manager-for-diy/#more-1108
Всё толково расписано, запустилось с первого раза. (Впринципи ответ на мой не корректный вопрос "как создать сервер в интернете")
Действительно на кой они Arduino UNO присобачили к ESP-13 до сих пор не понимаю, использую как питание для модуля.
Плата УНО в этом случае и выступает линиями РХ-ТХ. Ведь 8266 напрямую в ЮЗБ порт нельзя воткнуть ибо нет там этих сигналов.
Вот только я не могу прошить модуль через UNO, не видит esp хоть ты тресни , даже кнопку резет зажимал чтобы только esp была подключена к rs232.....
А чем другим ті можеш прошить?
Да пожалуйста!
Модуль esp8266 должен быть предварительно прошит прошивкой 1.0.0 SDK 0.22 и сконфигурирован (скорость порта, точка доступа, автоматическое подключение) через любую терминальную программу и переходник USB-UART на макетке с помощью АТ-команд. Читаем описание АТ-команд на esp8266.ru
Пользуйтесь!
Добрый день!
Долго уже бьюсь над вашим скетчем, но синхранизацию сделать так и не получается. Правда прошивка более новая, может это быть причиной?
На запрос NTP у меня возвращаются всегда одни и те же данные в out
4294967295
4294967295
Подскажите хоть в какую сторону рыть? ))
Скетч
А почему время в uint крутится?
А почему время в uint крутится?
Не совсем понял вопрос. Скетч вообще то не мой, автор давал его в этой теме. Я только подчистил от лишнего.
Как esp указать статический IP и DNS?
Для входа в мою локальную сеть с выходом в интеренет всем устройставм нужно прописать статический IP и DNS.
Как esp указать статический IP и DNS?
Чем прошита ESP ?
Как esp указать статический IP и DNS?
Чем прошита ESP ?
У меня связка Arduino Due +esp. Работаю через Serial1.
Вас спрашивают, какая прошивка в ESP?
Вас спрашивают, какая прошивка в ESP?
AT версия 0.21.0.0
SDK версия 0.9.5
Вот здесь http://esp8266.ru/download/esp8266-doc/4A-AT-Espressif%20AT%20Instruction%20Set_v0.21.pdf , или здесь http://esp8266.ru/esp8266-at-commands-v021/ описана команда AT+CIPSTA, устанавливающая статический IP адрес в режиме станции.
Адрес для DNS-запросов - это адрес шлюза (точки доступа), к которому подключена ESP в режиме станции.
Вот здесь http://esp8266.ru/download/esp8266-doc/4A-AT-Espressif%20AT%20Instruction%20Set_v0.21.pdf , или здесь http://esp8266.ru/esp8266-at-commands-v021/ описана команда AT+CIPSTA, устанавливающая статический IP адрес в режиме станции.
Адрес для DNS-запросов - это адрес шлюза (точки доступа), к которому подключена ESP в режиме станции.
Спасибо.
Всем привет!
Граждане, помогите идиоту, пожалуйста! Пробежался по теме галопом и ответа на свой вопрос не нашёл. Поиграв с ESP8266-01, купил версии ESP8266-12-Q. И теперь мучаюсь. Нашёл только одну инструкцию под похожий модуль (http://wellknownteam.ru/microelectronics/esp8266-12-e-arduino-uno/), но у меня оно не работает как в инструкции.
Подключаю всё так же, как в инструкции, за небольшим исключением: вместо резисторов на 10к нашёл только на 4,7к. Смартфон сетку от модуля (AI-THINKER_007B82) видит, но подключиться к ней не может. Arduino UNO либо никак не реагирует на подключение модуля, либо начинает в монитор порта сыпать кучу мусора (строчки букв "я" или ещё какие кракозябры).
Видеоинструкцию выше видел, но как-то я там всё равно толком ничего не понял. Почитать бы это, да схемки вживую поглядеть, а не на видео...
Хочется с учениками попробовать что-то полезное собрать с этим модулем и Ардуино, да замутить машинку, которой можно будет через интернет управлять.
Побаловался с ESP01 и модифицированной под ESP8266 Arduino IDE и ГПС шилдом. Поменяв в примере WiFiTelnetToSerial скорость порта с 115200 на ГПСные 9600. И подключив после прошивки Tx GPS к Rx ESP01. Работает нормально с OpenCPN.
А вот, нашел. Вставил ESP01 ( с конвертором 12В/3.3В)в АИС приемник NASA ENGIN3. Теперь к приемнику подключена только антенна и питание. Провод СОМ порта можно не ставить. Пашет нормально с OpenCPN.
Видеоинструкцию выше видел, но как-то я там всё равно толком ничего не понял. Почитать бы это, да схемки вживую поглядеть, а не на видео...
Хочется с учениками попробовать что-то полезное собрать с этим модулем и Ардуино, да замутить машинку, которой можно будет через интернет управлять.
Такой схемки достаточно? http://esp8266-arduinoide.ru/hello-world/ , или подробнее нужно?
Такой схемки достаточно? http://esp8266-arduinoide.ru/hello-world/ , или подробнее нужно?
Схемка мало чем отличается от опробованной ранее. К сожалению, при таком подключении модуль пару раз моргает светодиодом и всё. Точки доступа видимой не появляется. К Ардуинке, правда, подключить не могу пока, но не уверен, что будет толк.
Схемка мало чем отличается от опробованной ранее. К сожалению, при таком подключении модуль пару раз моргает светодиодом и всё. Точки доступа видимой не появляется. К Ардуинке, правда, подключить не могу пока, но не уверен, что будет толк.
Вы же писали, что точку доступа видно? Модуль может находится в 2 режимах: работа и программирование. Сначало в режиме работы нужно получить работу с AT командами. Подключите по схеме, запустите без перемычки, установите в терминале скорость 115200. Нажмите кнопку сброс получите ответ от платы. Отправьте команду AT получите ответ. Если все работает. Проверьте режим программирования: Установите перемычку, нажмите сброс на GPIO 16 появится 3,3 вольта. Попробуйте залить скетчь.
Если не работает, напишите на каком шаге затык.