Четверг, 19.10.2017, 21:19
Вы вошли как Гость | Группа "Гости"Приветствую Вас Гость | RSS
Главная | Шкаф автоматизации для коттеджа - Форум | Мой профиль | Регистрация | Выход | Вход
Обитель RC-инженера
Форма входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Модератор форума: ВитГо 
Форум » Разработка электронных устройств » Разрабатываю ! » Шкаф автоматизации для коттеджа
Шкаф автоматизации для коттеджа
uwrteyДата: Вторник, 29.09.2015, 20:27 | Сообщение # 1
Полковник
Группа: Администраторы
Сообщений: 2421
Репутация: 9
Статус: Offline
Подкинули идею собрать шкаф автоматизации для котеджа

Мозг - AVR - Mega2560 - http://www.ebay.com/itm....a63ea6c
можно попробовать на 328ой меге сделать - http://www.ebay.com/itm....66cb5d8
но эта мне больше нравится mega64- http://www.ebay.com/itm....09374ae

Блок реле
- http://www.ebay.com/itm....bd68be0

Клавиатура - http://www.ebay.com/itm....65f41d7

Датчик температуры - цифровой ds18b20 ...http://www.ebay.com/itm/DALLAS-DS18B20-18B20-TO-92-Thermometer-Temperature-Sensor-/140714089032?hash=item20c3369a48
водонепроницаемый http://www.ebay.com/itm....b9df295
http://masterkit.ru/zip/ds18b20-rus.pdf
http://zelectro.cc/dallas-18b20
http://arduino.ru/forum....as18b20


что то я не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Среда, 30.09.2015, 00:24
 
SergiДата: Среда, 30.09.2015, 07:46 | Сообщение # 2
Майор
Группа: Проверенные
Сообщений: 457
Репутация: 9
Статус: Offline
Я окончательно перешел на стм32, да и на ебее девборды дешевле,от 4 до 6 долларов.
Немного привыкнуть и не видишь ограничений в фантазиях. А вот контакторы и реле никто не отменял.
В силовой электронике это значительные траты.
 
uwrteyДата: Суббота, 03.10.2015, 22:04 | Сообщение # 3
Полковник
Группа: Администраторы
Сообщений: 2421
Репутация: 9
Статус: Offline
Да, я согласен что STM32 намного лучше чем AVR.
Тут меня попросили сделать проект именно на AVR-arduino плате с ебея.
Я с радостью перейду на STM32.
Все дело привычки. На AVR я уже что то могу. На STM32 - ни единого проекта!
Нужно учится. А учится сейчас некогда - перешел на пятидневку. Упахиваюсь как лошадь.

Вот новый проект предложили - есть возможность подзаработать.
Но пока я буду учить STM32 - пройдет куча времени..

Да еще и наставник мой куда-то подевался... sad

---------------------------------------------

Еще инфа по подключению датчика температуры - http://arduino-project.net/podklyuchenie-ds18b20-arduino/

Клавиатура сенсорная http://www.ebay.com/itm....5f54341

Дисплей http://www.ebay.com/itm....ae5dcf5

---------------------------------------------

как устроен 1-wire протокол

1) - http://radiokot.ru/articles/13/
2) - http://www.gaw.ru/html.cgi/txt/app/micros/avr/avr318.htm

датащит на русском на ds18b20 http://masterkit.ru/zip/ds18b20-rus.pdf

Писать буду на асме
примеры работы с датчиками температуры ds18b20 - код на ассемблере
1) - http://forum.easyelectronics.ru/viewtopic.php?f=14&t=22686&view=next
2) - http://forum.vingrad.ru/topic-226262.html
3) - http://www.remexpert.com/ipb/topic1628.html

Пошел задавать вопросы http://radiokot.ru/forum....2505972

На данный момент времени есть несколько задач, которые нужно решить smile

