• Обратная связь
  • Карта сайта
  • Отзыв
  • Комментарии
  • Форум
discord
Технические заметки
  • Главная
  • Лекции
  • Практикум
  • Обзоры
  • Сравнение
  • Нормы
  • События
  • Вход
ГлавнаяArduinoМониторингГаджеты
Проект общежития на 5 этажей в Visio.
Wi-Fi терморегулятор за 1630р в ближайшую Черную Пятницу

Используем Arduino UNO с WiFi на одной плате для POST запроса на сервер

24 ноября 2019 г.Просмотров: 16333Комментарии: 5
ArduinoМониторингГаджетыAliExpressArduinoESP8266WiFiИнтернет Вещей

В статье "Как у меня заработал WIFI для Arduino ESP8266 ESP-12E" рассказывал как заставить работать платы Arduino UNO с ESP8266 ESP-12E UART Wi-Fi.

Но зачем такие сложности, если есть уже совмещенная плата?

Вместо слоеного пирога из двух плат:

Заказал вот эту плату:

UNO R3 + WiFi ATmega328P+ESP8266 (32Mb memory) USB-TTL CH340G For Arduino Uno NodeMCU WeMos ESP8266 One New Arrival

И она заработала безо всяких прошивок и перепрошивок.

Работает только на скорости 115200

Среда Arduino уже была настроена для работы.

Осталось только переключатели перещелкивать, чтобы заливать скетч в UNO.

Таблица положений переключателей есть здесь.

Вот только не упомянуто положение переключателей (1-4 ON), когда во время работы Mega328+ESP8266 CH340 мониторит порт и выводит в консоль передаваемые команды.

Как настроить среду Arduino объясняется здесь или здесь.

Таблица переключателей.

 

1

2

3

4

5

6

7

8

CH340 connect to ESP8266 (upload sketch)

OFF

OFF

OFF

OFF

ON

ON

ON

NoUSE

CH340 connect to ESP8266 (connect)

OFF

OFF

OFF

OFF

ON

ON

OFF

NoUSE

CH340 connect to ATmega328 (upload sketch)

OFF

OFF

ON

ON

OFF

OFF

OFF

NoUSE

Mega328+ESP8266

ON

ON

OFF

OFF

OFF

OFF

OFF

NoUSE

All modules work independent

OFF

OFF

OFF

OFF

OFF

OFF

OFF

NoUSE

Совместная работа и мониторинг команд

ON

ON

ON

ON

OFF

OFF

OFF

NoUSE

Передача информации на серверы Cayenne и RemoteXY.

Протестировал плату на решении задач, скетчи которых заливал в слоеный пирог из двух плат:

Подключаем Arduino UNO при помощи ESP8266-12E к облаку Cayenne.

Мониторинг Arduino UNO + ESP8266 через облачный сервер RemoteXY.

Эти сервисы предоставляют свои библиотеки для работы с ESP8266.

Все заработало сразу без изменений и мучений.

Необходимо в скетчах заменить скорость на 115200.

Передача информации на произвольный сервер.

Решение предыдущей задачи "Отправка данных из ESP8266WiFi на сервер с CMS MaxSite" с этой платой повторить не удалось.

Для отправки данных на произвольный сервис использовалась универсальная библиотека WiFiESP.

И оказалось, что эта библиотека не заработала с этой платой, выдавая

[WiFiEsp] Warning: Unsupported firmware 0.9.5

Действительно, модуль при обращении с соответствующей командой AT+GMR сообщает версию SDK 0.9.5:

AT+GMR
AT version:0.21.0.0
SDK version:0.9.5

В файле README.md библиотеки можно прочитать:

Supports ESP SDK version 1.1.1 and above (AT version 0.25 and above).

Попытки обновить прошивку при помощи flash_download_tools не увенчались успехом (да и не старался особо):

Ведь библиотеки Cayenne и RemoteXY для этой платы заработали без проблем!

Помогли статьи:

