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

Нужна помощь связать 2 ESP8266-01 для управления серво.

nikolz

Well-known member
Ничего не экономлю. Был в Новосибирске, нашел ESP8266-01, прочитал, что это вайфай модуль, ацп на борту есть, библиотека серво работает, по размерам в корпус входит, больше ничего и не надо. Купил 10 модулей на эксперименты. Остальные модули, которые были в том магазине на ESP8266 - были большого размера и в передатчик такое запихнуть трудно, там и без этого все плотно.
Никаких соплей на плате, под микроскопом припаял к 6 выводу провод, залил токонепроводящим клеем, все аккуратно и качественно. (Чтобы небыло недопониманий, уточню сразу - уже более 10 лет занимаюсь ремонтом ноутбуков, паяльник и паяльную станцию в руках держать умею, можете не переживать. Реболлинг сделать не проблема, а уж ESP с платы снять и посадить на место - это вообще из разряда детского сада).
нет ну все нормально
я сам начинал 4 года назад с ESP-01
правда быстро выкинул
ESP-12 на самом деле даже меньше
но проблема не только в этом пине
но и режим сна не включите
и памяти мало
ну да ладно это я так,
без обид.
подходи так подходит ну и хорошо.
 

CodeNameHawk

Moderator
Команда форума
Одна есп должна работать в режиме АР (точка доступа), похоже, что вы так и делали
Код:
void startAP()
{
  delay(100);
  WiFi.mode(WIFI_STA);
  WiFi.softAP("Throttle","Paraplan");
  delay(500);
  server.begin();
}
Не ясно зачем вставили WiFi.mode(WIFI_STA);

Посмотрите как сделано в этом примере
esp8266/Arduino

Перед запуском сервера, проверьте создалась ли точка
Soft Access Point — ESP8266 Arduino Core documentation
 

AndreyFly

New member
Андрей Гурьянов on Instagram: “Первые испытания электротяги. Чудесная погодв”
Это видео в моем инстаграмме. Испытывал младший сын. Ограничение стояло на 50% мощности, так что в видео моторы в пике работают на 50% мощности.

Андрей Гурьянов on Instagram: “В субботу выдался летный день.”
Это ссылка на полет с горы, без мотора. Чтобы было понимание, что будут тянуть электромоторы.

Фото пульта чуть позже.
 

nikolz

Well-known member
Андрей Гурьянов on Instagram: “Первые испытания электротяги. Чудесная погодв”
Это видео в моем инстаграмме. Испытывал младший сын. Ограничение стояло на 50% мощности, так что в видео моторы в пике работают на 50% мощности.

Андрей Гурьянов on Instagram: “В субботу выдался летный день.”
Это ссылка на полет с горы, без мотора. Чтобы было понимание, что будут тянуть электромоторы.

Фото пульта чуть позже.
посмотрите это
как использовать ESP-now
SensorsIot/ESP-Now-Tests
 

CodeNameHawk

Moderator
Команда форума
В примере выше
Код:
server.send(200, "text/html", "<h1>You are connected</h1>");
, вместо "<h1>You are connected</h1>" вставляете сгенерированую строку с вашими данными типа "Thtrotle=008" , а на приемной стороне парсите строку, находите знак"=" и берете после него три знака, для надежности можете передавать контрольную сумму.
 

AndreyFly

New member
Спасибо помогающим. Информации нахлынуло много, сейчас отдохну после работы и начну пробовать.
 

CodeNameHawk

Moderator
Команда форума
На приемной стороне запрашиваете страницу
Код:
    HTTPClient http;

    Serial.println("[HTTP] begin...\n");

    // configure traged server and url

    http.begin("http://192.168.4.1/"); //HTTP

    Serial.println("[HTTP] GET...\n");

    // start connection and send HTTP header
    int httpCode = http.GET();
    http.setTimeout(1000);// Dobawilem czas oczekiwania 1 sec

                          // httpCode will be negative on error
    if (httpCode > 0)
    {
        // HTTP header has been send and Server response header has been handled
        Serial.printf("[HTTP] GET... code: %d\n", httpCode);
        Serial.println("");

        // file found at server
        if (httpCode == HTTP_CODE_OK)
        {
            String_from_HTTP = http.getString();
        }
 

AndreyFly

New member
Код:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>

/* Set these to your desired credentials. */
const char *ssid = Paraplan;
const char *password = Throttle;

ESP8266WebServer server(80);

void handleRoot() {
  server.send(200, "text/html", "<h1>You are connected</h1>");
}

void setup() {
  delay(1000);
  WiFi.softAP(ssid, password);
  IPAddress myIP = WiFi.softAPIP();
  server.on("/", handleRoot);
  server.begin();
}

void loop() {
  server.handleClient();
}

Не понятно несколько моментов.
1. в основном цикле программы [inline]server.handleClient();[/inline] Что оно делает? Могу ли я выше этой строки опрашивать АЦП? Могу ли ставить задержку, чтобы опрос был около 10 раз в секунду.?
[inline]server.handleClient();[/inline] нужно вызывать постоянно в основном цикле или же однократно при запуске достаточно?

2. в каком случае вызывается эта процедура?
Код:
void handleRoot() {
  server.send(200, "text/html", "<h1>You are connected</h1>");
}
Я так понимаю отправка идет по запросу клиента? Или ошибаюсь?
 

CodeNameHawk

Moderator
Команда форума
1. в основном цикле программы [inline]server.handleClient();[/inline] Что оно делает?
Обслуживает клиента.

Могу ли я выше этой строки опрашивать АЦП? Могу ли ставить задержку, чтобы опрос был около 10 раз в секунду.?
[inline]server.handleClient();[/inline] нужно вызывать постоянно в основном цикле или же однократно при запуске достаточно?
АЦП опрашивать ничего не мешает, а вот задержка здесь не нужна, пусть клиент запрашивает 10 раз в секунду, или после получения ответа от сервера.
[inline]server.handleClient();[/inline] вызывать постоянно и без задержек.
2. в каком случае вызывается эта процедура?
Код:
void handleRoot() {
  server.send(200, "text/html", "<h1>You are connected</h1>");
}
Я так понимаю отправка идет по запросу клиента??
Да.
 

nikolz

Well-known member
Обслуживает клиента.


АЦП опрашивать ничего не мешает, а вот задержка здесь не нужна, пусть клиент запрашивает 10 раз в секунду, или после получения ответа от сервера.
[inline]server.handleClient();[/inline] вызывать постоянно и без задержек.

Да.
можно сделать иначе
это вообще-то ужас какой-то
посмотрите пример с UDP
все очень просто
создаете сервер который слушает порт
клиент читает ацп и если значение изменилось отправляет его по UDP на сервер.
сервер получив от клиента код управляет чем надо
и подтверждает клиенту
клиент ждет тайм аут подтверждения
если оно есть то переходит к проверке изменения АЦП
если его нет то повторяет посылку.
----------------------
т е никто никого не вызывает и не засоряет эфир без надобности и не жрет батарейку
================
но на ESP-NOW будет еще лучше
там работаем по мас адресам
 

nikolz

Well-known member
а в вашем примере что-то не видна установка соединения с AP
 

nikolz

Well-known member
С этим ТС сам разберется.

Если бы он понял, что к чему, давно бы сделал.
В приведенном кино с ютуба все разжевано до безобразия
осталось лишь проглотить
----------------------
куча примеров на дурине в ссылках
----------------------
могу написать пример на СИ но это будет ему не понятно если на дурине взять готовое не может.
 
Сверху Снизу