1)
Как лучше организовать работу с несколькими датчиками?
В голову пока пришел только один вариант:
Делаем на схеме кнопку - "обучение"
И при установке устройства, нажимаем эту кнопку и по очереди подключаем датчики к схеме, соблюдая определенную последовательность.
В это время МК считывает ИД датчиков и пишет их себе в ЕЕПРОМ.
После обучения выключаем устройство.
Выключаем кнопку "обучение" и снова включаем устройство.
Теперь устройство само опрашивает данные датчики, обращаясь к каждому "по имени"....
Такой вариант позволяет мне перепутать датчики местами при установке ( они ведь ни как не подписаны )
А так-же любой датчик можно безболезненно заменить на новый в случае если он выйдет из строя...
Может есть еще варианты? ( например без использования ЕЕПРОМ )

2) где бы взять библиотеку на ассеблере для работы с данными датчиками.
// http://we.easyelectronics.ru/AVR/esche-odna-realizaciya-1-wire.html

**********************************************************************

Думаю, что придется все делать вручную самостоятельно.

Цитата

Завершил заниматься работой с одним датчиком ds18b20, теперь хочу понять как работает и реализовать несколько датчиков на одной линии.
Почитал мануал. Для обращения к конкретным датчикам необходимо знать его 64-bit ROM код или по-крайней мере 48-bit Serial Number, так как Family code у всех одинаковый (28h). При обращении к датчикам необходимо всего лишь послать команду Match ROM (55h) потом 64-bit ROM конкретного датчика, затем команду для него, что делать.
Только вот трудность возникла у меня. Как узнать этот 64-bit ROM код каждого датчика? И если он не один, а допустим 3 и более?
В начале подумал, что необходимо каждый датчик по отдельности проверить и разузнать его код при помощи команды Read ROM (33h), а потом использовать как описал выше. А если со временем придется поменять один из датчиков, то придется переписывать 64-bit ROM код опять?
Тогда имеется другая команда, Search ROM (F0h), которая находит и считывает 64-bit ROM коды всех датчиков, которые нашла. Ну, а потом обращается к ним по найденным кодам.

Надо бы повнимательнее почитать датащит на этот датчик..

Цитата


Инициализация: сигнал сброса и присутствия
Все сеансы связи микроконтроллера с датчиком DS18B20 начинаются с сигнала сброса. Микроконтроллер на 480 мкс «проваливает» 1-Wire шину в ноль, а затем «отпускает» ее. Если к шине подключен термометр DS18B20, то он обнаруживает положительный перепад и после паузы в 15-60 мкс отвечает микроконтроллеру импульсом присутствия — «проваливает» шину в ноль на время от 60 до 240 мкс.

Запись данных на 1-Wire шине
Обмен данными по 1-Wire шине происходит последовательно, младшим битом вперед. Передача или прием одного бита данных выполняются в течении фиксированного промежутка времени, так называемого тайм слота (time slot). Различают тайм слоты записи и тайм слоты чтения. Длительность всех тайм слотов должна быть > 60 мкс, а пауза между тайм слотами > 1 мкс.

Для передачи нуля микроконтроллер «проваливает» 1-Wire шину на время от 60 до 120 мкс. Затем «отпускает» ее и перед записью следующего бита выдерживает паузу >1 мкс.
Для передачи единицы микроконтроллер «проваливает» 1-Wire шину на время от 1 до 15 мкс, «отпускает» ее и выдерживает паузу. Пауза должна быть такой, чтобы длительность тайм слота была > 60+1 мкс.

Чтение данных на 1-Wire шине
DS18B20 является подчиненным устройством и может передавать данные, только когда микроконтроллер формирует на 1-Wire шине тайм слоты чтения. Для формирования тайм слота чтения микроконтроллер «проваливает» 1-Wire шину на время от 1 до 15 мкс, а затем «отпускает» ее, передавая управление состоянием 1-Wire шины датчику DS18B20. Если DS18B20 передает ноль, он удерживает шину в «проваленном» состоянии (в состоянии логического нуля) до конца тайм слота. Если он передает 1, он оставляет шину в «подтянутом» состоянии.
Микроконтроллер может считывать данные датчика DS18B20 через 15 мкс после начала тайм слота чтения.

