Подскажите с чего начать и как подружить Arduino c сервисом

Проблемы/вопросы, связанные с запуском под различными платформами и конфигурациями.

Модератор: immortal

flair
Сообщения: 198
Зарегистрирован: Сб янв 16, 2016 12:18 am
Откуда: Минск
Благодарил (а): 16 раз
Поблагодарили: 15 раз

Re: Подскажите с чего начать и как подружить Arduino c серви

Сообщение flair » Пт янв 22, 2016 8:59 pm

как новичек новичку ))) свяжите через ethernet шилд - сразу решил кучу проблем за три копейки
kipishio
Сообщения: 7
Зарегистрирован: Ср янв 20, 2016 7:18 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Подскажите с чего начать и как подружить Arduino c серви

Сообщение kipishio » Пт янв 22, 2016 9:16 pm

странно у меня USB Devices вообще не видит ардуино, хотя я с ним могу спокойно работать через стандартный софт прога arduino...
kipishio
Сообщения: 7
Зарегистрирован: Ср янв 20, 2016 7:18 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Подскажите с чего начать и как подружить Arduino c серви

Сообщение kipishio » Пт янв 22, 2016 9:28 pm

flair писал(а):как новичек новичку ))) свяжите через ethernet шилд - сразу решил кучу проблем за три копейки
Да согласен но у меня нет ethernet шилда пока, заказыыать надо + дорога. но за совет спасибо учту
StryzhakA
Сообщения: 97
Зарегистрирован: Сб янв 23, 2016 3:57 pm
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: Подскажите с чего начать и как подружить Arduino c серви

Сообщение StryzhakA » Вс янв 24, 2016 1:29 pm

flair писал(а):как новичек новичку ))) свяжите через ethernet шилд - сразу решил кучу проблем за три копейки
А подскажите пожалуйста, как в их связать по езернет шилду. Я прочел кучу статей, прописал в скетче варианты гет-запросов, а в самом мажордомо настроить не могу.
спасибо
flair
Сообщения: 198
Зарегистрирован: Сб янв 16, 2016 12:18 am
Откуда: Минск
Благодарил (а): 16 раз
Поблагодарили: 15 раз

Re: Подскажите с чего начать и как подружить Arduino c серви

Сообщение flair » Вс янв 24, 2016 1:36 pm

Напишите ваши геты и што ардуина делает/меряет. Подскажу куда вписать
bat86
Сообщения: 80
Зарегистрирован: Пн ноя 30, 2015 10:20 pm
Благодарил (а): 25 раз
Поблагодарили: 6 раз

Re: Подскажите с чего начать и как подружить Arduino c серви

Сообщение bat86 » Вс янв 24, 2016 1:46 pm

Я настроил что у меня с датчиков движения приходит на ардуино гв /objects/?script=easyRF&did=1&dest=24&pid=17756&c=17756&d=-24821. Как мне настроить маджордомо чтоб он получал этот код и вызывал включение света? Кнопка на свет уже есть
flair
Сообщения: 198
Зарегистрирован: Сб янв 16, 2016 12:18 am
Откуда: Минск
Благодарил (а): 16 раз
Поблагодарили: 15 раз

Re: Подскажите с чего начать и как подружить Arduino c серви

Сообщение flair » Вс янв 24, 2016 2:22 pm

сккинте скетч.. что то у меня минусовух значений не было...

Код: Выделить всё

//MOVEMENT 1 SENSOR
  Serial.println("M1");
  int current_movement_1=digitalRead(8);
  //Serial.println(current_movement_1);
  if (current_movement_1!=(int)old_movement_1) {
    old_movement_1=(int)current_movement_1;
    sprintf(buf, "GET /objects/?object=sensorMovement1&op=m&m=statusChanged&status=%i HTTP/1.0", (int)current_movement_1);
    sendHTTPRequest();
  }
вот такая конструкция работает точно
судя по всему у Вас как то пытаетесь пустить скрипт.... то что я написал выше - опрашивает датчик и шлет в свойства объекта состояние(если оно изменилось), а свет собственно загорается после изменения состояния этого свойства... у меня заработало именно так.
bat86
Сообщения: 80
Зарегистрирован: Пн ноя 30, 2015 10:20 pm
Благодарил (а): 25 раз
Поблагодарили: 6 раз

Re: Подскажите с чего начать и как подружить Arduino c серви

Сообщение bat86 » Пн янв 25, 2016 1:15 pm

Я совсем новичок во всех этих делах. У меня висят датчики движения от сигнализации 433мгц. Удалось найти на форумах скетч чтобы с них приходили какие-то данные при движении. С маджордомо пока совсем сложно, не могу понять принцип, что как куда отсылать-получать. вторую неделю уже бьюсь)) Еслиб кто-то подробно описал такую систему, при которой в зависимости от срабатывания датчика загорается свет, было бы очень полезно.
flair
Сообщения: 198
Зарегистрирован: Сб янв 16, 2016 12:18 am
Откуда: Минск
Благодарил (а): 16 раз
Поблагодарили: 15 раз

