• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

esp8266-01 + mega = webserver?

avgaz

New member
Здравствуйте, не как не могу догнать как сделать что бы mega отправляла данные на esp8266-01, а тот в сеть формировал страничку с этими данными, может кто поделится простым примером этого?
подключаю по такой схеме

только к RX и TX через вот такие понижайки логики 10 ШТ. IIC I2C Логический Уровень Конвертер Двунаправленный Модуль 5 В до 3.3 В Для Arduino купить на AliExpress
пробую различные примеры библиотек, но не фига не работает, да же не соединяется с роутером (( может кто подскажет пример рабочий ??
 

TRO

Member
Начать нужно с того что не запитыватьЕСПшку от 3.3в меги, они там очень дрыщавые, и кроме глюков ничего не будет. Запитайте от нормальных 3,3в с номинальным током от 0,5А с короткими питающими проводами и конденсатором непосредственно возле ЕСПшки.
 

avgaz

New member
Начать нужно с того что не запитыватьЕСПшку от 3.3в меги, они там очень дрыщавые, и кроме глюков ничего не будет. Запитайте от нормальных 3,3в с номинальным током от 0,5А с короткими питающими проводами и конденсатором непосредственно возле ЕСПшки.
подключил с отдельным питанием результата тот же вот к примеру скетч
Код:
/*
ESP8266 library

When you use with UNO board, uncomment the follow line in uartWIFI.h.
#define UNO

When you use with MEGA board, uncomment the follow line in uartWIFI.h.
#define MEGA

Connection:
When you use it with UNO board, the connection should be like these:
ESP8266_TX->D0
ESP8266_RX->D1
ESP8266_CH_PD->3.3V
ESP8266_VCC->3.3V
ESP8266_GND->GND

FTDI_RX->D3            //The baud rate of software serial can't be higher that 19200, so we use software serial as a debug port
FTDI_TX->D2

When you use it with MEGA board, the connection should be like these:
ESP8266_TX->RX1(D19)
ESP8266_RX->TX1(D18)
ESP8266_CH_PD->3.3V
ESP8266_VCC->3.3V
ESP8266_GND->GND

When you want to output the debug information, please use DebugSerial. For example,

DebugSerial.println("hello");


Note:    The size of message from ESP8266 is too big for arduino sometimes, so the library can't receive the whole buffer because 
the size of the hardware serial buffer which is defined in HardwareSerial.h is too small.

Open the file from \arduino\hardware\arduino\avr\cores\arduino\HardwareSerial.h.
See the follow line in the HardwareSerial.h file.

#define SERIAL_BUFFER_SIZE 64

The default size of the buffer is 64. Change it into a bigger number, like 256 or more.





*/


#define SSID       "Itead_1(Public)"
#define PASSWORD   "27955416"


#include "uartWIFI.h"
#include <SoftwareSerial.h>
WIFI wifi;

extern int chlID;   


void setup()
{
 
  wifi.begin();
  bool b = wifi.Initialize(STA, SSID, PASSWORD);
  if(!b)
  {
    DebugSerial.println("Init error");
  }
  delay(8000);  //make sure the module can have enough time to get an IP address
  String ipstring  = wifi.showIP();
  DebugSerial.println(ipstring);        //show the ip address of module
 
  delay(1000);
  wifi.confMux(1);
  delay(100);
  if(wifi.confServer(1,80))
    DebugSerial.println("Server is set up");
   

}
void loop()
{
 
  char buf[500];
  int iLen = wifi.ReceiveMessage(buf);
  if(iLen > 0)
  {
   
      DebugSerial.print(buf);
      delay(100);
     
      String cmd;
      cmd = "HTTP/1.1 200 OK\r\n";
      cmd += "Content-Type: text/html\r\n";
      cmd += "Connection: close\r\n";
      cmd += "Refresh: 8\r\n";
      cmd += "\r\n";
      cmd += "<!DOCTYPE HTML>\r\n";
      cmd += "<html>\r\n";
      for(int analogChannel = 0; analogChannel < 6; analogChannel++)
      {
        int sensorReading = analogRead(analogChannel);
        cmd += "analog input ";
        cmd += String(analogChannel);
        cmd += " is ";
        cmd += String(sensorReading);
        cmd += "<br />\r\n";
     
      }    
      cmd += "<html>\r\n";

        wifi.Send(chlID,cmd);
        delay(300);
        wifi.closeMux(chlID);
        delay(1000);
 

  }
}
в результате
AT+RST
Module have no response
 

TRO

Member
У меня в свое время были проблемы с мегой при подключении RX TX пока я на ней не перерезал дорожки которые идут к ним от ЮСБ чипа на меге.
 

avgaz

New member
У меня в свое время были проблемы с мегой при подключении RX TX пока я на ней не перерезал дорожки которые идут к ним от ЮСБ чипа на меге.
подключил в обход понижающей логики к tx и tx и заработало )) только теперь подскажите скетч который подключается к точке доступа(к роутеру) и формирует страничку на ip адресе плиз!! вот например скетч
Код:
#include <ESP8266_TCP.h>

// ESP8266 Class
ESP8266_TCP wifi;

// Target Access Point
#define ssid         "11223"
#define pass         "123456789"

// Connect this pin to CH_PD pin on ESP8266
#define PIN_RESET    6

void setup()
{
  delay(3000);

  // We use Serial1 to interface with ESP8266
  // and use Serial to debugging
  Serial.begin(115200);
  Serial1.begin(115200);
  wifi.begin(&Serial1, &Serial, PIN_RESET);

  /* If your board has only 1 serial port
   * or you didn't need to debugging, try this.
   *
   * Serial.begin(115200);
   * wifi.begin(&Serial, PIN_RESET);
   *
   */

  // Check that ESP8266 is available
  if(wifi.test())
  {
    // Connect to Access Point
    wifi.connectAccessPoint(ssid, pass);
  }
  else
  {
    // ESP8266 isn't available
    Serial.println("Check module connection and restart to try again...");
  }
}

void loop()
{

}
он подключается к роутеру но не какой странички не дает
 

avgaz

New member
Не уж то не кто не делал так? что бы ардуина отдавала esp8266 страничку с данными, esp8266 транслировал её в сеть, как клиент?
 
Сверху Снизу