http://chipenable.ru/index.p....-1.html



что то я не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Воскресенье, 04.10.2015, 12:41
 
uwrteyДата: Воскресенье, 11.10.2015, 16:37 | Сообщение # 4
Полковник
Группа: Администраторы
Сообщений: 2421
Репутация: 9
Статус: Offline
В данный момент ищу библиотеку для LCD nokia 5110 написанную на ассемблере под AVR
Даже пытался переделать библиотеку написанную ВитГо http://radiokot.ru/forum....2512809
но не получается... cry
Прикрепления: 3661938.jpg(187Kb)


что то я не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Воскресенье, 11.10.2015, 16:37
 
uwrteyДата: Суббота, 17.10.2015, 19:25 | Сообщение # 5
Полковник
Группа: Администраторы
Сообщений: 2421
Репутация: 9
Статус: Offline
написана новая библиотека для работы с данным дисплеем http://vg.ucoz.ru/load....-1-0-54


----------------------------------------------------------------------------------------

Теперь можно писать "меню" и смело браться за изучение ds18b20 ;)

Библиотеку для работы с датчиком можно найти тут https://sites.google.com/site/skyersoft/avr-examples

еще один пример работы с этой библиотекой http://radiokot.ru/forum/viewtopic.php?p=2100196

и еще http://www.radiokot.ru/circuit/digital/home/12/ - Отличная статья!
Прикрепления: 6176051.jpg(117Kb)


что то я не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Суббота, 17.10.2015, 22:58
 
uwrteyДата: Воскресенье, 25.10.2015, 00:44 | Сообщение # 6
Полковник
Группа: Администраторы
Сообщений: 2421
Репутация: 9
Статус: Offline
Написал программу которая выводит на дисплей данные температуры с одного датчика.
Данные выводятся в сыром 16-тиричном HEX виде.
Наконец-то разобрался с библиотекой для 1-wire датчика температуры ds15b20
Проблема была в том, что я забыл припаять подтягивающий резистор к линии передачи данных. ( НАМАЯЛСЯ!!! - неделю мучил полностью рабочий код, а потом дошло )
Схемы тока в архиве не хватает.
Но к каким контактам цеплять дисплей и датчик температуры понятно и так - все контакты прописаны в подключаемых библиотеках.

Осталось написать кусочек кода, который будет конвертировать в 10-тиричный вид эти данные.
И можно будет нарисовать схему.
Данным термометром можно будет пользоваться в быту.

А дальше мне нужно как следует постараться:

Нужно сделать опрос нескольких датчиков ( планирую до 10-ти )
А для того, что-бы производить опрос этих датчиков - и запоминание их уникальных "ИМЕН" нужно написать меню.

Работы еще непочатый край
Прикрепления: WinRAR_ZIP_arch.zip(12Kb)


что то я не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Воскресенье, 25.10.2015, 00:52
 
SergiДата: Воскресенье, 25.10.2015, 05:15 | Сообщение # 7
Майор
Группа: Проверенные
Сообщений: 457
Репутация: 9
Статус: Offline
Я когда-то делал следилку за техпроцессом на 4х термометрах. В меню была таблица на 8(10?) записей подавать сигнал тревоги при заданных значениях нужных датчиков.В таблицу значения можно заносить оперативно. Небыло только самоопределения датчиков. Инд номера записал жестко.Мега88 справлялась.Все писалось на С в CODEVISION. Отображал на диспплее МОТО Т191.
 
uwrteyДата: Воскресенье, 25.10.2015, 11:11 | Сообщение # 8
Полковник
Группа: Администраторы
Сообщений: 2421
Репутация: 9
Статус: Offline
Щас глянул дисплей motorolla t191 очень похож на дисплей от nokia 3310.
В данный момент я делаю на дисплее от нокиа.
В дальнейшем дисплей будет другой - скорее всего на I2C 20 X 4

