22.04.2014, 02:34 | #1 |
Junior Member
Регистрация: 19.03.2014
Сообщений: 11
Вес репутации: 0 |
несколько шлейфов 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. |
22.04.2014, 09:58 | #2 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Re: несколько шлейфов DS18b20 на одной ардуине?
DS18B20 можно вешать на шину параллельно
Длина шины какая? |
29.04.2014, 13:50 | #3 |
Senior Member
Регистрация: 04.01.2013
Адрес: Москва
Сообщений: 461
Вес репутации: 1152 |
Re: несколько шлейфов DS18b20 на одной ардуине?
|
13.06.2014, 01:01 | #4 |
Junior Member
Регистрация: 19.03.2014
Сообщений: 11
Вес репутации: 0 |
Re: несколько шлейфов DS18b20 на одной ардуине?
Да так и сделал. Вопрос в том, что шина не поддерживает звёзды,
а опутать все одним шлейфом не получится - слишком длинный, за пределами спеков, не то что рекомендаций. Там же - есть про переключения шины мультиплексором итп... Как это реализовать по-простому? полноценные мультиплексоры итп делать вроде не надо, хочется обойтись только самой дуиной. Нужно не очень много шлейфов. 4-5-6... а уж если мегу взять, то опутаться )) Пока ног хватает - можно просто на одной ноге шину по очереди поднимать - шлейф опросить, потом на другой поднять-опросить... итп? Накапливать в массив, обойти все - вывалить в облако, флешку... итд. |
13.06.2014, 01:03 | #5 | |
Junior Member
Регистрация: 19.03.2014
Сообщений: 11
Вес репутации: 0 |
Re: несколько шлейфов DS18b20 на одной ардуине?
Цитата:
дешевле получается, если девайсов надо с десяток, к примеру. Набегает. |
|
13.06.2014, 15:39 | #6 |
Junior Member
Регистрация: 19.03.2014
Сообщений: 11
Вес репутации: 0 |
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(); |
17.06.2014, 20:16 | #7 |
Senior Member
Регистрация: 04.01.2013
Адрес: Москва
Сообщений: 461
Вес репутации: 1152 |
Re: несколько шлейфов DS18b20 на одной ардуине?
возвращаясь к роутеру:
одна ds2482-800. 8 линий 1W через i2c. |
17.06.2014, 22:55 | #8 |
Junior Member
Регистрация: 19.03.2014
Сообщений: 11
Вес репутации: 0 |
Re: несколько шлейфов DS18b20 на одной ардуине?
получилось, попробовал 3 ноги дуины и этот код -
нормально работает, на дисплее отображает ок, заметны стали задержки по отрисовке по мере получения, но вот с сетью (у меня в скетче оно еще и в вебморду отдает) уже все плохо - пинги проходят %10, вебморда практически перестала работать. спасибо, почитаю в применении к ардуине думаю, попроизводительнее может получиться. Цена однако кусается, чип как роутер целый... еще одно направление - переписать скетч на использование прерывания при активности в сети, но что-то непонятно, какое событие ловить и где. Если по датчикам понятно - на ноге что-то появилось\пропало, а сеть? Как я понимаю, на эти 4 ноги уже не подлезть - заняты своими делами сеть стоит в основном цикле, выполняется каждый проход. а опрос датчиков и отрисовка экрана - в нем же, но с делителем 10. Делал и больше, 50 к примеру. Вроде бы не должно так уж влиять. Опрос датчиков итп процесс не быстрый, но редкий, а сеть постоянно в цикле крутится, не понимаю, почему так вяло стало реагировать? До того было тоже не очень, опрашивал 4 шт DHT22, 1 BMP085, 1 ds18d20 |
18.06.2014, 00:03 | #9 |
Senior Member
Регистрация: 04.01.2013
Адрес: Москва
Сообщений: 461
Вес репутации: 1152 |
Re: несколько шлейфов DS18b20 на одной ардуине?
В МСК - 365р.или так .. , где Вы такие роутеры дешевые видели?
На тему сети, почитайте у соседей, там много чего разбирали... Последний раз редактировалось paulerr; 18.06.2014 в 00:28. |
26.06.2014, 10:18 | #10 | |
Junior Member
Регистрация: 26.06.2014
Адрес: Чернышевск
Сообщений: 1
Вес репутации: 0 |
Re: несколько шлейфов DS18b20 на одной ардуине?
Цитата:
Использует 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); } |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|