а они какието породистые, или уже "олл инклюзив" природой?aftaev писал(а):далее когда термофилы расплодились
Мои проекты на Ардуино
- Тима
- Почётный участник
- Сообщения: 3162
- Зарегистрирован: 01 мар 2012, 20:47
- Репутация: 1089
- Настоящее имя: Тимур
- Откуда: КБР
- Контактная информация:
Re: Мои проекты на Ардуино
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Я все пойму, Вы только дайте денег!!!
Re: Мои проекты на Ардуино
-
- Зачётный участник
- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6191
- Откуда: Казахстан.
- Контактная информация:
Re: Мои проекты на Ардуино
это природа. от разны параметров таких как О2, рН, влажность температура будет зависить что вырастит нужные культуры иль не нужные.2cme писал(а):а они какието породистые, или уже "олл инклюзив" природой?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- Тима
- Почётный участник
- Сообщения: 3162
- Зарегистрирован: 01 мар 2012, 20:47
- Репутация: 1089
- Настоящее имя: Тимур
- Откуда: КБР
- Контактная информация:
Re: Мои проекты на Ардуино
Может чуть опоздал, тут говорится о значениях после запятой... http://habrahabr.ru/post/110610/
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Я все пойму, Вы только дайте денег!!!
-
- Зачётный участник
- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6191
- Откуда: Казахстан.
- Контактная информация:
Re: Мои проекты на Ардуино
Пришла еще одна ардуина Пришлось малость повозиться чтоб она заработала. Продавец дает примеры под другу плату и экран
С таким экраном куды приятней Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- Rafiq
- Мастер
- Сообщения: 1053
- Зарегистрирован: 28 сен 2012, 18:11
- Репутация: 6
- Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
- Контактная информация:
Re: Мои проекты на Ардуино
Ардуино конечно хорошо для быстрого старта, но устройства на них клепать дороговато будет.
-
- Зачётный участник
- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6191
- Откуда: Казахстан.
- Контактная информация:
Re: Мои проекты на Ардуино
для меня это дешево.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
-
- Зачётный участник
- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6191
- Откуда: Казахстан.
- Контактная информация:
Re: Мои проекты на Ардуино
Следующий проектик нужно сделать
Задаем направление, длину пути, скорость. Пуск - ось проехала.
Ось должна разогнаться - выйти на нужную скорость - торможение.
Контроллер на базе Ардуино выдает сигналы step/dir
Задаем в настройках(константах) как в ЧПУ:
1. кол-во шагов/мм
2. макс. скорость
3. ускорение
Вот как то так
Сложность расчет разгона и торможения. Нашел статейку как это все просто делается http://fab.cba.mit.edu/classes/MIT/961. ... rofile.pdf
Нашел какую то библиотеку http://www.open.com.au/mikem/arduino/AccelStepper/
рою дальше
односевой ЧПУ
Задача:Задаем направление, длину пути, скорость. Пуск - ось проехала.
Ось должна разогнаться - выйти на нужную скорость - торможение.
Контроллер на базе Ардуино выдает сигналы step/dir
Задаем в настройках(константах) как в ЧПУ:
1. кол-во шагов/мм
2. макс. скорость
3. ускорение
Вот как то так
Сложность расчет разгона и торможения. Нашел статейку как это все просто делается http://fab.cba.mit.edu/classes/MIT/961. ... rofile.pdf
Нашел какую то библиотеку http://www.open.com.au/mikem/arduino/AccelStepper/
рою дальше
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
-
- Зачётный участник
- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6191
- Откуда: Казахстан.
- Контактная информация:
Re: Мои проекты на Ардуино
Написал за пол часика простой осциллограф для Ардуины 2560 с TFT экраном.
Осциллограф чувствительный, но до 5в , но очень медлительный. Весь экран прорисовывается за 15 сек, что не очень быстро . Если убрать вывод цифровых чисел и передачу данных в СОМ будет шустрее работать шустрее намного, примерно 1-3 сек заполняться экран.
Код здесь Написал для медленных процессов, а именно отладки THC на плазму
Осциллограф чувствительный, но до 5в , но очень медлительный. Весь экран прорисовывается за 15 сек, что не очень быстро . Если убрать вывод цифровых чисел и передачу данных в СОМ будет шустрее работать шустрее намного, примерно 1-3 сек заполняться экран.
Код здесь Написал для медленных процессов, а именно отладки THC на плазму
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
-
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: Мои проекты на Ардуино
Ты точками рисуй. Будет быстрее.aftaev писал(а):Осциллограф чувствительный, но до 5в , но очень медлительный. Весь экран прорисовывается за 15 сек,
-
- Зачётный участник
- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6191
- Откуда: Казахстан.
- Контактная информация:
Re: Мои проекты на Ардуино
С начало сделал именно точками. Если точками, то график рваный получается при скачках напряжения и не понятно как напруга прыгала.Impartial писал(а):Ты точками рисуй. Будет быстрее.
Сравнивал что точками, что линиями разницы большой нет для моих задач. Когда амплитуда сигнала растет экран медленнее прорисовыет конечно. Больше всего времени занимает вывод значений вольт на экран, и передача в СОМ (если их закоментить будет шустро).
Мне нужно чтобы линия на экране Ардуины рисовалась примерно с той же скоростью что режим на плазме. Скорость резки в опытах 1000мм/мин
Шустро мне как раз не нужно
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
-
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: Мои проекты на Ардуино
Точками конечно, рваная будет. Но понять можно.
А какой режим? Как ездит или какие то параметры дуги?aftaev писал(а):Мне нужно чтобы линия на экране Ардуины рисовалась примерно с той же скоростью что режим на плазме.
-
- Зачётный участник
- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6191
- Откуда: Казахстан.
- Контактная информация:
Re: Мои проекты на Ардуино
Пока занимаемся измерениями. Мне нужно было записывать вольты после делителя/фильтров и писать в файл чтобы посмотреть что происходит на краю листа, когда дуга через рез проходит, разный ток, разные расходники, старые/новые расходники итд..Impartial писал(а):А какой режим?
Осциллограф Что я урвал, хвастаемся покупками, завидуем и облизываемся #66 такие чудеса рисует
Есть 4 разных плазмы, с разным принципом работы, будем обкатывать.
На портал прицепили и он таскает плазматрон. Испытываем на ровном и гнутом листе.Impartial писал(а):Как ездит или какие то параметры дуги?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
-
- Мастер
- Сообщения: 387
- Зарегистрирован: 28 мар 2013, 07:40
- Репутация: 117
- Настоящее имя: Сергей
- Откуда: Первоуральск
- Контактная информация:
Re: Мои проекты на Ардуино
Подниму-ка старую, но интересную тему
Сразу скажу, что собирать именно осциллограф на ардуино я не собирался, но раз уж попались мне все ингредиенты- почему не попробовать?
Хочу собрать систему а-ля "Умный дом". Задача минимум на данный момент - собрать статистику энергопотребления в доме и на её базе автоматизировать управление электроприборами (в автомат. режиме или удалённо, через веб-морду). Ну - это в обозримом будущем. Не о том сейчас.
Вот эти ингредиенты:
- ардуино мега 2560
- TFT LCD экранчик, 2.4", на контроллере st7783: - датчик тока на элементе ACS712-20А (вот тут брал: http://www.ebay.com/itm/1pcs-new-20A-ra ... 51c48706bb)
Ну и для тестов - нагрузка в виде утюга и автомобильного зарядного с аккумулятором
Получился такой вот код:
Собирался использовать тачскрин - сделать кнопки для обновления и для масштабирования графика по высоте, но тачскрин не захотел работать в том же чипе, что и прерывание по таймеру TimerOne. Точнее - если делать прерывание больше 1000 микросекунд - тогда тач начинает кое-как работать, но тут уже лучше кнопками пожертвовать, чем частотой измерений.
Ну и фото того что получилось: Сначала в качестве нагрузки - утюг: Где-то читал, что современные импульсные блоки питания (компы и прочая бытовая техника) срезают верхушку синусоиды. Здесь на маленьком экранчике не очень хорошо видно, а в экселе когда график строишь из полученных данных - видно срезанную верхушку.
Далее в качестве нагрузки - автомобильное зарядное с аккумулятором:
aftaev - с Вашего позволения напишу свой пост здесь, отдельную тему поднимать не вижу смысла. Если против - можете выделить в новую тему.
Итак, предлагаю вашему вниманию новую модель относительно быстрого осциллографа - частота снятия показаний - до 280 микросекунд.Сразу скажу, что собирать именно осциллограф на ардуино я не собирался, но раз уж попались мне все ингредиенты- почему не попробовать?
Хочу собрать систему а-ля "Умный дом". Задача минимум на данный момент - собрать статистику энергопотребления в доме и на её базе автоматизировать управление электроприборами (в автомат. режиме или удалённо, через веб-морду). Ну - это в обозримом будущем. Не о том сейчас.
Вот эти ингредиенты:
- ардуино мега 2560
- TFT LCD экранчик, 2.4", на контроллере st7783: - датчик тока на элементе ACS712-20А (вот тут брал: http://www.ebay.com/itm/1pcs-new-20A-ra ... 51c48706bb)
Ну и для тестов - нагрузка в виде утюга и автомобильного зарядного с аккумулятором
Получился такой вот код:
Код: Выделить всё
#include <Adafruit_GFX.h> // Core graphics library
#include "SWTFT.h" // Hardware-specific library
#include <TimerOne.h> //используем Timer1 для прерываний по времени
// Assign human-readable names to some common 16-bit color values:
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define DARKRED 0x2020
#define GREEN 0x07E0
#define DARKGREEN 0x2121
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
SWTFT tft;
int ACS712 = A8; // select the input pin for an ACS712-20
int Uopornoe;// = A15; // select the input pin for a reference voltage
const int k=160; // k - кол-во записей в массив.
const int numReadings = 30; // numReadings - кол-во данных в фильтре.
boolean trig, resize;
volatile long PintTic=0; // счетчик периодов
volatile int CurA0; // Ток текущий
volatile int CurA0max; // Ток маскимальный
volatile long CurA0calcMax; // Ток маскимальный за весь период
volatile int CurA0min; // Ток минимальный
volatile long CurA0calcMin; // Ток минимальный за весь период
volatile int ymax=256, ymin=-256; // значения для масштабирования графика и сетки
float CurA0calcMid; // Ток средний (среднеквадратичное от CurA0calcMax и CurA0calcMin)
volatile int val_a[501]; //Массив значений A0 в прерываниях
volatile int val_a2[501]; //Массив значений времени в прерываниях
volatile int val_Uo[501]; //Массив значений опорного напряжения прерываниях
volatile long val_t[501]; //Массив значений времени в прерываниях
volatile int nb[501]; //Массив для учета номера итерации
volatile int i, z, c, v;
int scr_out, x1=0, x2=1, y1=120, y2=120;
// Переменные для фильтра
float readings[numReadings]; // the readings from the analog input
float total = 0; // the running total
float average = 0; // the average
float A0_current;
unsigned long previousMillis = 0; // will store last time LED was updated
const long interval = 6000; // interval at which to blink (milliseconds)
void setup(void) {
Serial.begin(9600); //поднимаем соединение для передачи на терминал
// Инициализация данных в массиве фильтра в 0:
for (int thisReading = 0; thisReading < numReadings; thisReading++)
readings[thisReading] = 0;
tft.reset();
uint16_t identifier = tft.readID();
Serial.print(F("LCD driver chip: "));
Serial.println(identifier, HEX);
tft.begin(identifier);
tft.setRotation(1);
//рисуем сетку
Grid();
// Запуск таймера
Timer1.initialize(400); // Интервал срабатывания таймера в мкс
Timer1.attachInterrupt(current_meter); //будет вызываться каждый раз при отсчете заданного времени
}
void loop(void) {
// Закрашиваем чёрным предыдущее значение тока:
tft.setCursor(96, 4);
tft.setTextColor(BLACK); tft.setTextSize(1);
tft.println(A0_current,2);
tft.setCursor(222, 4);
tft.print(average,2);
unsigned long currentMillis = millis();
if(currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
Grid();
scr_out = 0;
x1=0; x2=1; y1=120,y2=120;
while (scr_out <= k) {
// Ноль координат - в верхнем левом углу экрана!!! Вынос мозга...
y2 = map(val_a2[scr_out], ymin, ymax, 240, 0);
tft.drawLine(x1, y1, x2, y2, GREEN);
x1 = x2;
y1 = y2;
x2 = x2 + (tft.width()/k);
/*
Serial.print(scr_out);//
Serial.print(" , ");//
Serial.print(val_a2[scr_out]);//
Serial.println("");//
*/
scr_out++;
}
// Данный триггер сбросится только после заполнения буфера новыми данными в прерывании current_meter
trig = true;
}
CurA0calcMid = sqrt((sq(CurA0calcMax)+sq(CurA0calcMin))/2);
/*
Измеряем максимальный и минимальный пики синусоиды. Затем находим их среднеквадратичное значение.
пик = sqrt( ( (пик мин)^2 + (пик макс)^2 )/2 ) [маш.ед.]
Далее это значение (в машинных единицах - 0-1023) переводим в напряжение:
напряж. = (пик / 1023)*5 [Вольт]
Чувствительность ACS712-20 равна 100 милиВольт/Ампер = 0,1В/А (см. даташит на ACS), отсюда:
ток ампл. = напряж. / Чувствит. = напряж / 0,1 = напряж * 10 [Ампер]
Ток средний - это ток ампл., поделенный на корень из 2:
ток средний = ток ампл. / sqrt(2) = ток ампл. * 0,707 [Ампер]
Итого:
Ток = 0,707*ток ампл. = 0,707 * напряж / чувствит. = 0,707 * напряж. * 10 = 7,07 * напряж. =
= 7,07 * пик * 5 / 1023 = 35,35 * пик / 1023
*/
A0_current = 35.35 * CurA0calcMid / 1023.0;
//=================== Фильтр сглаживающий: ================
// передвигаем данные в массиве:
v = numReadings;
while (v > 0) {
readings[v]=readings[v-1];
v--;
}
readings[0] = A0_current;
// Serial.print("A0_current = "); Serial.print(A0_current); Serial.print(" ; ");
c = 0;
total = 0;
while (c < numReadings) {
total += readings[c];
// Serial.print(readings[c]); Serial.print(" ; ");
// Serial.print(total); Serial.println("");
c++;
}
// calculate the average:
average = total / numReadings;
// ======================================================
// Выводим на экран значение тока:
tft.setCursor(60, 4);
tft.setTextColor(WHITE); tft.setTextSize(1);
tft.print("Iact= "); tft.print(A0_current,2); tft.print(" A");
// Среднее значение тока (после фильтра)
tft.setCursor(180, 4);
tft.print("Iaver= "); tft.print(average,2); tft.print(" A");
// Serial.print("Free memory size: "); // печать количества свободной оперативной памяти
// Serial.println(memoryFree()); // печать количества свободной оперативной памяти
}
//********************обработчики прерываний*******************************
void current_meter() //прерывания таймера
{
PintTic++; //счетчик периодов
Uopornoe = analogRead(A15);
CurA0 = analogRead(ACS712)-(Uopornoe/2);
CurA0max = max(CurA0,CurA0max);
CurA0min = min(CurA0,CurA0min);
val_a[PintTic] = CurA0;
// val_Uo[PintTic] = Uopornoe;
// nb[PintTic] = PintTic;
// val_t[PintTic] = micros();
if(PintTic==k)
{
if (trig == true) {
z = 0;
while (z <= k) { val_a2[z] = val_a[z]; z++; }
// ymax = CurA0max; ymin = CurA0min; // Сохраняем макс. и мин. значения в массиве
}
trig = false;
PintTic=0; //обнуляем счетчик
CurA0calcMax=CurA0max;
CurA0calcMin=CurA0min;
CurA0max=0;
CurA0min=0;
}
}
//*************************************************************************
void Grid()
{
tft.fillScreen(BLACK);
// tft.drawLine(x1, y1, x2, y2, color);
// Ноль координат - в верхнем левом углу экрана!!! Вынос мозга...
tft.drawLine(0, 0, 0, 240, BLUE); // Ось ординат
// 120*75%=90.
tft.drawLine(0, (120-(90*(1024/(ymax-ymin)))), 319, (120-(90*(1024/(ymax-ymin)))), DARKGREEN); // 75%
// 120*50%=60.
tft.drawLine(0, (120-(60*(1024/(ymax-ymin)))), 319, (120-(60*(1024/(ymax-ymin)))), DARKGREEN); // 50%
// 120*25%=30.
tft.drawLine(0, (120-(30*(1024/(ymax-ymin)))), 319, (120-(30*(1024/(ymax-ymin)))), DARKGREEN); // 25%
// В пикселях по оси Y: 240/2=120 пикселей - это середина экрана.
tft.drawLine(0,120,319,120, BLUE); // Ноль
// 120 пикселей - это 100% сигнала. 120*25%=30.
tft.drawLine(0, (120+(30*(1024/(ymax-ymin)))), 319, (120+(30*(1024/(ymax-ymin)))), DARKGREEN); // -25%
// 120 пикселей - это 100% сигнала. 120*50%=60.
tft.drawLine(0, (120+(60*(1024/(ymax-ymin)))), 319, (120+(60*(1024/(ymax-ymin)))), DARKGREEN); // -50%
// 120 пикселей - это 100% сигнала. 120*75%=90.
tft.drawLine(0, (120+(90*(1024/(ymax-ymin)))), 319, (120+(90*(1024/(ymax-ymin)))), DARKGREEN); // -75%
}
// Переменные, создаваемые процессом сборки,
// когда компилируется скетч
// extern int __bss_end;
// extern void *__brkval;
/*
// Функция, возвращающая количество свободного ОЗУ (RAM)
int memoryFree()
{
int freeValue;
if((int)__brkval == 0)
freeValue = ((int)&freeValue) - ((int)&__bss_end);
else
freeValue = ((int)&freeValue) - ((int)__brkval);
return freeValue;
}
*/
Ну и фото того что получилось: Сначала в качестве нагрузки - утюг: Где-то читал, что современные импульсные блоки питания (компы и прочая бытовая техника) срезают верхушку синусоиды. Здесь на маленьком экранчике не очень хорошо видно, а в экселе когда график строишь из полученных данных - видно срезанную верхушку.
Далее в качестве нагрузки - автомобильное зарядное с аккумулятором:
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Мои проекты на Ардуино
Так?Kopyloff писал(а):Задача минимум на данный момент - собрать статистику энергопотребления в доме
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 387
- Зарегистрирован: 28 мар 2013, 07:40
- Репутация: 117
- Настоящее имя: Сергей
- Откуда: Первоуральск
- Контактная информация:
Re: Мои проекты на Ардуино
Примерно так, только у меня будет 13 групп электроприемников (читай - 13 автоматов после счетчика)UAVpilot писал(а):Так?
А эти графики откуда?
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Мои проекты на Ардуино
С моего домашнего электросчётчика.
У меня ещё много подобных графиков есть...
У меня ещё много подобных графиков есть...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 387
- Зарегистрирован: 28 мар 2013, 07:40
- Репутация: 117
- Настоящее имя: Сергей
- Откуда: Первоуральск
- Контактная информация:
Re: Мои проекты на Ардуино
Круто! За RRDtool отдельное спасибо - я хотел базу данных на sqlite делать, но не знал как организовать закольцовывание базы. А тут уже готовое решение, да ещё и под OpenWRT есть. А можно вкратце описать систему? Какие датчики, кто с них данные собирает и в базу пишет? Где графики отображаются?
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Мои проекты на Ардуино
По электричеству опрашивается домашний счётчик Меркурий-200, он много чего умеет рассказывать.
Другие датчики и исполнительные устройства - это в основном устройства 1-wire, для работя с ними применяется [url=hhttp://owfs.org/]OWFS[/url] (в разработке которой я принимаю скромное участие ).
Ещё на компе (домашнем сервере) работает программка, отслеживающая разнообразные события и выполняющая разннобразные запрограммированные действия. Для примера кусок её конфига:
Это управление вентилятором в ванной в зависимости от влажности и температуры и включение изображения на мониторе в прихожей с дверной камеры, если в дверь позвонили.
event - при появлении указанного события выполняется соотв. команда, init - если датчик оторвать, а потом снова прицепить, то прога это обнаружит и зальёт в датчик начальные настройки.
А графики - это так, побочный эффект. Да и для отлова глюков полезно - если вдруг система непонятно на что среагирует, то по графиками можно посмотреть "что это было?".
P.S. домашний датацентр (в туалете)
Другие датчики и исполнительные устройства - это в основном устройства 1-wire, для работя с ними применяется [url=hhttp://owfs.org/]OWFS[/url] (в разработке которой я принимаю скромное участие ).
Ещё на компе (домашнем сервере) работает программка, отслеживающая разнообразные события и выполняющая разннобразные запрограммированные действия. Для примера кусок её конфига:
Код: Выделить всё
init 12.646A26000000 /usr/local/lib/oweventd/bathfan init
init 26.0A3026000000 /usr/local/lib/oweventd/bathfan init
event ow 26.0A3026000000/VAD * /usr/local/lib/oweventd/bathfan check
init 12.8C4229000000 /usr/local/lib/oweventd/doormonitor init
init 12.90D21C000000 /usr/local/lib/oweventd/doormonitor init
event ow uncached/12.8C4229000000/latch.A 1 /usr/local/lib/oweventd/doormonitor start
event - при появлении указанного события выполняется соотв. команда, init - если датчик оторвать, а потом снова прицепить, то прога это обнаружит и зальёт в датчик начальные настройки.
А графики - это так, побочный эффект. Да и для отлова глюков полезно - если вдруг система непонятно на что среагирует, то по графиками можно посмотреть "что это было?".
P.S. домашний датацентр (в туалете)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 387
- Зарегистрирован: 28 мар 2013, 07:40
- Репутация: 117
- Настоящее имя: Сергей
- Откуда: Первоуральск
- Контактная информация:
Re: Мои проекты на Ардуино
Это кошмарный сон электрика - куча разных проводов вперемешку А сколько этот датацентр в общем энергии потребляет? Столько потребителей в розетки воткнуто.. А что за штука слева на стене вертикально висит?