Датчиков планирую сделать до 10ти штук.
Программа будет содержать обучающий режим: Каждый датчик будет по очереди вставляться в шину 1-wire, для того, что-бы запомнить в eeprom его уникальный код и присвоить ему имя.
Это нужно для того, что-бы беспрепятственно менять датчики и не переписывать код.

Программа будет содержать меню, в котором для каждого датчика можно будет настроить температуру срабатывания сигнала тревоги.

Для ввода данных о пороге срабатывания нужно будет сделать клавиатуру.
По клавиатуре пока не определился. Возможно это будет буквенно-цифровая клавиатура с шиной i2c, а возможно пара кнопок, для которых я сделаю опрос.


что то я не успеваю за своими мыслями......
 
SergiДата: Воскресенье, 25.10.2015, 20:10 | Сообщение # 9
Майор
Группа: Проверенные
Сообщений: 457
Репутация: 9
Статус: Offline
Ну у меня как то так. 70х40мм,автономное питание.4е кнопки:вкл\назад,вверх,вниз,ввод.

Сейчас сел,заряжается.Показывает зарядный ток и проценты батареи.
Датчики в параллель включаются через разъем 3.5мм(как аудио) по 3м проводам.


Сообщение отредактировал Sergi - Воскресенье, 25.10.2015, 20:22
 
uwrteyДата: Воскресенье, 25.10.2015, 22:15 | Сообщение # 10
Полковник
Группа: Администраторы
Сообщений: 2421
Репутация: 9
Статус: Offline
круть! :up:

А я столкнулся с проблемой - у меня датчик не хочет измерять отрицательные температуры.
Я прикладываю к датчику замороженные продукты из морозилки.
Температура опускается всего до 5 градусов.
Вижу как датчик сам топит лед.
1-wire это конечно круто, но вот то, что процессор датчика, во время измерения температуры разогревается и этим вносит коррективы в работу датчика - это очень плохо.
Измерения нельзя производить слишком часто.
Я измеряю один раз в секунду! И все равно.....

Сейчас попробую задержку больше по времени.... Но это уже не то - не оперативно... ( Плююсь )


что то я не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Воскресенье, 25.10.2015, 22:29
 
uwrteyДата: Суббота, 31.10.2015, 23:19 | Сообщение # 11
Полковник
Группа: Администраторы
Сообщений: 2421
Репутация: 9
Статус: Offline
Что то не пойму как прочитать ID датчика.
После команды 0x33 ( READ ROM [33h] ) датчик начнет вещать свой ID.
А куда его запишет эта либа ?
Например, данные о температуре она записывает в первые два байта массива buffer_1w.
Массив расчитан на 8 байт данных + 1 байт CRC.
ROM соджержит 64 бита данных ( 8 байт ). Неужели в этот же массив запишет - в первые 8 бит ?????
Или как ?

В примерах не рассмотрена команда READ ROM [33h]

Добавлено:
Цитата
Неужели в этот же массив запишет - в первые 8 бит ?????

Точно! Так и есть! почитал... http://chipenable.ru/index.p....chast-3
Но мне не понятно вот что:
Массив переменных состоит из девяти байт ОЗУ.
Данные хранятся в первых восьми байтах.
В последнем ( в девятом ) байте хранится принятый CRC (циклический избыточный код).
Микроконтроллер сам рассчитывает CRC, исходя из первых восьми байт и сравнивает его с принятым CRC.
В случае равенства посылка считается верной!

А тут получается, что ROM состоит из
1 байт FAMILY CODE
6 байт SERIAL NUMBER
1 байт CRC
и получается что CRC записывается не в свою ячейку ОЗУ
Как будет происходить расчет и сравнение CRC ?????????


что то я не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Воскресенье, 01.11.2015, 00:29
 
