Управление воротами через web сервер

Тема в разделе "Arduino & Shields", создана пользователем Draku1a551, 11 янв 2020.

  1. Draku1a551

    Draku1a551 Нуб

    Добрый день.

    Помогите пожалуйста с таким вопросом. Я хочу управлять воротами от гаража с помощью смартфона через web интерфейс. Идея такая: у меня есть arduino nano, nano ethernet shield v1.0 и передатчик 433мгц. Я хочу заходить по ip на web страничку там нажимать нужную кнопку из списка с воротами(у меня несколько ворот на участке), и ардуинка отправляла бы сигнал на их открытие. Как считать код с брелка и как отпарвлять коды с помощью передатчика 433 я разобрался. Я застрял на том что нужно создать web страничку с кнопками которые будут отправлять команду на открытие ворот. По моей идее нужно просто создать web сервер по ip адресу например 192.168.1.10, я настрою доступ к этому ip через внешний ip, чтобы вне локальной сети заходить и таким образом управлять всем этим делом.

    Я нашел похожий проект но только с управлением через bluetooth модуль. Я так понимаю что к нему нужно просто дописать код web странички которая будет отправлять необходимое число а incomingByte его считывает и отправляет нужную команду на передатчик 433мгц. Вот только как нужным образом изменить данный проект я не могу разобраться, я новичок в этом деле может кто помочь?

    вот скетч на управление через bluetooth:
    Код (C++):
    #define txPin 2
    #define Te 320
    unsigned long incomingByte;
    void setup(){
      pinMode(txPin, OUTPUT);
      Serial.begin(9600);
    Serial.setTimeout(4);
    }
    void loop()
    {
      if (Serial.available() > 0) {
    incomingByte = Serial.parseInt();
    if(incomingByte == 1) SendCame(0b100010001111) ;
    if(incomingByte == 2) SendCame(0b100010001110) ;
    if(incomingByte == 3) SendCame(0b100010001100) ;
    if(incomingByte == 4) SendCame(0b100110001100) ;
    if(incomingByte == 5) SendCame(0b101010001100) ;
    if(incomingByte == 6) SendCame(0b110010001100) ;
    if(incomingByte == 7) SendCame(0b100010101100) ;
    if(incomingByte == 8) SendCame(0b100001010100) ;
    if(incomingByte == 9) SendCame(0b100010001111) ;
    if(incomingByte == 10) SendCame(0b100010001110) ;
    if(incomingByte == 11) SendCame(0b100010001100) ;
    if(incomingByte == 12) SendCame(0b100110001100) ;
    if(incomingByte == 13) SendCame(0b101010001100) ;
    if(incomingByte == 14) SendCame(0b110010001100) ;
    if(incomingByte == 15) SendCame(0b100010101100) ;
    if(incomingByte == 16) SendCame(0b100001010100) ;
    }
    }
    void SendCameBit(byte b)
    {
      delayMicroseconds(Te);
      if (!b) digitalWrite(txPin,HIGH);
      delayMicroseconds(Te);
      digitalWrite(txPin,HIGH);
      delayMicroseconds(Te);
      digitalWrite(txPin,LOW);
    }
    void SendCame(long Code)
    {    
      for (int j=0;j<5;j++) // посылку посылаем как и брелок - 4 раза подряд.
      {
        digitalWrite(txPin,HIGH);
        delayMicroseconds(Te);
        digitalWrite(txPin,LOW);// посылаем стартовый импульс
       
        for (byte i=12;i>0;i--){
          SendCameBit(bitRead(Code, i-1)); // побитово перебираем и посылаем код
        }
        delay(16);
      }
      delay(2000); // сделать паузу после посылки на 2 с
    }
     
  2. NikitOS

    NikitOS Король шутов Администратор

    А таки что нужно от нас?
    Код написать? Это в раздел «Закажу проект» с денежкой.
     
  3. Slaiterx

    Slaiterx Гик