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

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

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

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


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

     

  

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

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

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

Регистрация

Вход через
Разделы
  • Пожарная сигнализация95
    • Инструкции9
    • Проекты1
  • Автоматика40
  • Отопление33
  • Мониторинг29
  • Электрика15
  • Пожаротушение28
  • Умный дом31
  • Arduino12
  • Гаджеты31
  • MaxSite CMS26
Актуальное
  • Автоматизация теплого пола
  • Болид vs Рубеж
  • С2000-АСПТ
  • ПЦН в кармане
  • Системы противопожарной зашиты
  • Cloud IoT
  • Проектирование
  • Ссылки
  • Плагины для MaxSite CMS
Подписка на новости
discord

Email:

Последние комментарии
"Двухголовый" Рубеж-20П в соответствие с СП 484
  • Alex Rybin » Я думаю из-за ТР ЕАЭС 043/2017 еще пару лет отрасль лихорадить будет.
Способы отключение вентиляции при пожаре
  • artymiron » Спасибо за информацию! Очень полезно и разжёвано
  • Андрей » Пожалуйста.
Краткая инструкция действий дежурного персонала с панелью управления С2000М
  • Комментатор 77 » Пожалуйста Подскажите панель с2000 бки при нажатии не берётся с2000 прописывается попытка снятия доступ запрещён. На с2000 могу взять снять...
  • Андрей » Для того чтобы можно было управлять разделами с С2000-БКИ нужно: 1. В программе PPROG на вкладке "Привязка управления" привязать управление разделами...
Последние записи
Концепция  IoT, которая будет работать.
Концепция IoT, которая будет работать.
Скрытые параметры комнатных терморегуляторов.
Скрытые параметры комнатных терморегуляторов.
Может ли telegram-канал профессионального сообщества  стать профсоюзом или кооперативом?
Может ли telegram-канал профессионального сообщества стать профсоюзом или кооперативом?
"Двухголовый" Рубеж-20П в соответствие с СП 484
"Двухголовый" Рубеж-20П в соответствие с СП 484
Популярное
9+10 ошибок  при монтаже автоматической системы пожаротушения на основе С2000-АСПТ
9+10 ошибок при монтаже автоматической системы пожаротушения на основе С2000-АСПТ
Обзор моделей терморегуляторов с WiFi и облачным сервисом.
Обзор моделей терморегуляторов с WiFi и облачным сервисом.
Как настроить байпас  смесительного узла TIM JH-1036
Как настроить байпас смесительного узла TIM JH-1036
Правильное и не очень подключение С2000М к компьютеру.
Правильное и не очень подключение С2000М к компьютеру.
Прочее
Законодательный запрет на нормальную систему пожаротушения.
Законодательный запрет на нормальную систему пожаротушения.
Ремонт плоских светодиодных светильников комплектующими с AliExpress
Ремонт плоских светодиодных светильников комплектующими с AliExpress
Обзор приемо-контрольных приборов с пожарным сертификатом и облачным сервисом.
Обзор приемо-контрольных приборов с пожарным сертификатом и облачным сервисом.
Обзор  адресных систем охранной и пожарной сигнализации
Обзор адресных систем охранной и пожарной сигнализации
Последние загрузки
Все загрузки
Дискуссии на форуме
  • Не работает Сигнал 20м.
  • Используем для проектирования RubezhCAD
  • С2000-АСПТ и соленоидный клапан
Реклама

Tuya WiFi GAS LPG Leak detector alarm Security APP Control Safety smart home Leakage sensor

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

1080P WIFI IP Camera PTZ 5X Optical Zoom Speed Dome ONVIF CCTV Outdoor Waterproof 2MP Two Way Audio Camera Hiseeu

1080P Full HD Wireless IP Camera Wifi IP CCTV Camera Wifi Mini Network Video Surveillance Auto Tracking Camera IR Night Vision

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