Снова вопросы

UW5EGA
Offline
Зарегистрирован: 16.09.2020

И снова здравствуйте. Я тут наплодил тем уже, их можно удалить, толка в них никакого.

http://arduino.ru/forum/pesochnitsa-razdel-dlya-novichkov/vopros-novichka

http://arduino.ru/forum/pesochnitsa-razdel-dlya-novichkov/kak-realizovat

А теперь по делу. В общем начал я с малого, а именно с китайской дешевки Nano v3.0. Светодиодом на плате помигал, а вот при попытке загрузить скетч с библиотекой не хватает каких-то файлов и где их брать нагуглить не получается. В библиотеке Ethernet2 есть папки со скетчами, я так понял это какие-то примеры.

Беру скетч WebServer и пытаюсь его загрузить:

In file included from C:\Users\Vlad\Documents\Arduino\libraries\Ethernet2\src\Dns.cpp:7:0:
C:\Users\Vlad\Documents\Arduino\libraries\Ethernet2\src\Dns.cpp: In member function 'uint16_t DNSClient::BuildRequest(const char*)':
C:\Users\Vlad\Documents\Arduino\libraries\Ethernet2\src\utility/util.h:4:24: warning: result of '(256 << 8)' requires 18 bits to represent, but 'int' only has 16 bits [-Wshift-overflow=]
 #define htons(x) ( ((x)<< 8 & 0xFF00) | \
                     ~~~^~~~
C:\Users\Vlad\Documents\Arduino\libraries\Ethernet2\src\Dns.cpp:202:21: note: in expansion of macro 'htons'
     twoByteBuffer = htons(QUERY_FLAG | OPCODE_STANDARD_QUERY | RECURSION_DESIRED_FLAG);
                     ^~~~~
Скетч использует 9766 байт (31%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 555 байт (27%) динамической памяти, оставляя 1493 байт для локальных переменных. Максимум: 2048 байт.

Вроде как загрузилось, но чего-та все таки не хватает. 

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Где Вы увидели, что файлов не хватает? Вас предупреждают о возможном косяке в библиотеке, но с нехваткой файлов это никак не связано.

UW5EGA
Offline
Зарегистрирован: 16.09.2020

Тогда как исправить эти косяки? 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, откуда мне знать, какую именно библиотеку Вы используете (ссылки-то нет), какой именно у Вас код (Вы его не выложили). А без всего этого ... ну, как исправить ... сесть, почесать репу и исправить. А ещё лучше - сообщить авторам библиотеки, пусть сами исправляют. Судя по Вашим вопросам, сами Вы её всё равно не исправите.

sadman41
Offline
Зарегистрирован: 19.10.2016

Ethernet 2 выпилена в новых IDE... Уже года полтора как, вроде. Это так, к сведению.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

sadman41 пишет:
Ethernet 2 выпилена в новых IDE... Уже года полтора как, вроде. Это так, к сведению.
ё

когда ты всё успеваешь )))

PS у меня в 1.8.13 такой библиотеки нет (не инсталлируемая)

sadman41
Offline
Зарегистрирован: 19.10.2016
UW5EGA
Offline
Зарегистрирован: 16.09.2020

Например вот код из ютуба - https://www.youtube.com/watch?v=8vC4VJLzghs&t=23s&ab_channel=LabRazum

/*
Ethernet Web Server
Управление светодиодом при нажатии кнопки on/off (вводе разных URL адресов) в браузере

Адрес включения светодиода:
IP-АДРЕС - тот IP, полученный при запуске примера DhcpAdressPrinter

http://IP-АДРЕС/$1

Для того, чтобы выключить:
http://IP-АДРЕС/$2

*/

#include <SPI.h>             //библиотека для работы с SPI
#include <Ethernet.h>        //библиотека для работы с Ethernet 
boolean newInfo = 0;        //переменная для новой информации
//MAC адрес вашего Ethernet-модуля, если его у вас нет, введите любой
//или оставьте тот, что в примере
byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDA, 0x02 };     

//указываем IP адрес
//будьте внимательны! IP адрес указывается тот, который вы получили запустив пример DhcpAdressPrinter
IPAddress ip(192,168,1,9);    //пример МОЕГО IP адреса, вы вводите сюда СВОЙ

//инифиализация библиотеки Ethernet server library
EthernetServer server(80);

void setup()
{
  pinMode(8, OUTPUT);                               //инициализируем 8 пин как выход для светодиода                  
  //запускаем сервер с указанными ранее MAC и вашим IP
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.begin(9600);
}

void loop()
{
  //принимаем данные, посылаемые клиентом
  EthernetClient client = server.available();
  if(client){                                       //если запрос оканчивается пустой строкой
  boolean currentLineIsBlank = true;                //ставим метку об окончании запроса (дословно: текущая линия чиста)
  while (client.connected()) {                      //пока есть соединение с клиентом
    if (client.available()) {                       //если клиент активен
      char c = client.read();                       //считываем посылаемую информацию в переменную "с"
                                                  
      if(newInfo && c == ' '){                      //если переменная новой информации = 1 и "с", в которой записан запрос, равен пустой строке
        newInfo = 0;                                //то обнуляем переменную поступления новой информации
      }
      
      if(c == '$'){                                 //если переменная "с", несущая отправленный нам запрос, содержит символ $ 
                                                    //(все новые запросы) - "$" подразумевает разделение получаемой информации (символов)
        newInfo = 1;                                //то пришла новая информация, ставим метку новой информации в 1
      }
      
      /************************************************************************************************
      Примечание:
      Символ $ используется как обычный символ, который разделяет 1 от 2
      На практике применяют символ &, который разделяет новые переменные от последующих
      Это использьуется, например, в GET-запросах, которые выглядят подобным образом:
      client.print("GET /controlbar/wp-content/data.php?uid=" + ID + "&type=" + type + "&value=" + value);
      как видите, знак & разделяет значение переменной - ID и переменную type     
      ***************************************************************************************************/
      
                                                     //Проверяем содержание URL - присутствует $1 или $2
      if(newInfo == 1){                              //если есть новая информация
          Serial.println(c);
          if(c == '1'){                              //и "с" содержит 1
          Serial.println("ON");
          digitalWrite(8, HIGH);                    //то зажигаем светодиод
          }
          
          if(c == '2'){                              //если "с" содержит 2
          Serial.println("OFF");
          digitalWrite(8, LOW);                     //гасим светодиод
          }    
      } 
      
      if (c == '\n') {                              //если "с" равен символу новой строки
        currentLineIsBlank = true;                  //то начинаем новую строку
      } 
      else if (c != '\r') {                         //иначе, если "с" не равен символу возврата курсора на начало строки
        currentLineIsBlank = false;                 //то получаем символ на текущей строке
      }
    
      if (c == '\n' && currentLineIsBlank) {        //выводим HTML страницу
        client.println("HTTP/1.1 200 OK");          //заголовочная информация
        client.println("Content-Type: text/html");
        client.println("Connection: close");  
        client.println("Refresh: 30");              //автоматическое обновление каждые 30 сек
        client.println();
        client.println("<!DOCTYPE HTML>");          //HTML тип документа
        client.println("<html>");                   //открытие тега HTML 
        client.print("<title>My web Server</title>");                  //название страницы
        client.print("<H1>My web Server</H1>");                        //заголовк на странице
        client.print("<a href=\"/$1\"><button>On</button></a>");       //кнопка включить
        client.print("<a href=\"/$2\"><button>Off</button></a>");      //кнопка выключить
        client.println("<br />");       
        client.println("</html>");                  //закрываем тег HTML
        break;                                      //выход
      }
    
    }
    
  }
  delay(1);                                          //время на получение новых данных
  client.stop();                                     //закрываем соеднение 
}
}

И здесь те же ругательства:

In file included from C:\Program Files (x86)\Arduino\libraries\Ethernet\src\Dns.cpp:8:0:
C:\Program Files (x86)\Arduino\libraries\Ethernet\src\Dns.cpp: In member function 'uint16_t DNSClient::BuildRequest(const char*)':
C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility/w5100.h:457:25: warning: result of '(256 << 8)' requires 18 bits to represent, but 'int' only has 16 bits [-Wshift-overflow=]
 #define htons(x) ( (((x)<<8)&0xFF00) | (((x)>>8)&0xFF) )
                      ~~~^~~
C:\Program Files (x86)\Arduino\libraries\Ethernet\src\Dns.cpp:164:18: note: in expansion of macro 'htons'
  twoByteBuffer = htons(QUERY_FLAG | OPCODE_STANDARD_QUERY | RECURSION_DESIRED_FLAG);
                  ^~~~~

Аннотации не мешают как я понимаю. 

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

вам уже обьяснили, что это не ошибки, а предупреждения. Они не мешают компиляции и загрузке кода.

Что вы от форума-то хотите? Уже третья тема сваливается в "толку никакого"...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

b707 пишет:
Они не мешают компиляции и загрузке кода.
А вот насчёт работы - ХЗ.

Но я уже объяснил ТС что от него требуется, но он не понял. Значит, не судьба.

UW5EGA
Offline
Зарегистрирован: 16.09.2020

По поводу не устанавливается. 

UW5EGA
Offline
Зарегистрирован: 16.09.2020

b707 пишет:

вам уже обьяснили, что это не ошибки, а предупреждения. Они не мешают компиляции и загрузке кода.

Что вы от форума-то хотите? Уже третья тема сваливается в "толку никакого"...

Записал на лбу. 

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

UW5EGA пишет:

По поводу не устанавливается. 

и зачем нам это знать?

 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

UW5EGA пишет:
Записал на лбу. 

Угу. Перед прочтением смотреть в зеркало.Нет, что бы бумажки на монитор клеить рядом с паролями.

UW5EGA
Offline
Зарегистрирован: 16.09.2020

b707 пишет:

UW5EGA пишет:

По поводу не устанавливается. 

и зачем нам это знать?

А они не будут мешать друг другу? Или эти строки дают понять откуда, что нужно брать? 

#include <SPI.h>

#include <Ethernet.h>

UW5EGA
Offline
Зарегистрирован: 16.09.2020

У меня уже есть своя веб страница работающая в локальной сети на опенсервере.

Строка 13 зажигает указанные огоньки по кнопке "пуск", это пока сделано для красоты и функционал туда задумывается другой. Дальше в коде идут стили и сюда их копировать не буду. Знакомая которая вносила правки в написание этого кода сказала - в строку 33 нужно подставлять данные для твоего управления вместе с id кнопки, а как именно это выразить она не знает. 

Что сказано в скетче:

Для того, чтобы включить:
 
Для того, чтобы выключить:
 
Как мне это выразить в коде теперь? Да и задумывается управление 7ю устройствами одновременно.

<html lang="ru-RU">
<head>
  	<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>
	<meta name="viewport" content="width=device-width, initial-scale=1"/>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
	<title>Тест</title>
</head>

<body>
<h1><p>Система запуска</p></h1>

<div class="butt">
<a onclick="$('#l1').css('background', '#00f500');$('#l2').css('background', '#00f500');$('#l4').css('background', '#00f500');" class="button1" id="pusk" >ПУСК</a>
<a onclick="$('.lamp').css('background', '#ddd');" class="button2" id="stop">СТОП</a>
</div>


<br>
   <div class="txt"><span class="lamp" id="l1"></span>***  </div>
   <div class="txt"> <span class="lamp" id="l2"></span>*** </div>
   <div class="txt"> <span class="lamp" id="l3"></span>*** </div>
   <div class="txt"> <span class="lamp" id="l4"></span>*** </div>
   <div class="txt"> <span class="lamp" id="l5"></span>*** </div>
   <div class="txt"><span class="lamp" id="l6"></span>*** </div>
   <div class="txt"><span class="lamp" id="l7"></span>*** </div>