instructables.com/id/Arduino-Esp8266-Post-Data-to-Website и developer.alexanderklimov.ru/arduino/playground/uno_esp8266wifi

В этих статьях описывается способ обращения к ESP8266 обычными командами без библиотек.

Будем обрабатывать POST запрос к серверу при помощи плагина my_esp8266 для MaxSiteCMS, который принимает данные.

Заработал вот такой скетч.

// отсылает данные в плагин http://fil-tec.ru/tag/My_ESP8266 для MaxSite CMS
String ssid ="Router name";
String password="**********";
String server = "my.site.ru"; // сайт, на котором установлен пагин My_esp8266
String uri = "/ajax/**************************"; // скопировать со страницы "Тест" админки плагина My_esp8266 адрес для обращения с запросами
String PORT = "80";
int countTrueCommand;
int countTimeCommand;
boolean found = false;
int valSensor = 1;
String jsonString; // данные
String PostHeader; // заголовок
String data;
int DHpin = 4; //sensor pin
byte dat [5];
String temp ,hum;
#define PIN_SWITCH_1 12
#define PIN_SWITCH_2 13
void setup() 
{
  pinMode (DHpin, OUTPUT);
  pinMode (PIN_SWITCH_1, OUTPUT);  
  pinMode (PIN_SWITCH_2, OUTPUT); 
  Serial.begin(115200);
  reset();
  connectWifi();
}
void reset() 
{
  Serial.println("AT+RST");
  delay(1000);
}
//connect to your wifi network
void connectWifi() 
{
  Serial.begin(115200);
  sendCommand("AT", 5, "OK");
  sendCommand("AT+CWMODE=1", 5, "OK");
  sendCommand("AT+CWJAP=\"" + ssid + "\",\"" + password + "\"", 20, "OK");
  digitalWrite(PIN_SWITCH_2, (found == true)?LOW:HIGH);
}
byte read_data () 
{
  byte data;
  for (int i = 0; i < 8; i ++) 
  {
    if (digitalRead (DHpin) == LOW) 
    {
       while (digitalRead (DHpin) == LOW); // wait for 50us
       delayMicroseconds (30); // determine the duration of the high level to determine the data is '0 'or '1'
       if (digitalRead (DHpin) == HIGH)
          data |= (1 << (7-i)); // high front and low in the post
      while (digitalRead (DHpin) == HIGH); // data '1', wait for the next one receiver
    }
  } 
  return data;
}
void start_test () 
{
   digitalWrite (DHpin, LOW); // bus down, send start signal
   delay (30); // delay greater than 18ms, so DHT11 start signal can be detected
   digitalWrite (DHpin, HIGH);
   delayMicroseconds (40); // Wait for DHT11 response
   pinMode (DHpin, INPUT);
   while (digitalRead (DHpin) == HIGH);
   delayMicroseconds (80);  // DHT11 response, pulled the bus 80us
   if (digitalRead (DHpin) == LOW);
   delayMicroseconds (80);  // DHT11 80us after the bus pulled to start sending data
   for (int i = 0; i < 4; i ++) // receive temperature and humidity data, the parity bit is not considered
   {
     Serial.println(i);
     dat[i] = read_data ();
   }  
   pinMode (DHpin, OUTPUT);
   digitalWrite (DHpin, HIGH);
  // send data once after releasing the bus, wait for the host to open the next Start signal
}
void loop ()
{
  start_test ();  // convert the bit data to string form
  hum = String(dat[0]);
  temp= String(dat[2]);
  jsonString = "secret=0000&name=ESP_8266WiFi&temp=" + temp + "&hum=" + hum;
  httppost();
  delay(1000);
}
void httppost () 
{
  String postRequest =
  "POST " + uri + " HTTP/1.1\r\n" +
  "Host: " + server + "\r\n" +
  "User-Agent: ESP8266WiFi\r\n" +
  "Accept: application/xml\r\n" +
  "X-Requested-With: XMLHttpRequest\r\n" +
  "Referer: http://my.site.ru\r\n" +
  "Connection: close\r\n" +
  "Content-Length: " + jsonString.length() + "\r\n" +
  "Content-Type: application/x-www-form-urlencoded\r\n" +
  "\r\n" + jsonString;
  
  sendCommand("AT+CIPMUX=1", 5, "OK");
  sendCommand("AT+CIPSTART=0,\"TCP\",\"" + server + "\"," + PORT, 15, "OK");
  sendCommand("AT+CIPSEND=0," + String(postRequest.length() + 2), 4, ">");
  sendCommand(postRequest, 5, "OK");
  delay(1500); 
  countTrueCommand++;
  sendCommand("AT+CIPCLOSE=0", 5, "OK");
}
void sendCommand(String command, int maxTime, char readReplay[]) 
{
  while (countTimeCommand < (maxTime * 1))
  {
    Serial.println(command);//at+cipsend
    delay(1500);
    if (Serial.find(readReplay)) //ok
    {
      found = true;
      break;
    }
    countTimeCommand++;
  }
  if (found == true)
  {
    // успешно 
    digitalWrite(PIN_SWITCH_1, LOW);
    countTrueCommand++;
    countTimeCommand = 0;
  }
  if (found == false)
  {
    // неудачно
    digitalWrite(PIN_SWITCH_1, HIGH);
    countTrueCommand = 0;
    countTimeCommand = 0;
  }
  found = false;
}

