Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.04.2014, 02:34   #1
HuanCarlos
Junior Member
 
Регистрация: 19.03.2014
Сообщений: 11
Вес репутации: 0
HuanCarlos is an unknown quantity at this point
По умолчанию несколько шлейфов DS18b20 на одной ардуине?

Опытные ардуинщики, помогите?

Нужно на одну платку ардуино нано или мини повесить много датчиков ds18b20
скажем так, теплицы, сараи, курятник итп.
Но - на одном шлейфе не получается - предельное расстояние недостаточно, и на предел закладываться смысла нет - не заведется же. Ставить по ардуине в каждый сарай нет возможности, да и общение с ними по сети делать, собирать данные на сервер...

(Есть и такая идея - на openwrt роутере сделать такой сервер, для сбора данных на флеш, протокол взять в чистом виде как для narodmon.ru, только отправку сделать подменой ip - и себе в лог на роутере, и в облако,
но это потом... если созрею и припрет... )
дуины вязать в сеть накладно, но пару-тройку можно вынести...
конечно, встает вопрос о питании - Правильнее всего ПоЕ, но дорого.
можно и просто питание в свободные пары дать и успокоиться...
Но цена - дуины по 3-6 $ (mini, nano...) а сеть к ним еще по 10...
еще датчики, еще провода, роутер итп итп набегает.
)

Самый лучший вариант я вижу - 1 дуина в центре, с сетью,
только на народмон пока, от нее несколько шлейфов в разные стороны,
каждый на своем канале, а не звездой...
вот кто помог бы подсказать, как пример базовый переписать,
чтоб ноги\шлейфы перебирались? или как?
может библиотека как-то работать сразу с несколькими шлейфами?
или только переинициализировать и перебирать постоянно?

пока не силен в программировании дуин...
ну там копипастой не стыдно, пока вроде вникаю... ))
самый простой пример вот нашел к либе,
http://milesburton.com/Dallas_Temper...ontrol_Library
но это все простой случай,
несколько штук на одном шлейфе у меня уже работают,
а вот как сделать несколько независимых шлейфов для DS?

С теми же DHT22/AM2302 получилось, но там не перебор,
просто параллельно 4 ноги задействовал.
никак вместе не живут - по одному только.

с барометром BMP180(аналог 085, только лучше)
тоже получилось, он вообще на аналоге А4, А5 -штатном I2C,
вместе с дисплеем прекрасно живет, но такой нужен-то один только.
А вот DS хотелось бы много, шлейфа 4 поднять...

Последний раз редактировалось HuanCarlos; 22.04.2014 в 02:37.
HuanCarlos вне форума   Ответить с цитированием
Старый 22.04.2014, 09:58   #2
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: несколько шлейфов DS18b20 на одной ардуине?

DS18B20 можно вешать на шину параллельно
Длина шины какая?
Admin вне форума   Ответить с цитированием
Старый 29.04.2014, 13:50   #3
paulerr
Senior Member
 
Регистрация: 04.01.2013
Адрес: Москва
Сообщений: 461
Вес репутации: 1152
paulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond repute
По умолчанию Re: несколько шлейфов DS18b20 на одной ардуине?

Читайте по длинным линиям 1W на сайте компании MAXIM (например APP148) или на русском много есть у компании ЭлИн.
Если собираетесь только снимать показания с датчиков - прикруте на uart порт роутера DS2480, оно вроде как рассчитано на длинные линии.
paulerr вне форума   Ответить с цитированием
Старый 13.06.2014, 01:01   #4
HuanCarlos
Junior Member
 
Регистрация: 19.03.2014
Сообщений: 11
Вес репутации: 0
HuanCarlos is an unknown quantity at this point
По умолчанию Re: несколько шлейфов DS18b20 на одной ардуине?

Цитата:
Сообщение от Admin Посмотреть сообщение
DS18B20 можно вешать на шину параллельно
Длина шины какая?
Да так и сделал. Вопрос в том, что шина не поддерживает звёзды,
а опутать все одним шлейфом не получится - слишком длинный, за пределами спеков, не то что рекомендаций.
Там же - есть про переключения шины мультиплексором итп...

Как это реализовать по-простому?
полноценные мультиплексоры итп делать вроде не надо, хочется обойтись только самой дуиной. Нужно не очень много шлейфов. 4-5-6...
а уж если мегу взять, то опутаться ))
Пока ног хватает - можно просто на одной ноге шину по очереди поднимать - шлейф опросить, потом на другой поднять-опросить... итп? Накапливать в массив, обойти все - вывалить в облако, флешку... итд.
HuanCarlos вне форума   Ответить с цитированием
Старый 13.06.2014, 01:03   #5
HuanCarlos
Junior Member
 
Регистрация: 19.03.2014
Сообщений: 11
Вес репутации: 0
HuanCarlos is an unknown quantity at this point
По умолчанию Re: несколько шлейфов DS18b20 на одной ардуине?

Цитата:
Сообщение от paulerr Посмотреть сообщение
Читайте по длинным линиям 1W на сайте компании MAXIM (например APP148) или на русском много есть у компании ЭлИн.
Если собираетесь только снимать показания с датчиков - прикруте на uart порт роутера DS2480, оно вроде как рассчитано на длинные линии.
Спасибо, почитаю. Вообще хотел на дуине делать, мини про, нано...
дешевле получается, если девайсов надо с десяток, к примеру. Набегает.
HuanCarlos вне форума   Ответить с цитированием
Старый 13.06.2014, 15:39   #6
HuanCarlos
Junior Member
 
