Помогите дописать код не могу вывести значение состояние физической кнопки on off на веб странице . Не знаю как прописать переменную кнопки в EtherCard
#include <EtherCard.h> // библиотека ethernet модуля ENC28j60
#include <EEPROM.h> // библиотека энергонезависимой памяти
const int PIN_BUTTON_OKN = 2; // пин контакты дверь
const int PIN_BUTTON_DVE = 3; // пин контакты ворота
const int PIN_BUTTON_VOR = 4; // пин контакты окно
boolean PinStatus[0];
// boolean PinStatus[3];
// boolean PinStatus[4];
//---------------------------------------------------------------------------------
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 }; // mac-адрес должен быть уникальным для данной сети
static byte myip[] = { 192,168,1,203 }; // ip-адрес, по которому обращаться для вывода информации в браузере
byte Ethernet::buffer[500]; // задаем размер буфера отправки и получения по tcp/ip
BufferFiller bfill; // указатель буфера данных Ethernet
//----------------------------------------------------------------------------------
void(* resetFunc) (void) = 0; //объявляем функцию reset с адресом 0
void setup() {
pinMode(2 , INPUT ); // вывод входа будет высоким, когда дверь открыта концевик разомкнут и ниский когда дверь закрыта
pinMode(3 , INPUT ); // вывод входа будет высоким, когда окно открыто концевик разомкнут и ниский когда окно закрыто
pinMode(4 , INPUT ); // вывод входа будет высоким, когда ворота открыты концевик разомкнут и ниский когда ворота закрыты
digitalWrite(2, HIGH); // подключаем подтягивающий резистор
digitalWrite(3, HIGH); // подключаем подтягивающий резистор
digitalWrite(4, HIGH); // подключаем подтягивающий резистор
//----------------------------------------------------------------------------------
// CS-pin (по умолчанию 8 pin). Если нужно изменить - поставить номер пина после параметра mymac
// На этом условии Ардуино может зависнуть, если не будет связи с модулем ENC28J60, либо на него не будет подано питание.
if (ether.begin(sizeof Ethernet::buffer, mymac) == 0) // Если не получены какие-либо данные для инициализации соединения с контроллером
Serial.println(F(“Failed to access Ethernet controller”)); // Ошибка доступа к Ethernet контроллеру
ether.staticSetup(myip); // устанавливаем текущий статический ip контроллеру
}
void loop() {
// ВЫВОД ИНФОРМАЦИИ НА WEB-СЕРВЕР (веб-страницу с параметрами)***********
word len = ether.packetReceive(); // принимает новый входящий пакет из сети
word pos = ether.packetLoop(len); // отвечает на определенные входящие сообщения, в том числе на «ping» ( эхо-запрос ICMP)
if(pos) { // если валидные данные tcp получены
if(strstr((char *)Ethernet::buffer + pos, "reset") != 0) // перезагрузить адруино при нажатии на кнопку "Перезагрузить адруино"
{
resetFunc();
}
bfill = ether.tcpOffset(); // указатель буфера данных Ethernet
// HTML-код страницы
bfill.emit_p(PSTR(
"HTTP/1.0 200 OK\r\n"
"Content-Type: text/html\r\nPragma: no-cache\r\n\r\n"
"<meta http-equiv='refresh' content='8' charset='utf-8'/>" // браузер будет обновлять страницу через каждые8 секунд
"<html><head><title> ГАРАЖ </title></head>" // подпись вкладки ГАРАЖ
"<html><body>"
"<H1> ГАРАЖ </H1>"
"<font color=\"red\"><b>ОТКРЫТ</b></font>" // загаловок вкладки
"<table border=\"1\">"
"<tr><td> button :</td><td> $text </td></tr>" // баловался с цветом и шрифтом
"</table>"), 2,3,4 );
// "<form method=\"POST\">"));
//table>") 2,3,4, ); // как вывести состояние с кнопак на экран
//"</table>"), , );
bfill.emit_p(PSTR("<h2>2</h2>"));
// PinStatus[0]?PSTR("<font color=\"green\"><b>ОТКРЫТ</b></font>"):PSTR("<font color=\"red\">ЗАКРЫТ</font>"));
// bfill.emit_p(PSTR("<h2>3</h2>"));
// PinStatus[0]?PSTR("<font color=\"green\"><b>ОТКРЫТ</b></font>"):PSTR("<font color=\"red\">ЗАКРЫТ</font>"));
// bfill.emit_p(PSTR("<h2>ОКНО</h2>"));
// PinStatus[0]?PSTR("<font color=\"green\"><b>ОТКРЫТ</b></font>"):PSTR("<font color=\"red\">ЗАКРЫТ</font>"));
GetSwitchState(bfill, 2); // вызов функции работы с кнопкой (пин 2)
GetSwitchState(bfill, 3); // вызов функции работы с кнопкой (пин 3)
GetSwitchState(bfill, 4); // вызов функции работы с кнопкой (пин 4)
bfill.emit_p(PSTR("<button name=\"reset\">Перезагрузить Систему</button></div>"));
bfill.emit_p(PSTR("</form></body></html>"));
ether.httpServerReply(bfill.position()); // отправляем данные веб-страницы
}
}
// Функция работы с кнопкой
void GetSwitchState(BufferFiller bfill, int button_pin ) { // передаем вторым параметром номер пина, на которую посажена кнопка
if (digitalRead( 2 )) { // пин концевик окно
bfill.emit_p(PSTR(“
ОТКРЫТ
”)); // выводим состояние концевика} else {
bfill.emit_p(PSTR(“
ЗАКРЫТ
”)); // выводим состояние концевика}
if (digitalRead( 3 )) { // пин концевик дверь
bfill.emit_p(PSTR(“
ОТКРЫТ
”)); // выводим состояние концевика} else {
bfill.emit_p(PSTR(“
ЗАКРЫТ
”)); // выводим состояние концевика}
if (digitalRead( 4 )) { // пин концевик ворота
bfill.emit_p(PSTR(“
ОТКРЫТ
”)); // выводим состояние концевика} else {
bfill.emit_p(PSTR(“
ЗАКРЫТ
”)); // выводим состояние концевика}
}