Еще записи по теме

Отправляем состояния теплых полов из Arduino UNO ESP8266 WiFi на сервер ThingSpeak
Отправляем состояния теплых полов из Arduino UNO ESP8266 WiFi на сервер ThingSpeak
Подключаем Arduino UNO при помощи ESP8266-12E  к облаку Cayenne
Подключаем Arduino UNO при помощи ESP8266-12E к облаку Cayenne
Версия 02 плагина My_ESP8266 для MaxSiteCMS.
Версия 02 плагина My_ESP8266 для MaxSiteCMS.
Мониторинг Arduino UNO + ESP8266 через облачный сервер RemoteXY
Мониторинг Arduino UNO + ESP8266 через облачный сервер RemoteXY
Как у меня заработал WIFI для Arduino ESP8266 ESP-12E
Как у меня заработал WIFI для Arduino ESP8266 ESP-12E
Отправка данных из ESP8266WiFi на сервер с CMS MaxSite
Отправка данных из ESP8266WiFi на сервер с CMS MaxSite

Комментариев: 5 RSS

1 Аноним 15-01-2022 09:58

Спасибо за статью!

При каком положении переключателей заливать этот скетч на плату?

2 Андрей 15-01-2022 13:01

Скеч в Arduino при положении, которое в таблице вот в этой строке:

CH340 connect to ATmega328 (upload sketch)

Но дело было давно, хотя проблем помню вообще не было. Значит в таблице верно было указано.

3 Аноним 15-01-2022 15:11

Спасибо! Немного разобрался. В режиме off-off-ON-ON-off-off-off-off скетч заливается, в режиме ON-ON-ON-ON-off-off-off-off работает. Но нестабильно. Делает пару отправок, потом зависает.

4 Дмитрий 29-08-2022 23:46

Я не совсем понял можно ли использовать wifi для подключения допустим к планшету?

5 Андрей 03-09-2022 23:05

Я не совсем понял можно ли использовать wifi для подключения допустим к планшету?

wifi можно использовать для сессии обмена данными с сервером на котором запущено соответствующее приложение. Думаю что если на планшете создать соответственное приложение то можно.

Оставьте комментарий.

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question


Выберите для анонимного комментирования (комментарий будет опубликован после проверки).

     

  

Выберите если нужно войти или зарегистрироваться и оставить комментарий от своего аккаунта.

Войти, используя

(обязательно)

Подписка на новости
discord

Email:

Регистрация