Re: Подскажите с чего начать и как подружить Arduino c серви

Сообщение flair » Пн янв 25, 2016 1:50 pm

Скинте скетч.... Без него не понять что он шлет... И без этого хз как его регистрировать в Md
bat86
Сообщения: 80
Зарегистрирован: Пн ноя 30, 2015 10:20 pm
Благодарил (а): 25 раз
Поблагодарили: 6 раз

Re: Подскажите с чего начать и как подружить Arduino c серви

Сообщение bat86 » Пн янв 25, 2016 1:51 pm

Код: Выделить всё

#include <VirtualWire.h>
#include <EasyTransferVirtualWire.h>
#include <RCSwitch.h>
#include <EEPROM.h>

const int led_pin = 13;
const int receive_pin = 2;
unsigned int unique_device_id = 0;

RCSwitch mySwitch = RCSwitch();

//create object
EasyTransferVirtualWire ET; 
char buf[120];

struct SEND_DATA_STRUCTURE{
  //наша структура данны. она должна быть определена одинаково на приёмнике и передатчике
  //кроме того, размер структуры не должен превышать 26 байт (ограничение VirtualWire)
  unsigned int device_id;
  unsigned int destination_id;  
  unsigned int packet_id;
  byte command;
  int data;
};

//переменная с данными нашей структуры
SEND_DATA_STRUCTURE mydata;

//ниже пару функций для записи данных типа unsigned int в EEPROM
void EEPROMWriteInt(int p_address, unsigned int p_value)
      {
      byte lowByte = ((p_value >> 0) & 0xFF);
      byte highByte = ((p_value >> 8) & 0xFF);

      EEPROM.write(p_address, lowByte);
      EEPROM.write(p_address + 1, highByte);
      }

unsigned int EEPROMReadInt(int p_address)
      {
      byte lowByte = EEPROM.read(p_address);
      byte highByte = EEPROM.read(p_address + 1);

      return ((lowByte << 0) & 0xFF) + ((highByte << 8) & 0xFF00);
      }

void setup()
{
    pinMode(led_pin, OUTPUT);
    Serial.begin(9600); // Debugging only

    ET.begin(details(mydata));
    // Initialise the IO and ISR
    vw_set_rx_pin(receive_pin);
    vw_setup(2000);      // Bits per sec
    vw_rx_start();       // Start the receiver PLL running

  // Device ID
  Serial.print("Getting Device ID... "); 
  unique_device_id=EEPROMReadInt(0);
  if (unique_device_id<10000 || unique_device_id>60000) {
   Serial.print("N/A, updating... "); 
   unique_device_id=random(10000, 60000);
   EEPROMWriteInt(0, unique_device_id);
  }
  Serial.println(unique_device_id);
  // Receive
  mySwitch.enableReceive(0);  // Receiver on inerrupt 0 => that is pin #2

}

void loop()
{
    if(ET.receiveData())  // получили пакет данных, обрабатываем
    {
        digitalWrite(led_pin, HIGH);
        Serial.print("Got: ");
        Serial.print("Device ID: ");
        Serial.print(mydata.device_id);
        Serial.print(" Destination ID: ");
        Serial.print(mydata.destination_id);        
        Serial.print(" Packet ID: ");
        Serial.print(mydata.packet_id);
        Serial.print(" Command: ");
        Serial.print(mydata.command);
        Serial.print(" Data: ");
        Serial.print(mydata.data);
        Serial.println();
        digitalWrite(led_pin, LOW);
        sprintf(buf, "GET /objects/?script=easyRF&did=%u&dest=%u&pid=%u&c=%u&d=%i HTTP/1.0", (int)mydata.device_id, (int)mydata.destination_id, (int)mydata.packet_id, (int)mydata.command, (int)mydata.data);
        Serial.println(buf); // выводим строку со ссылкой для HTTP-запроса (здесь может быть добавлено использование ethernet-shield-а
        Serial.println();        
    }
    if (mySwitch.available()) {
      
      int value = mySwitch.getReceivedValue();
      
      if (value == 0) {
        Serial.print("Unknown encoding");
      } else {
        Serial.print("Received ");
        Serial.print( mySwitch.getReceivedValue() );
        Serial.print(" / ");
        Serial.print( mySwitch.getReceivedBitlength() );
        Serial.print("bit ");
        Serial.print("Protocol: ");
        Serial.println( mySwitch.getReceivedProtocol() );
        sprintf(buf, "GET /objects/?script=easyRF&did=%u&dest=%u&pid=%u&c=%u&d=%i HTTP/1.0", (int)mySwitch.getReceivedProtocol(), (int)mySwitch.getReceivedBitlength(), (int)mySwitch.getReceivedValue());
        Serial.println(buf); // выводим строку со ссылкой для HTTP-запроса (здесь может быть добавлено использование ethernet-shield-а

      }

      mySwitch.resetAvailable();
    }
}
Впринципе я понимаю что там половина наверного лишнего, не пинайте сильно. Я только начинаю, хорошо разбираюсь в HTML, CSS и JS, а вот с++ и пхп пока только начинаю изучать
Ответить