</body>

</html>


<script>

</script>

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

При минимальной нагрузке,  по мне лучше сделать это на сервере?

Если Садман подойдёт, он точно знает, у него в этом опыт колоссальный

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

UW5EGA пишет:

У меня уже есть своя веб страница работающая в локальной сети на опенсервере.

Для того, чтобы включить:
 
Для того, чтобы выключить:
 
Как мне это выразить в коде теперь? Да и задумывается управление 7ю устройствами одновременно.

А у Вас, простите - я не понял, вот эта самая красивая картина (html/css код) на одном устройстве, а скетч в другое устройство заливается?

UW5EGA
Offline
Зарегистрирован: 16.09.2020

BOOM пишет:

UW5EGA пишет:

У меня уже есть своя веб страница работающая в локальной сети на опенсервере.

Для того, чтобы включить:
 
Для того, чтобы выключить:
 
Как мне это выразить в коде теперь? Да и задумывается управление 7ю устройствами одновременно.

А у Вас, простите - я не понял, вот эта самая красивая картина (html/css код) на одном устройстве, а скетч в другое устройство заливается?

Ну конечно да. ПК и ардуина разные устройства.  Мне нужно с третьего ПК входящего в эту подсеть, переходить по адресу вебсервера и оттуда осуществлять управление 7ю ардуинами. 

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

UW5EGA пишет:

Мне нужно с третьего ПК входящего в эту подсеть, переходить по адресу вебсервера и оттуда осуществлять управление 7ю ардуинами. 

попытвайтесь сформулировать, в чем у вас проблема? Примеров к webserver-у, в которых показано как включать и выключать диод на ардуине - просто тонны в инете. Что не получается-то?

Что-то которое сообщение толчем воду в ступе, а толку...

UW5EGA
Offline
Зарегистрирован: 16.09.2020

Да полно. Но вы наверное не поняли. Как выразить это в коде? Как подцепить под нужную кнопку функционал? 

Вот кнопка <a onclick="$('.lamp').css('background', '#ddd');" class="button2" id="stop">СТОП</a>, у нее id stop. А запрос на выключение светодиода http://192.168.0.10/$2. Как вот сюда все сложить, чтобы работало?

<script>
</script>
 

 

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

что вам нужно выразить в коде, если у вас готовый пример есть?

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

вот, например, прочитайте внимательно и скажите четко. что вам непонятно

http://helpduino.ru/podklychenie_Ethernet_Shield_k_arduino.html

 

добавка - туплю - у вас уже в #7 приведен почти такой же код.

но вопрос остается - что там непонятно?

UW5EGA
Offline
Зарегистрирован: 16.09.2020

Вебсервер на ардуине это 1 устройство, вебсервер на ПК это 2 устройство, пользователь с ПК 3 устройство. Все они находятся в одной подсети. Как пользователю управлять 7ю устройствами при нажатии 1 кнопки? 

Отредактировал сообщение выше, пожалуйста прочтите внимательно. 

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

UW5EGA пишет:

Вот кнопка <a onclick="$('.lamp').css('background', '#ddd');" class="button2" id="stop">СТОП</a>, у нее id stop. А запрос на выключение светодиода http://192.168.0.10/$2. Как вот сюда все сложить, чтобы работало?

 