Вход через
Разделы
  • Пожарная сигнализация124
    • Инструкции13
    • Проекты2
  • Автоматика58
  • Отопление33
  • Мониторинг30
  • Электрика17
  • Пожаротушение32
  • Умный дом32
  • Arduino12
  • Гаджеты32
  • MaxSite CMS26
Актуальное
  • СП 484
  • Автоматизация теплого пола
  • Болид vs Рубеж
  • С2000-АСПТ
  • ПЦН в кармане
  • Системы противопожарной зашиты
  • Cloud IoT
  • Проектирование
  • Программирование
  • Ссылки
Последние комментарии
Можно ли использовать независимый расцепитель в противопожарных системах
  • Виталий » "Примечание. В статье применяется аббревиатура СПА (системы противопожарной автоматики), которая может резать глаза. Но к ней стоит привыкать, ибо аббревиатуру...
  • Андрей » Неправда Ваша. "Мысль изречённая есть ложь." Но это и не система сигнализации, а система оповещения.
  • Андрей » Замечательная статья, все по делу, все по полочкам, основательный инженерный подход, спасибо! И я тоже проходил подобные искания и копания,...
  • Андрей » Спасибо. Если данный участок расположен внутри щита (шкафа) управления вентиляцией, то контролировать его целостность не требуется, т.к. этот участок не подпадает...
  • Андрей » Думаю для данного случая подходит вариант из п.3.20: "между системой пожарной автоматики и другими инженерными системами" Корпус щита, шкафа вентиляции не является...
Последние загрузки
Все загрузки
Дискуссии на форуме
  • КПБ
  • Выбор ОПС для коттеджа
  • Отключение питания раздвижных дверей при пожарном сценарии.
Реклама

New type 1pcs/lot Mini Fast Wire Connector Universal Wiring Cable Connector Push-in Conductor Terminal Block PCT-222 SPL-62/42

Wifi color touch screen thermostat for water heating/boiler with English//Polish/Czech/Italian/Spain by android IOS phone

Din Rail Terminal Block PTTB-2.5 Electrical Wiring Connectors Double Layer Spring Connection Conductors 10pcs Terminal strips

Пожарка 126 Проектирование 99 Болид 64 Лекции 58 Социальное 53 Рубеж 49 Обзор 47 Автоматика 47 Инженерные системы 40 Курьез 36 Практикум 36 Адресные системы 35 Пожаротушение 34 Отопление 33 Интернет Вещей 29 MaxSite 28 ГОСТ 26 Терморегуляторы 24 Облачный Сервис 24 Мониторинг 22 Вентиляция 21 Теплый пол 21 Плагин 21 Сравнение 20 AliExpress 20 Законы Ома 20 ППУ 20 Техобслуживание 19 Эксплуатация 19 СП 484 19 Астра 17 ППК 17 Клапана 15 Электрика 14 С2000-АСПТ 14 Рубикон 13 Arduino 13 Оповещение 13 WiFi 12 С2000М 12 Ritm 11 Гранд Магистр 11 Датчики 11 Насосная Станция 11 ESP8266 10 Юнитест 10 ПЦН 9 ВЭРС 9 Сценарии 8 Авария 8 Жилой дом 8 Taggallery 7 Отзыв 7 Освещение 7 Программирование 7 Сообщества 7 Диспетчеризация 7 Плазма-Т 6 Гаджеты 5 ПО 5 С2000-СП4 5 Спрут-2 5 Радиоканал 4 МПН 4 GeoRITM 4 МПТ 4 Версет 3 Firesec3 3 Гранит 3 РИП 3 Баня 3 Учет ресурсов 3 ИПДЛ 3 Navigard 3 Visio 3 Рубеж-2ОП 3 My_ESP8266 3 Гидравлика 2 Задвижка 2 Zigbee 2 Security Hub 2 ТО 2
  • Обратная связь
  • Карта сайта
  • Отзыв
  • События
  • Комментарии
  • Форум
© Технические заметки 2026. Работает на MaxSite CMS. ( Вход )
Автор не несет ответственность за последствия применения материалов сайта на практике.