Не могу понять в чём проблема

bod9I
Offline
Зарегистрирован: 23.04.2016
#include <SPI.h>
#include <Ethernet.h>
#include "DHT.h"

#define DHTPIN 2

//выбор используемого датчика
#define DHTTYPE DHT11

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // Мак адрес
byte ip[] = { 192, 168, 1, 177 }; // IP адрес (В броузере вводим 192.168.0.2)
EthernetServer server(80);

int numPins = 2;
int pins[] = { 3, 4, };    // Пины для реле
int pinState[] = {0, 0 };  // Состояние реле
const int button1Pin = 11;  // Пины кнопок
const int button2Pin = 12;
int button1State = 0;
int button2State = 0;

DHT dht(DHTPIN, DHTTYPE);

void setup()
{
  // Изначально выключаем все реле
  for (int i = 0; i < numPins; i++)
  {
    pinMode(pins[i], OUTPUT);
    digitalWrite(pins[i], 1);
    pinMode(button1Pin, INPUT);
    pinMode(button2Pin, INPUT);
  }
  
  Serial.begin(9600);
  Ethernet.begin(mac, ip);
  server.begin();

    dht.begin();
}

void loop()
{
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  button1State = digitalRead(button1Pin);
  button2State = digitalRead(button2Pin);

  if (button1State == HIGH) {
    digitalWrite(pinState[1], HIGH)
     } 
     else { 
    digitalWrite(pinState[1], LOW)
  }
  if (button2State == HIGH){
    digitalWrite(pinState[2], HIGH)
     } 
     else {  
    digitalWrite(pinState[2], LOW)
  }     //здесь проблема. expected ';' before '}' token
  
  EthernetClient client = server.available();
  if (client) {
    // Проверяем подключен ли клиент к серверу
    while (client.connected())
    {
      // Проверяем идет ли запрос к серверу
      int dataCount = client.available();
      if (dataCount > 0)
      {
        // Считываем данные передаваемые серверу с клиента (броузера)
        for (int i = 0; i < dataCount; i++)
        {
          char ch = client.read();
          // Если данные передаются, то они будут переданы POST запросом, который начинается с символа 'P'
          if (i == 0 && ch != 'P')
            break;
          if (ch == '\n' && i < dataCount - 1)
          {
             // Находим строку, в которой содержатся передаваемые данные
             char chNext = client.read();
             // Формат строки r2=on&r3=on&r4=on (Пример если нужно включены 2,3,4 реле)
             if (chNext == 'r')
             {
               // Выключаем все реле
               pinState[1] = 0;
               pinState[2] = 0;
               // Считываем первый номер реле, который нужно включить
               char relayNum = client.read();
               pinState[relayNum-'0'] = 1;
               Serial.write(relayNum);
               
               // Считываем вспомогательную информацию (=on&)
               relayNum = client.read();
               relayNum = client.read();
               relayNum = client.read();
               relayNum = client.read();
                
               // Пока есть данные об остальных реле, считываем и заносим в массив pinState
               while (relayNum != -1)
               {
                  relayNum = client.read();
                  relayNum = client.read();
                  pinState[relayNum-'0'] = 1;
                  Serial.write(relayNum);
                  relayNum = client.read();
                  relayNum = client.read();
                  relayNum = client.read();
                  relayNum = client.read();
               }
             } else
             {
                // Если не было передано данных, то выключаем все реле
                pinState[1] = 0;
                pinState[2] = 0;
             }
          }
        }
      }
      
      // В соответствие с переданными данными включаем реле
      for (int i = 0; i < 4; i++)
      {
         digitalWrite(pins[i], !pinState[i]);
      }
      
      // Выводим HTML страницу, на которой пользователь может включить или выключить нужные ему реле
      client.println("HTTP/1.1 200 OK");
      client.println("Content-Type: text/html");
      client.println();
      client.println("<html>");
      client.println("<head>");
      client.println("<title>Relay module.</title>");
      client.println("</head>");
      client.println("<body>");
      client.println("<h3>Relay module.</h3>");
      client.println("<form method='post'>");
      client.print("<div>Relay 1 <input type='checkbox' ");
      if (pinState[1] == 1)
        client.print("checked");
      client.println(" name='r1'></div>");
      client.print("<div>Relay 2 <input type='checkbox' ");
      if (pinState[2] == 1)
        client.print("checked");
      client.println(" name='r2'></div>");
      client.print("<H1>temp</H1>");
      client.print("<H2>");
      client.print(t);
      client.print("</H2>");
      client.print("<H1>vlaga</H1>");
      client.print("<H2>");
      client.print(h);
      client.print("</H2>");
      client.println("<input type='submit' value='ok'>");
      client.println("</form>");
      client.println("</body>");
      client.println("</html>");
      client.stop(); 
    }
  }
}

 

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

bod9I пишет:
Не могу понять в чём проблема

Как говорилось в известной рекламе: "Вот, и я не смогла" :((((

Не хотите написать, в чём проблема-то?

UPD: О!!! Спасибо Архату, он не поленился вычитать код и найти в середине комментарий о сути проблемы (то, что автор поленился нормально описать вне кода).

ТС, хотите я открою Вам маленький секрет большого программирования? Вы пишете, что Ваша проблема

//здесь проблема. expected ';' before '}' token

так вот, когда проблема состоит в том, что перед '}' ожидается ';', то для её решения нужно поставить ';' перед '}'. Вы не пробовали? Попробуйте.

 

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Так автор ужеж отписался что не в состоянии понять в чем она .. как же он отпишется? А как же Хрустальные Шары форумчан, опять батарейки подсели? :)

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Мой ХШ подсказывает что проблема с переводом сообщения компилятора: "//здесь проблема. expected ';' before '}' token" :)