Регистрация: 19.03.2014
Сообщений: 11
Вес репутации: 0
HuanCarlos is an unknown quantity at this point
По умолчанию Re: несколько шлейфов DS18b20 на одной ардуине?

вроде можно...
нарыл, пошел пробовать )

http://forum.arduino.cc/index.php/topic,78461.0.html


#include <OneWire.h>
#include <DallasTemperature.h>

// Data wires plugged into digital pins 2,3,4 on the Arduino
#define ONE_WIRE_BUSA 2
#define ONE_WIRE_BUSB 3
#define ONE_WIRE_BUSC 4

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWireA(ONE_WIRE_BUSA);
OneWire oneWireB(ONE_WIRE_BUSB);
OneWire oneWireC(ONE_WIRE_BUSC);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensorsA(&oneWireA);
DallasTemperature sensorsB(&oneWireB);
DallasTemperature sensorsC(&oneWireC);

Then you can read your sensors using the usual functions, e.g.
Code:
sensorsA.begin();
sensorsB.begin();
sensorsC.begin();
HuanCarlos вне форума   Ответить с цитированием
Старый 17.06.2014, 20:16   #7
paulerr
Senior Member
 
Регистрация: 04.01.2013
Адрес: Москва
Сообщений: 461
Вес репутации: 1152
paulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond repute
По умолчанию Re: несколько шлейфов DS18b20 на одной ардуине?

возвращаясь к роутеру:
одна ds2482-800. 8 линий 1W через i2c.
paulerr вне форума   Ответить с цитированием
Старый 17.06.2014, 22:55   #8
HuanCarlos
Junior Member
 
Регистрация: 19.03.2014
Сообщений: 11
Вес репутации: 0
HuanCarlos is an unknown quantity at this point
По умолчанию Re: несколько шлейфов DS18b20 на одной ардуине?

получилось, попробовал 3 ноги дуины и этот код -
нормально работает, на дисплее отображает ок,
заметны стали задержки по отрисовке по мере получения,
но вот с сетью (у меня в скетче оно еще и в вебморду отдает)
уже все плохо - пинги проходят %10,
вебморда практически перестала работать.


Цитата:
Сообщение от paulerr Посмотреть сообщение
возвращаясь к роутеру:
одна ds2482-800. 8 линий 1W через i2c.
спасибо, почитаю в применении к ардуине
думаю, попроизводительнее может получиться.
Цена однако кусается, чип как роутер целый...

еще одно направление - переписать скетч на использование прерывания при активности в сети, но что-то непонятно, какое событие ловить и где.
Если по датчикам понятно - на ноге что-то появилось\пропало, а сеть?
Как я понимаю, на эти 4 ноги уже не подлезть - заняты своими делами

сеть стоит в основном цикле, выполняется каждый проход.
а опрос датчиков и отрисовка экрана - в нем же, но с делителем 10.
Делал и больше, 50 к примеру.
Вроде бы не должно так уж влиять.
Опрос датчиков итп процесс не быстрый, но редкий,
а сеть постоянно в цикле крутится, не понимаю,
почему так вяло стало реагировать? До того было тоже не очень,
опрашивал 4 шт DHT22, 1 BMP085, 1 ds18d20
HuanCarlos вне форума   Ответить с цитированием
Старый 18.06.2014, 00:03   #9
paulerr
Senior Member
 
Регистрация: 04.01.2013
Адрес: Москва
Сообщений: 461
Вес репутации: 1152
paulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond reputepaulerr has a reputation beyond repute
По умолчанию Re: несколько шлейфов DS18b20 на одной ардуине?

Цитата:
Сообщение от HuanCarlos Посмотреть сообщение
Цена однако кусается, чип как роутер целый...
В МСК - 365р.или так .. , где Вы такие роутеры дешевые видели?
На тему сети, почитайте у соседей, там много чего разбирали...

Последний раз редактировалось paulerr; 18.06.2014 в 00:28.
paulerr вне форума   Ответить с цитированием
Старый 26.06.2014, 10:18   #10
UlyanovVV
Junior Member
 
Регистрация: 26.06.2014
Адрес: Чернышевск
Сообщений: 1
Вес репутации: 0
UlyanovVV is an unknown quantity at this point
По умолчанию Re: несколько шлейфов DS18b20 на одной ардуине?

Цитата:
Сообщение от HuanCarlos Посмотреть сообщение
уже все плохо - пинги проходят %10,
вебморда практически перестала работать.
Попробуй использовать библиотеку leOS2.
Использует WDT таймер
Пример
Код HTML:
#include "leOS2.h" //include the scheduler
leOS2 myOS; //create a new istance

//variables to manage the LED
const byte LED13 = 13;
byte LEDstatus = 0;


//setup routine
void setup() {
    myOS.begin(); //initialize the scheduler
    //pins as output
    pinMode(LED13, OUTPUT);
    //add the tasks
    myOS.addTask(flashLed, myOS.convertMs(1000));
}


//main loop - it's empty
void loop() {}


//this task will flash the LED on pin D13
void flashLed() {
    LEDstatus ^= 1;
    digitalWrite(LED13, LEDstatus);
}
Основной цикл здесь можно вообще не использовать.
UlyanovVV вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 22:54. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика