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

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

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

Комментариев: 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:

Регистрация

Вход через
Разделы
  • Пожарная сигнализация123
    • Инструкции13
    • Проекты2
  • Автоматика54
  • Отопление33
  • Мониторинг30
  • Электрика16
  • Пожаротушение31
  • Умный дом32
  • Arduino12
  • Гаджеты32
  • MaxSite CMS26
Актуальное
  • СП 484
  • Автоматизация теплого пола
  • Болид vs Рубеж
  • С2000-АСПТ
  • ПЦН в кармане
  • Системы противопожарной зашиты
  • Cloud IoT
  • Проектирование
  • Программирование
  • Ссылки
Последние комментарии
9+10 ошибок при монтаже автоматической системы пожаротушения на основе С2000-АСПТ
  • Аноним » Любопытно, первая страница инструкции на АСПТ содержит "БЛОК ПРИЁМНО–КОНТРОЛЬНЫЙ И УПРАВЛЕНИЯ АВТОМАТИЧЕСКИМИ СРЕДСТВАМИ ПОЖАРОТУШЕНИЯ «С2000-АСПТ»", т.е. АСПТ является ПКУ. Читаем...
  • Андрей » "Блок" же. Не "прибор".
Идеальное техническое решение по противопожарной автоматике в разделе ЭОМ
  • Виктор Чекавин » У исполнительных модулей Рубежа МДУ-1 какая то конструктивная болячка с залипшими реле. Такому давать сертификат подсудное дело. Если программно добавлено...
  • Андрей » Ну так санкции. В таких условиях, когда снипы-хрипы накладывают требования, невыполнимые в текущем социально-экономичес ком развитии общества, я считаю вообще надо...
Контроллер теплых полов Beok CCT-10 с AliExpress для зонального отопления
  • Андрей » Здравствуйте. Видимо неправильно собраны контроллеры по логической схеме ИЛИ в цепь управления котлом. Надо нормально разомкнутые контакты выхода на котел соединить...
Последние загрузки
Все загрузки
Дискуссии на форуме
  • Выбор ОПС для коттеджа
  • Отключение питания раздвижных дверей при пожарном сценарии.
  • Подключение люков дымоудаления Mercor
Реклама

1 pcs Single Color Foxanon Dimmer Controller switch 12V DC 3 keys For 5050 3528 5630 5730 3014 Led Strip lamps lighting

Mileseey laser distance meter electronic roulette laser digital tape rangefinder trena metro laser range finder measuring tape

UniLook 5MP Dome POE IP Security Camera Audio Built in Microphone Hikvision compatible Outdoor CCTV Camera IR 30m H.265

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