так это вопрос у вас не по ардуино, а по HTML. Кнопка - это либо самостоятельный линк (http://192.168.0.10/$2) либо часть формы или скрипта. Скрипты ваша библиотека обрабатывать не умеет, формы не знаю. Лучше делать по простому, в виде линков Вот у вас в коде сообщения #7 кнопки описаны в строке 97 и 98. Вот так и делайте, и для начала я бы советовал выкинуть все стили и прочие выкрутасы. добейтесь. чтоб работала простейшая страничка с парой кнопок. потом будете украшать

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

UW5EGA пишет:

Вебсервер на ардуине это 1 устройство, вебсервер на ПК это 2 устройство

вы точно понимаете, что делаете? зачем вам два вебсеревера? Если у вас есть вебсервер на ПК - вебсервер на ардуине не нужен. и наоборот.

UW5EGA
Offline
Зарегистрирован: 16.09.2020

Пользователь не должен заходить на ардуину или знать о ее существовании, пользователь должен зайти на веб страничку в своей подсети и нажать 2 кнопки, пуск или стоп. Все. Вы меня понимаете? Вебстраничка написана, в работу на сервере запущена, ардуина работает, а как все связать во едино не понятно. 

UW5EGA
Offline
Зарегистрирован: 16.09.2020

b707 пишет:

UW5EGA пишет:

Вебсервер на ардуине это 1 устройство, вебсервер на ПК это 2 устройство

вы точно понимаете, что делаете? зачем вам два вебсеревера? Если у вас есть вебсервер на ПК - вебсервер на ардуине не нужен. и наоборот.

По итогу если все получится будет 7 ардуин, 7 штук! Пользователю не нужно заходить на каждую и тыкать пуск и стоп. Пользователь должен зайти на 1 веб страницу и нажать 1 кнопку. 

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

UW5EGA пишет:

Пользователь не должен заходить на ардуину или знать о ее существовании, пользователь должен зайти на веб страничку в своей подсети

это вы не понимаете. У вас каша в голове. Вебсервер на ардуине ничем не отличается от сервера на ПК. Юзер который зайдет на ардуину - никак не сможет догадаться. что это ардуина, если вы ему сами не скажете. Вебсервер он и есть вебсервер, какой запрограммируете - такой и будет.

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

UW5EGA пишет:

По итогу если все получится будет 7 ардуин, 7 штук! Пользователю не нужно заходить на каждую и тыкать пуск и стоп. Пользователь должен зайти на 1 веб страницу и нажать 1 кнопку. 

ОК. Нафига тогда семь вебсерверов? Не проще ли сигналы с вебсервера на ардуину передавать не по HTTP, а как-нить попроще - по Сериалу например?

 

UW5EGA
Offline
Зарегистрирован: 16.09.2020

b707 пишет:

UW5EGA пишет:

Вот кнопка <a onclick="$('.lamp').css('background', '#ddd');" class="button2" id="stop">СТОП</a>, у нее id stop. А запрос на выключение светодиода http://192.168.0.10/$2. Как вот сюда все сложить, чтобы работало?

 

так это вопрос у вас не по ардуино, а по HTML. Кнопка - это либо самостоятельный линк (http://192.168.0.10/$2) либо часть формы или скрипта. Скрипты ваша библиотека обрабатывать не умеет, формы не знаю. Лучше делать по простому, в виде линков Вот у вас в коде сообщения #7 кнопки описаны в строке 97 и 98. Вот так и делайте, и для начала я бы советовал выкинуть все стили и прочие выкрутасы. добейтесь. чтоб работала простейшая страничка с парой кнопок. потом будете украшать

Наконец таки вы меня услышали. 

UW5EGA
Offline
Зарегистрирован: 16.09.2020

b707 пишет:

UW5EGA пишет:

По итогу если все получится будет 7 ардуин, 7 штук! Пользователю не нужно заходить на каждую и тыкать пуск и стоп. Пользователь должен зайти на 1 веб страницу и нажать 1 кнопку. 

ОК. Нафига тогда семь вебсерверов? Не проще ли сигналы с вебсервера на ардуину передавать не по HTTP, а как-нить попроще - по Сериалу например?

 

А я не знал другого способа. Как нагуглил, от того и отталкиваюсь. Используется шильд 5500 так как в организации уже существует работающая локальная сеть. Чтобы не тянуть провода под RS485, а использовать уже существующую инфраструктуру. Устройства от пользователя разбросаны на расстоянии до 1 км, а последнее находится на удалении 12 км и до этого здания лежит оптика. Намного проще и дешевле от ближайшей циски кинуть витую пару 10-20 метров, чем тянуть километры проводов с нуля.  

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

UW5EGA пишет:

А я не знал другого способа. Как нагуглил, от того и отталкиваюсь. Используется шильд 5500 так как в организации уже существует работающая локальная сеть. Чтобы не тянуть провода под RS485, а использовать уже существующую инфраструктуру. Устройства от пользователя разбросаны на расстоянии до 1 км, а последнее находится на удалении 12 км и до этого здания лежит оптика. 

вы неправильно подощли к задаче. Если все 7 ардуин находятся рядом - проще будет связать их каким-то проводным или беспроводным протоколом, типа NRF24 или rs485. Если они далеко друг от друга - то локальная сеть это вариант, но ставить на каждую ардуину вебсервер - это бред.  Такая задача решается по принципиу протокола MQTT - сервер один, все ардуины - клиенты.

UW5EGA
Offline
Зарегистрирован: 16.09.2020

b707 пишет:

UW5EGA пишет:

Вебсервер на ардуине это 1 устройство, вебсервер на ПК это 2 устройство

вы точно понимаете, что делаете? зачем вам два вебсеревера? Если у вас есть вебсервер на ПК - вебсервер на ардуине не нужен. и наоборот.

Это уже от незнания. То есть можно или даже нужно из кода ардуины убрать вывод в HTML? Так даже лечше, исключает возможность захода на ардуину левых людей и несанкционированного запуска. Ну а вебсервер на ПК у меня под HTTP basic авторизацией. 

sadman41
Offline
Зарегистрирован: 19.10.2016

Надо спросить - товарищ из АСУТП или нет.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

UW5EGA пишет:

нее id stop. А запрос на выключение светодиода http://192.168.0.10/$2. Как вот сюда все сложить, чтобы работало?

При нажатии на кнопку формировать GET запрос вот такой, как ты написал. Что тут непонятного? Да хоть 7 запросов, хоть 77. А в ответе ардуинка пусть отдает состояния пинов или что-там-тебе-от-нее-нужно.

UW5EGA
Offline
Зарегистрирован: 16.09.2020

sadman41 пишет:

Надо спросить - товарищ из АСУТП или нет.

Товарищ рядовой электрик в организации. Годами это делалось вручную, раньше была ламповорелейная система, но она не работает и последний специалист 10 лет как на том свете, а медную трассу давно вырезали. 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Б707! Тут как раз разумно сделать нормального размера сервер где-то и на JS накидать управление всеми ардуинками, в которых расположить самые простые вебсервера, с выключателями и отдачей данных. Вот только что ТС-у непонятно, - мне непонятно ;)))).

--------------------

ТС! Смотри: пользователь загрузил страничку с твоего третьего сервера. Дальше про сервер забыли. У пользователя в браузере страничка с программкой на JS. Она там кнопочки рисует, картинки, шкалы, приборы и казино с бэкджеком и библиотекаршами. При некоторых действиях пользователя или просто по таймеру эта программка запрашивает простыми GET запросами ардуинки по списку. Получает от них данные, при необходимости кодирует в GET запросе "нажатие кнопок". Что-то непонятно?  Это совсем простая страничка. Если у тебя знакомый веб-программист есть - он накидает за полдня.

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

wdrakula пишет:

Б707! Тут как раз разумно сделать нормального размера сервер где-то и на JS накидать управление всеми ардуинками, в которых расположить самые простые вебсервера, с выключателями и отдачей данных. Вот только что ТС-у непонятно, - мне непонятно ;)))).

ну не знаю... ради того, чтоб просто передать по сети 0 или 1 - целый вебсервер поднимать?

А если все же веб -  в разы проще это делается на ЕСП :)

sadman41
Offline
Зарегистрирован: 19.10.2016

UW5EGA пишет:

sadman41 пишет:

Надо спросить - товарищ из АСУТП или нет.

Товарищ рядовой электрик в организации. Годами это делалось вручную, раньше была ламповорелейная система, но она не работает и последний специалист 10 лет как на том свете, а медную трассу давно вырезали. 

Товарищ, рядовой электрик, забудьте о том, что ардуина - это волшебная плата, заменяющая абсолютно любое сложное и дорогое оборудование, для чего достаточно на неё нацепить дешевый шилд и спросить у кого-нить про то, как "дописать пару строк". Такое не канает. 

mixail844
Offline
Зарегистрирован: 30.04.2012

 

ТСу по сути нужен шлюз

как вариант в качестве протокола между шлюзом и ардуинами использовать Modbus TCP , но тогда получаеться Ардуино будут Modbus серверами а Gateway клиентом и прийдеться при добавлении новой ардуины лезть в настройки шлюза.
как бы так извернуться, что бы выло наоборот, что бы новая ардуино ,знала адресс сервера и регестрировалась там автоамтом и шлюз уже автоматом послылал ей сигнал на вкл/выкл . 
наверняка есть подходящий протокол ,я просто не знаю.

 

sadman41
Offline
Зарегистрирован: 19.10.2016

ТС-у, по сути, надо подумать как бы он ответил на такое: "Я программист 1С, последний электрик на заводе помер, начальник требует собрать в цеху распределительный щит на 8 фаз по 1000в каждая. Слышал про какое-то ПУЭ, но не читал - времени нет. Нашел в кладовке провода и рубильник черный. Индикаторную отвёртку купил! Где и что надо ей покрутить?"

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

mixail844 пишет:

как бы так извернуться, что бы выло наоборот, что бы новая ардуино ,знала адресс сервера и регестрировалась там автоамтом и шлюз уже автоматом послылал ей сигнал на вкл/выкл . 

наверняка есть подходящий протокол ,я просто не знаю.

MQTT

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

b707 пишет:
ради того, чтоб просто передать по сети 0 или 1 - целый вебсервер поднимать?
Из-за кастрюли холодца цельного кабанчика резать! :-(((

UW5EGA
Offline
Зарегистрирован: 16.09.2020

sadman41, бородатый дядя с ютуба объяснил почему нельзя использовать ардуино, что подключаемые библиотеки спрятаны и что в них творится неизвестно. Я понимаю вашу обеспокоенность, но мне нужно показать рабочий прототип и тогда у меня будет время на изучение stm32 и разводку собственной платы.

rkit
Offline
Зарегистрирован: 23.11.2016

UW5EGA пишет:
и тогда у меня будет время на изучение stm32 и разводку собственной платы.

Сколько лет?

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

UW5EGA пишет:
sadman41, бородатый дядя с ютуба объяснил почему нельзя использовать ардуино, что подключаемые библиотеки спрятаны и что в них творится неизвестно.

не верьте этому дядьке, он понимает в этом немногим больше вашего.

 

Зы Может это Гайвер бороду отрастил? :)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

UW5EGA пишет:
бородатый дядя с ютуба объяснил почему нельзя использовать ардуино, что подключаемые библиотеки спрятаны и что в них творится неизвестно.

Дядя, наверное, ковид подцепил и у него бред начался. Библиотеки в ардуино даже технически нельзя спрятать (если глубоко под юбку ИДЕ не лезть) - они всегда в исходниках и не знает что в них творится только тот, кому лень посмотреть.

Он, наверное, ардуино с виндовсом перепутал. Вот там действительно всё спрятано.

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

UW5EGA пишет:
мне нужно показать рабочий прототип и тогда у меня будет время на изучение stm32 и разводку собственной платы.

у нас тут есть коммерческий раздел - тыщ за 8-10, думаю, вы с кем-нить договоритесь -  напишут код для прототипа...

А самому собрать - слишком много читать надо. думаю раньше полгода не осилите

sadman41
Offline
Зарегистрирован: 19.10.2016

"Прототип"-то осилит. Ненадежный, но когда для себя - можно поторговаться с убеждениями. Только что будет после "прототипа" - вопрос на мильен.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

sadman41 пишет:
"Прототип"-то осилит. Ненадежный, но когда для себя - можно поторговаться с убеждениями. Только что будет после "прототипа" - вопрос на мильен.

Судя по тому, что ему тут насоветовали согласен полностью