Нужна помощь со скетчем

AndreyKras
Offline
Зарегистрирован: 21.12.2017

Друзья, попросил одного хорошего и знающего человека написать скетч для arduino (с шилдом W5100). Суть его проста - он дублирует функции сигнализации. Слушает датчики на частоте 433 и, в случае сработки одного из них включает сирену. Под этот функционал заточен проект на Blynk.
Так вот, я его залил, но в сети его не вижу. Автор проверить не может за неимением ардуино. 
Проверьте на наличие ошибок...



/*************************************************************
  Download latest Blynk library here:
    https://github.com/blynkkk/blynk-library/releases/latest

  Blynk is a platform with iOS and Android apps to control
  Arduino, Raspberry Pi and the likes over the Internet.
  You can easily build graphic interfaces for all your
  projects by simply dragging and dropping widgets.

    Downloads, docs, tutorials: http://www.blynk.cc
    Sketch generator:           http://examples.blynk.cc
    Blynk community:            http://community.blynk.cc
    Follow us:                  http://www.fb.com/blynkapp
                                http://twitter.com/blynk_app

  Blynk library is licensed under MIT license
  This example code is in public domain.

 *************************************************************

  You’ll need:
   - Blynk App (download from AppStore or Google Play)
   - NodeMCU board
   - Decide how to connect to Blynk
     (USB, Ethernet, Wi-Fi, Bluetooth, ...)

  There is a bunch of great example sketches included to show you how to get
  started. Think of them as LEGO bricks  and combine them as you wish.
  For example, take the Ethernet Shield sketch and combine it with the
  Servo example, or choose a USB sketch and add a code from SendData
  example.
 *************************************************************/

/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial

#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>
#include <RCSwitch.h>
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).

const byte SRX=0; //пин приемника
const byte STX=4; //пин передатчика
const byte COUNT_CODES=9; //количество кодов

char auth[] = "YourAuthToken"; //получишь при первом подключении к серверу

#define W5100_CS  10
#define SDCARD_CS 4
char* CodeName[COUNT_CODES]={"Окно", "Дверь", "Ещё", "что", "нибудь", "надо", "вписать", "сюда"}; //имена датчиков

int ArmEnable=0; 
int codes[COUNT_CODES];
int AlarmActive=0;
long ARunMillis;
int ARunTime=10*60*1000; //задержка выключения сирены 10 минут
RCSwitch mySwitch = RCSwitch();
WidgetLCD lcd(V20);

void setup()
{
  //коды датчиков
  codes[0]=10541022;
  codes[1]=8656862;
  codes[2]=11521290;
  codes[3]=357635;
  codes[4]=11435278;
  codes[5]=452574;
  codes[6]=1692350;
  codes[7]=8657928;
  codes[8]=10646536;
  pinMode(SDCARD_CS, OUTPUT);
  digitalWrite(SDCARD_CS, HIGH);
  
  // Debug console
  Serial.begin(9600);
  Blynk.begin(auth);
  mySwitch.enableReceive(SRX);
  mySwitch.enableTransmit(STX);
  // You can also specify server:
  //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 8442);
  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8442);
}

void loop()
{
  Blynk.run();
  if(ArmEnable==1) {
  // You can inject your own code or combine it with other sketches.
  // Check other examples on how to communicate with Blynk. Remember
  // to avoid delay() function!
  if (mySwitch.available()) { 
    int value = mySwitch.getReceivedValue();
    Blynk.virtualWrite(20, value);
    if (value != 0) { 
      for(int i = 0; i<= COUNT_CODES; i++) {
        if(codes[i]==mySwitch.getReceivedValue()) {
          runAlarm(1);
          Blynk.virtualWrite(20, i+1);
          Blynk.virtualWrite(21, CodeName[i]);
        }
      }
    }
    mySwitch.resetAvailable();
  }
  if (AlarmActive==1 && (ARunMillis+ARunTime)<=millis()) runAlarm(0);
  Blynk.virtualWrite(10, AlarmActive);
  } else {
    mySwitch.resetAvailable();
  }
}

void runAlarm(int state)
{
  if (state==1) {
    mySwitch.send(11350532, 24);
    ARunMillis=millis();
  } else {
    mySwitch.send(11350529 , 24);
  }
  AlarmActive=state;
}

BLYNK_CONNECTED() {
  // Request the latest state from the server
  Blynk.syncVirtual(V1);
  Blynk.syncVirtual(V10);
  // Alternatively, you could override server state using:
  //Blynk.virtualWrite(V2, ledState);
}

BLYNK_WRITE(V1) {
  ArmEnable = param.asInt();
}

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Автору денег наобещал и кинул, а мы теперь разбирайся?  В ином случае, не вижу сложностей привести автора к ардуино и применить к нему полторашку пива.  Всё и решица. 

MaksVV
Offline
Зарегистрирован: 06.08.2015

Строка 048 там нужно писать ваш ID код. Его нужно получить при регистрации в blynk либо в приложении blynk

AndreyKras
Offline
Зарегистрирован: 21.12.2017

Не нужно судить по себе. Конечно, никто никого не кидал. Все оплачено. И пива не жалко. Одно но... он в Ёбурге, я в Краснодаре. 
Я бы и тут заплатил умельцам. Только не за пустые комменты.

AndreyKras
Offline
Зарегистрирован: 21.12.2017

Да, это исходный код, который он мне дал. Я туда, перед прошивкой, вставляю свой токен. Но все-равно сеть ардуинку не видит. Ошибка где-то в начале кода.Чего-то не хватает.  Только сам я так и не смог понять - где именно...

MaksVV
Offline
Зарегистрирован: 06.08.2015

я долго мучился когда приложение blynk на андроиде пытался соединить со связкой  блютуз-ардуино. В итоге нужно было кроме всяких кнопок ещё и виджет bluetooth добавить на экран, после этого заработало. Может что-то подобное у вас. Но с эзернетом в блинке не подскажу, не имел дело. Смотрите ip, нормер порта, настройки может в роутере какие нибудь.