ESP01-arduino передача данных

Ёкубджон
Offline
Зарегистрирован: 23.03.2020

Доброго времени суток, всем знатокам Ардуино и всяческих шилдов.
Появилась небольшая проблема, а собственно:
Собрана схема одного устройства, которая считывает некоторую информацию и выводит на экран некоторые данные.
Что собственно нужно сделать:
1) Передать эти данные на ПК посредством ESP01, в любой графической форме,в край можно в строке браузера или Serial.begin
2) Использовать именно ардуино+ЕСП, знаю что ЕСП может работать как отдельный МК, но нужно именно через ардуинку.
3) Не обязательна работа с интернетом(даже наоборот желательно что бы передача осуществлялась по локалке)
Очень надеюсь на помощь, т.к поиск в интернете картину не сильно разъяснил, желательно с примерами, опыта в ардуино много нет, очень надеюсь на помощь, если нужно, помогу чем в ответ.

andriano
andriano аватар
Онлайн
Зарегистрирован: 20.06.2015

Если Вы хотите что-то сделать сами и просите помощи, то следует размещать в сообщении написанный Вами скетч и электрическую схему.

Если же Вам нужно, чтобы кто-то что-то сделал за Вас, следует размещать заявку в разделе "Ищу исполнителя".

Ёкубджон
Offline
Зарегистрирован: 23.03.2020

Схема состоит из 4 делителей на 4 каналах ардуино, получаем аналоговое напряжение и находим амплетуду, выводим на экран, а нужно еще и по wifi на пк или ноут кидать

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
int Acanal = 0;
int Bcanal = 1;
int Ccanal = 2;
int Dcanal = 3;
float vout = 0.00;
float vin1 = 0.00;
float vin2 = 0.00;
float vin3 = 0.00;
float vin4 = 0.00;
float R1 = 999.00; // сопротивление R1
float R2 = 999.00; // сопротивление R2
int value = 0;
float naimen1;
float naibolshe1;
float naimen2;
float naibolshe2;
float naimen3;
float naibolshe3;
float naimen4;
float naibolshe4;
float amp;
int Htime;
int Ltime;
float Ttime;
float frequency;


void setup()
{
  pinMode(Acanal, INPUT);
  pinMode(Bcanal, INPUT);
  pinMode(Ccanal, INPUT);
  pinMode(Dcanal, INPUT);
  Serial.begin(1000000);
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 1);
      lcd.print("Pole:");
  
}

void loop()
{
  naibolshe1 = 0;
  naimen1 = 100;
   naibolshe2 = 0;
  naimen2 = 100;
 naibolshe3 = 0;
  naimen3 = 100;
   naibolshe4 = 0;
  naimen4 = 100;
  {
    for (int i = 0; i != 101; i++)
    {
      value = analogRead(Acanal);
      vout = ((value * 5.00) / 1024.00*1.08);
      vin1 = vout / (R2 / (R1 + R2));
      naibolshe1 = max(vin1, naibolshe1);
      naimen1 = min(vin1, naimen1);
      lcd.setCursor(9, 0);
      lcd.print("I[X]=");
      lcd.setCursor(14, 0);
      lcd.print(naibolshe1);
    }

  }
  {
    for (int i = 0; i != 101; i++)
    {
      value = analogRead(Bcanal);
      vout = ((value * 5.00) / 1024.00*1.08);
      vin2 = vout / (R2 / (R1 + R2));
      naibolshe2 = max(vin2, naibolshe2);
      naimen2 = min(vin2, naimen2);
        lcd.setCursor(9, 1);
      lcd.print("I[-X]=");
      lcd.setCursor(15, 1);
      lcd.print(naibolshe2);
    }

  }
  {
    for (int i = 0; i != 101; i++)
    {
      value = analogRead(Ccanal);
      vout = ((value * 5.00) / 1024.00*1.08 );
      vin3 = vout / (R2 / (R1 + R2));
      naibolshe3 = max(vin3, naibolshe3);
      naimen3 = min(vin3, naimen3);
      lcd.setCursor(9, 2);
      lcd.print("I[Y]=");
      lcd.setCursor(14, 2);
      lcd.print(naibolshe3);
    }

  }
  {
    for (int i = 0; i != 101; i++)
    {
      value = analogRead(Dcanal);
      vout = ((value * 5.00) / 1024.00 *1.08);
      vin4 = vout / (R2 / (R1 + R2));
      naibolshe4 = max(vin4, naibolshe4);
      naimen4 = min(vin4, naimen4);
      lcd.setCursor(9, 3);
      lcd.print("I[-X]=");
      lcd.setCursor(15, 3);
      lcd.print(naibolshe4);
    }

  }
}

 

Михаил З
Offline
Зарегистрирован: 22.03.2020

Занимаюсь тем же вопросом - передача данных по воздуху между ардуинами.

надо запускать клиента и сервер, коннектить, передавать. я это делаю на базе ESP8266

Azathtot
Offline
Зарегистрирован: 17.03.2020

Извините меня дурака, а нафига тут ардуино-то? Это как к КАМАЗу приделать дополнительный мотор от газонокосилки. Он жужжать и жрать бензин будет, но толку с него чуть меньше чем никакого.

Не проще ли взять ESP8266 в варианте ESP-12 и все сделать на ней? Всяко, xtensa процессор поинтереснее AVR.

Ёкубджон
Offline
Зарегистрирован: 23.03.2020

Выводить инфу на экран нужно, + дальнейшее развитие, нужно много каналов будет в будущем, сам понимаю что проще по другому, но почему то выбрал именно этот вариант. Если есть какая возможность использовать только ESP, подскажите, буду благодарен. Получается нужны данные на экран...

b707
Offline
Зарегистрирован: 26.05.2017

Ёкубджон - пара советов по скетчу.

1. Вместо того чтоб делать четыре отдельных набора переменных vin1 vin2... наибольшее... наименьшее... - заведите массивы. Это позволит вам организовать работу с вашими 4-мя аналоговыми входами в одном цикле, вместо четрыех одинаковых кусков кода, как сейчас.

2. Переменные vin наибольшее. наменьшее - абсолютно зря описаны как float. вы же получаете данные с аналогового входа ардуины, где возможны только целые. Вот и работайте с ними как с целыми, а значение напряжение типа Float вычисляйте один раз - только при выводе на печать