Подскажите с чего начать и как подружить Arduino c сервисом
Модератор: immortal
-
- Сообщения: 198
- Зарегистрирован: Сб янв 16, 2016 12:18 am
- Откуда: Минск
- Благодарил (а): 16 раз
- Поблагодарили: 15 раз
Re: Подскажите с чего начать и как подружить Arduino c серви
как новичек новичку ))) свяжите через ethernet шилд - сразу решил кучу проблем за три копейки
Re: Подскажите с чего начать и как подружить Arduino c серви
странно у меня USB Devices вообще не видит ардуино, хотя я с ним могу спокойно работать через стандартный софт прога arduino...
Re: Подскажите с чего начать и как подружить Arduino c серви
Да согласен но у меня нет ethernet шилда пока, заказыыать надо + дорога. но за совет спасибо учтуflair писал(а):как новичек новичку ))) свяжите через ethernet шилд - сразу решил кучу проблем за три копейки
-
- Сообщения: 97
- Зарегистрирован: Сб янв 23, 2016 3:57 pm
- Благодарил (а): 3 раза
- Поблагодарили: 1 раз
Re: Подскажите с чего начать и как подружить Arduino c серви
А подскажите пожалуйста, как в их связать по езернет шилду. Я прочел кучу статей, прописал в скетче варианты гет-запросов, а в самом мажордомо настроить не могу.flair писал(а):как новичек новичку ))) свяжите через ethernet шилд - сразу решил кучу проблем за три копейки
спасибо
-
- Сообщения: 198
- Зарегистрирован: Сб янв 16, 2016 12:18 am
- Откуда: Минск
- Благодарил (а): 16 раз
- Поблагодарили: 15 раз
Re: Подскажите с чего начать и как подружить Arduino c серви
Напишите ваши геты и што ардуина делает/меряет. Подскажу куда вписать
-
- Сообщения: 80
- Зарегистрирован: Пн ноя 30, 2015 10:20 pm
- Благодарил (а): 25 раз
- Поблагодарили: 6 раз
Re: Подскажите с чего начать и как подружить Arduino c серви
Я настроил что у меня с датчиков движения приходит на ардуино гв /objects/?script=easyRF&did=1&dest=24&pid=17756&c=17756&d=-24821. Как мне настроить маджордомо чтоб он получал этот код и вызывал включение света? Кнопка на свет уже есть
-
- Сообщения: 198
- Зарегистрирован: Сб янв 16, 2016 12:18 am
- Откуда: Минск
- Благодарил (а): 16 раз
- Поблагодарили: 15 раз
Re: Подскажите с чего начать и как подружить Arduino c серви
сккинте скетч.. что то у меня минусовух значений не было...
вот такая конструкция работает точно
судя по всему у Вас как то пытаетесь пустить скрипт.... то что я написал выше - опрашивает датчик и шлет в свойства объекта состояние(если оно изменилось), а свет собственно загорается после изменения состояния этого свойства... у меня заработало именно так.
Код: Выделить всё
//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();
}
судя по всему у Вас как то пытаетесь пустить скрипт.... то что я написал выше - опрашивает датчик и шлет в свойства объекта состояние(если оно изменилось), а свет собственно загорается после изменения состояния этого свойства... у меня заработало именно так.
-
- Сообщения: 80
- Зарегистрирован: Пн ноя 30, 2015 10:20 pm
- Благодарил (а): 25 раз
- Поблагодарили: 6 раз
Re: Подскажите с чего начать и как подружить Arduino c серви
Я совсем новичок во всех этих делах. У меня висят датчики движения от сигнализации 433мгц. Удалось найти на форумах скетч чтобы с них приходили какие-то данные при движении. С маджордомо пока совсем сложно, не могу понять принцип, что как куда отсылать-получать. вторую неделю уже бьюсь)) Еслиб кто-то подробно описал такую систему, при которой в зависимости от срабатывания датчика загорается свет, было бы очень полезно.
-
- Сообщения: 198
- Зарегистрирован: Сб янв 16, 2016 12:18 am
- Откуда: Минск
- Благодарил (а): 16 раз
- Поблагодарили: 15 раз
Re: Подскажите с чего начать и как подружить Arduino c серви
Скинте скетч.... Без него не понять что он шлет... И без этого хз как его регистрировать в Md
-
- Сообщения: 80
- Зарегистрирован: Пн ноя 30, 2015 10:20 pm
- Благодарил (а): 25 раз
- Поблагодарили: 6 раз
Re: Подскажите с чего начать и как подружить Arduino c серви
Код: Выделить всё
#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();
}
}