uwrteyДата: Среда, 04.11.2015, 00:18 | Сообщение # 12
Полковник
Группа: Администраторы
Сообщений: 2421
Репутация: 9
Статус: Offline
Сегодня написал программу датчика температуры с распознаванием уникального кода в режиме обучения и записью его в ЕЕПРОМ микроконтроллера.
В режиме обучения все инструкции выводятся на экран.
Для того, что-бы попасть в режим обучения необходимо перед стартом МК установить перемычку.
Перемычка=кнопка "ОК" ( для экономии контактов ) // она же единственная кнопка на схеме

единственный недостаток - это то что значение температуры выводится в 16ти ричном виде

С меня видео. smile https://youtu.be/D_lB3gh7mNQ

нужно перевести из hex в десятичный вид - http://matworld.ru/calculator/perevod-chisel.php

---------------------------------------------

Пид регулятор

1) http://we.easyelectronics.ru/Theory....ov.html
2) https://ru.wikipedia.org/wiki....E%D1%80

Выбор регулятора

1) http://autoworks.com.ua/teoreti....ovaniya

***************************************************

интересная информация - относительно команд перехода ( RCALL CALL RJMP JMP ) http://nikolaew.org/avr_old/u5.htm

***************************************************

Полезная ссылочка ( подобный шкаф автоматизации ) http://smart-andy.livejournal.com/2571.html

***************************************************
Прикрепления: temper.zip(182Kb)


что то я не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Среда, 04.11.2015, 15:28
 
uwrteyДата: Среда, 04.11.2015, 03:58 | Сообщение # 13
Полковник
Группа: Администраторы
Сообщений: 2421
Репутация: 9
Статус: Offline
подключил два датчика
Данные о температуре вывожу в десятичном виде
Прикрепления: arhive.zip(329Kb) · 5063543.jpg(146Kb)


что то я не успеваю за своими мыслями......
 
uwrteyДата: Понедельник, 08.02.2016, 08:00 | Сообщение # 14
Полковник
Группа: Администраторы
Сообщений: 2421
Репутация: 9
Статус: Offline
Нужно бы еще часы с календарем сюда прикошачить.
Часы должны быть организованы на другой микросхеме, что бы не загружать процессор нашей меги.
видел решение на микросборке DS1307 http://we.easyelectronics.ru/Arduino....ld.html
модуль можно заказать на ибее
1) http://www.ebay.com/itm....sFUNO~K
2) http://www.ebay.com/itm....T9RyFu6
3) http://www.ebay.com/itm....D9TT1E6
Вижу, что отличается количеством выводов. Щас разберусь в чем принципиальная разница.

Модуль работает с протоколом I2C
но наверное было бы круче, если бы протокол использовался 1-wire

Ага, нашел пару отличий:
1) В модуле по первой ссылке есть возможность подключение датчиков с протоколом 1-wire.
2) На борту есть ATMEL332 - похоже это внешний EEPROM

Подробности о выборе датчик тут - http://vg.ucoz.ru/forum/15-331-1#5471 .

Подробности о выборе GSM модуля описаны тут http://vg.ucoz.ru/forum/10-305-1#5474

Подобный проект http://arduino.ru/forum....kh-ds18
в нем используют GSM-модуль SIM900 и Часы реального времени DS1302

---------------------------------------------

интересный проект http://geektimes.ru/post/244552/

виды регуляторов http://otoplenie-doma.org/avtomatika-sistem-otopleniya.html


что то я не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Понедельник, 08.02.2016, 14:03
 
SergiДата: Понедельник, 08.02.2016, 19:09 | Сообщение # 15
Майор
Группа: Проверенные
Сообщений: 457
Репутация: 9
Статус: Offline
Покопался в металлоломе. Нашел часы на плате. Почитал даташит. Управляется по i2c. Есть выходы от прерываний. Их можно программировать на срабатывание раз несколько секунд,минут,часов,дней,месяцев. Очень экономно будет пробуждать мк. Для удаленных датчиков самое то.
 
Форум » Разработка электронных устройств » Разрабатываю ! » Шкаф автоматизации для коттеджа
Страница 1 из 212»
Поиск:


Copyright MyCorp © 2017
Сделать бесплатный сайт с uCoz