Как передать переменные a и b полученные JS от сайта на Arduino?

walkersfreelance
Offline
Зарегистрирован: 22.11.2019

Всем доброго времени суток, допустим есть сайт demo.ru. Как сделать так чтобы, сайт отправлял допустим значения 1 и 5, то arduino получал эти значения. Подключение идёт по USB.

walkersfreelance
Offline
Зарегистрирован: 22.11.2019

Или как сделать чтобы каждую 1 минуту отправлялся GET запрос допустим demo.ru/test.php?check=get

Ответ допустим: 1 5, ардуино это видит и прописывает у себя в переменных 1 и 5

Вот код, где числовые значения вводятся в консоли


/*

Формат ввода параметров      а,b

a - мощность                  0 - 255
b - время работы (в секундах) 0 - 600

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

*/

#define MOTOR    11

String inputString = "";
boolean stringComplete = false;

int pwm_val = 0;
int time_val = 0;

int interval = 1000;

void setup()
{
 

  Serial.begin(9600);
}

void loop()
{
  if (stringComplete)
  {
    inputString = "";
    stringComplete = false;
  }


  static unsigned long time;
  if ((millis() - time) > interval)
  {
    time_val --;

    if (time_val <= 0)
    {
      time_val = 0;
      pwm_val = 0;
    }
    time = millis();
  }

  Serial.print(pwm_val);
  Serial.print("   ");
  Serial.println(time_val);

  ////////////  мотор  ///////////////

  analogWrite(MOTOR, pwm_val);
}

//////////////////////////////////////////////////////
//////////////////////////////////////////////////////

void serialEvent()
{
  while (Serial.available())
  {
    char inChar = (char)Serial.read();
    inputString += inChar;

    if (inChar == '\n')
    {
      stringComplete = true;
    }

    String part01 = getValue(inputString, ',', 0);
    String part02 = getValue(inputString, ',', 1);


    pwm_val = part01.toInt();
    pwm_val = constrain(pwm_val, 0, 254);
    time_val = part02.toInt();
    time_val = constrain(time_val, 0, 600);
  }
}



/////// функция для парсинга массива  //////////////

String getValue(String data, char separator, int index)
{
  int found = 0;
  int strIndex[] = {0, -1};
  int maxIndex = data.length() - 1;

  for (int i = 0; i <= maxIndex && found <= index; i++)
  {
    if (data.charAt(i) == separator || i == maxIndex)
    {
      found++;
      strIndex[0] = strIndex[1] + 1;
      strIndex[1] = (i == maxIndex) ? i + 1 : i;
    }
  }
  return found > index ? data.substring(strIndex[0], strIndex[1]) : "";
}


 

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

Это точно не для "Песочницы"?

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

Ардуино ничего не может видеть и прописывать. За этим к терапевту в поликлинику - там пропишут, если увидят.

Спрашиваете о путях решения инженерной задачи - объясняйтесь соответственно.

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

walkersfreelance пишет:

Всем доброго времени суток, допустим есть сайт demo.ru. Как сделать так чтобы, сайт отправлял допустим значения 1 и 5, то arduino получал эти значения. Подключение идёт по USB.

по USB ардуина в сеть выходить не умеет, так что ответ на этот конкретный вопрос - НИКАК

Вам надо подключить ардуину к интернет через сетевой кабель или по вайфай - для этого взять соответвующий модуль либо плату с Вайфай интерфейсом

negavoid
Offline
Зарегистрирован: 09.07.2016

Ну, строго говоря, в сеть умеет выходить комп, к которому ардуина подключена по usb, так что передать-получить значения всё-таки можно, но это уже вопрос не к ардуине.