Resident
а именно ты их работать заставляешь?
Ну выставить время например
Resident
вангую что он просто i2c сканером прошелся
Да пришлось сканером смотреть какие адреса есть на линии
Resident
Но, одна плата без батарейки работает и кажет 3 адреса (часы,память, и что то ещё)
Resident
А эта только 0х51 память похоже показывает
Yuriy
А эта только 0х51 память похоже показывает
/* Demonstration of Rtc_Pcf8563 Set Time. * Set the clock to a time then loop over reading time and * output the time and date to the serial console. * * I used a RBBB with Arduino IDE, the pins are mapped a * bit differently. Change for your hw * SCK - A5, SDA - A4, INT - D3/INT1 * * After loading and starting the sketch, use the serial monitor * to see the clock output. * * setup: see Pcf8563 data sheet. * 1x 10Kohm pullup on Pin3 INT * No pullups on Pin5 or Pin6 (I2C internals used) * 1x 0.1pf on power * 1x 32khz chrystal * * Joe Robertson, jmr * orbitalair@bellsouth.net */ #include #include //init the real time clock Rtc_Pcf8563 rtc; void setup() { //clear out the registers rtc.initClock(); //set a time to start with. //day, weekday, month, century(1=1900, 0=2000), year(0-99) rtc.setDate(14, 6, 3, 1, 10); //hr, min, sec rtc.setTime(1, 15, 0); Serial.begin(9600); } void loop() { //both format functions call the internal getTime() so that the //formatted strings are at the current time/date. Serial.print(rtc.formatTime()); Serial.print("\r\n"); Serial.print(rtc.formatDate()); Serial.print("\r\n"); delay(1000); }
Resident
А по какому адресу он к часам обращаться будет В пути сейчас не смогу проверить
Resident
Что то мне подсказывает что с батарейкой он и адрес часов увидит, но хотел решить до покупки иной
Resident
И то не факт. Другая моделька без батки стартует и говорит что был lostpower
Yuriy
/* the read and write values for pcf8563 rtcc */ /* these are adjusted for arduino */ #define RTCC_R 0xa3 #define RTCC_W 0xa2
Yuriy
Resident
Rtcc_addr пнл
Resident
Принял, завтра гляну
Yuriy
Rtcc_addr пнл
#define RTCC_R 0xa3
Resident
Понятно кинули китайцы дружище)) я просил ds3231 купить
Resident
Ладно придётся это юзать
Andy
ds3231 - для очень точного отсчета времени, Pcf8563 - для отсчета со средней точностью. Так что на мой взгляд все зависит от задачи
Yuriy
ds3231 - для очень точного отсчета времени, Pcf8563 - для отсчета со средней точностью. Так что на мой взгляд все зависит от задачи
а пин у ds есть засыпать просыпаться по будильнику - прерывание на него повесить? Так то из точного сделать неточное время легко, наоборот вот никак. DS3231 - я перепутал с DS13XX - вот там точность никакая
Yuriy
В смысле засыпать? Останавливать RTC по команде?
в смысле выход сигнальный которым часы бы сами автономно управляли - будильник. mcu бы уходил в глубокий сон из которого он выйти может опять же по этому сигналу. WDT (свой внешний) - опять же может это использовать
Yuriy
SQW/... точно. Ну всё действительно не повезло @Resident DS - лучше был бы- минута в год у людей, а более простой была минута в месяц
Yuriy
Ясно, выход "Programmable Square-Wave Output Signal " назвается у Maxim. Да есть
А почему тогда применимость разная у них, из за цены? Для чего могут быть полезней менее точные часы?
Andy
А почему тогда применимость разная у них, из за цены? Для чего могут быть полезней менее точные часы?
Да, платим за точность. Например изделие уехало в подвал и там год простояло на морозе. ds обеспечит около 4 ppm уход без дополнительной настройки
romanetz
4 ppm за год (8 млн секунд) - полминуты Ни туда, ни сюда...
romanetz
И точным (чтобы без синхронизации обойтись) это не назвать, и денег просят. А смысл?
Yuriy
И точным (чтобы без синхронизации обойтись) это не назвать, и денег просят. А смысл?
был случай когда строили радиотелескоп привезли атомные часы из европы для синхронизации таких же тут, в самолете парились питание от бортовой сети, в гостиницу Россия их в номере оставили - в розетку воткнули... а уборщица - номер убирать пришла и вытащила ее -пылесос воткнуть. Нахер такие нужны. Точные просто - но жрут много и дорогие уверен. История кстати - правда не байка, чего только ups не было тогда чтоли - не понятно или они как не в себя энергии требуют (вступает в противоречие с розеткой) Я бы лучше DS для себя взял - мне точность атомных не нужна
Anonymous
ребят, для хранения данных(метрик с датчиков) InfluxDB норм выбор?
Andy
4 ppm за год (8 млн секунд) - полминуты Ни туда, ни сюда...
Не знаю на каких задачах нужна точность выше 4 ppm в диапазоне от -40 до +85 :) Притом чтобы получить на часовом кварце 20 ppm надо сильно постараться
romanetz
Дальнобойный
Andy
Любой IoT возьми
Ну нету сети в подвале! Репитер ставить? За чей счет?
Yuriy
ребят, для хранения данных(метрик с датчиков) InfluxDB норм выбор?
для одного дома - оверкилл наверное, а так почему нет - она для этого и есть. Функционально - а что надо, ожидания какие, чем мотивировался выбор? Любая подойдет - о БД парится надо значимых нагрузках. Масштабирование горизонтальное - нужно, нет... вопрос не раскрыт. Вообще цель перед "БД" какая ставиться в этой задаче? Сколько их?
Andy
Какой сети?
Любой :) Только батарейное питание и оператор с фонариком раз в год спускается :)
romanetz
Бедняга
romanetz
Дом - МКД?
romanetz
Это чтобы число устройств и нагрузку прикинуть
romanetz
Или частный дом
Anonymous
частный дом (если ко мне вопрос...)
Yuriy
один дом). Идея примерно такая: esp пишет в облако, клиент сохраняет в базу, grafana как визуализация.
вообще всё равно - у графаня для "всего" датасурсы - выбирай исходя из - нравится не нравится - знаю не знаю - волюнтаризм чистой воды тут. С одним домом даже из текстового файла как хранилища - никакой разницы не будет -со стороны дашборда
Anonymous
окей, пасиб
Yuriy
один дом). Идея примерно такая: esp пишет в облако, клиент сохраняет в базу, grafana как визуализация.
Я только не понял: клиент это кто в этой цепочке? esp -> бд (ну через http api какой нибудь или прям напрямую) понял бд-> dashboard тоже , а "клиент сохраняет в базу" - нет
Anonymous
Я только не понял: клиент это кто в этой цепочке? esp -> бд (ну через http api какой нибудь или прям напрямую) понял бд-> dashboard тоже , а "клиент сохраняет в базу" - нет
клиент mqtt. Есть cloudmqtt куда датчики пулят дату, клиент (сервис где-то на сервере) сохраняют данные в базу, которая используется графаной.
Anonymous
можно сервис организовать с апишкой и с esp напрямую в сервис пулять конечно... но теряются преимущества mqtt
romanetz
Сказки же, что за дибил их в гостиницу потащил
Да легко поверю, уборщицы своей шваброй целые месторождения останавливают...
romanetz
Самый главный вредитель )))
Sid
Я про номер больше
Resident
ребят, для хранения данных(метрик с датчиков) InfluxDB норм выбор?
Для метрики норм удобно в grafana выводить всякие красивые графики, grafana умеет оповещения слать в телегу или webhook фиксировать аварии всякие можно поидее
Yuriy
Сказки же, что за дибил их в гостиницу потащил
это рассказывал Попов С. - чего ему врать то. Но безусловно странные есть моменты - в жизни с другой стороны так и бывает. Это уже просто люди - строят радиотелескопы - чего такого , и часы не фонят чтобы их в гостиницу не взять - делегация иностранная - ночью приехали. А куда они ночью пошли тогда- и уборка ночью... Ну да надо уточнить подробности.
Yuriy
можно сервис организовать с апишкой и с esp напрямую в сервис пулять конечно... но теряются преимущества mqtt
а какие преимущества тут будут использованы? что лучше будет с брокером между бд и esp, чего не будет если его убрать. Тут "облако" вообще на любителя - что оно несет проекту? Почему не локальное хранение обработка -ну и доступ если надо снаружи. весь необходимый стек - развернуть дома и всё - пробросить порт до графани - а лучше реверс прокси.
Yuriy
Преимущества интерфейса mqtt. Мне не нужно думать про auth, понятная система pub/sub, QoS. А где мне хранить данные, если я не хочу сервак дома и у меня нет white IP?
auth -http basic - тоже самое - шифрования нет. авторизация ровно такая же pub/sub - как раз зачем? qos -туда же. тогда никак . так же как и возможности отправить в случае отсутсвия инета - временного - будет потеря данных White IP не нужен
Yuriy
Лично или байки из склепа?
на лекции на ютубе есть
Sid
Ну это уровень строили завод хим реактор уехал на 100 метров, перенчли завод
Yuriy
вот ведь бывает как - расскажи полностью PS :)
в Ленинграде переносили дома - на домкратах чего такого - это уж точно было - фильм документальный есть. Хотя тут как сказать - я не смог бы такого - не переносил - лично не видел - как в это - либо верить либо нет. Законы физики не нарушены. Я верю
Sid
вот ведь бывает как - расскажи полностью PS :)
Ну тип тестовый пуск, хим реактор весом 1000+ т уезжает
Sid
Завод перестраивают вокруг него
Yuriy
Так это байка или реальный факт
Sid
А судя по всему байка
Yuriy
Ну этот как железная дорога у которой ровно одна дуга - изгиб - вообще ничем не рельефом скажем - для обывателя не обоснован... где большой палец был - линейку держал который Слышал о такой ? Петр Первый держал ее - вот это байка или факт? На ютубе нет , фильма документального нет... но дорога есть и этот "артефакт" тоже. Хз как объяснить. Мне вариант с линейкой нравится - услышал от экскурсовода - но они то байки травить любят И с часами наверно, просто юпс пролюбили забыли воткнуть и на уборщицу свалили. Но телескоп построили один фиг
Yuriy
скажите а как красиво сделать следующее: есть linked list , по предикату отбираем подходящие элементы и делаем из них key:value, key:value, и .т.п . печатая в поток - у последнего (не в списке, а по выполнению функции- условия) нам не надо "," в конце добавлять. Вот эта "," - как ее не добавлять? Ну сводится задача к вопросу, в как узнать что это последний элемент. в for (auto x: y) - сравнивать каждый раз что-ли - это тупо , сначала выяснить какой последний, а потом 33 раза сравнивать по индексу for , но опять же до этого надо пробежаться узнать , а какой он будет последним. Сначала получить сроку длинную и убрать запятую - буфер появляется лишний, делать из одного списка второй уже отобранный - то же самое память нужна. ставить ее в начале , да? начиная со второго... и опять 33 раза if не первый ли это (bool уже хорошо). Как по красоте сделать?
Alexey
Как вариант, ставить всегда, в конце просто убрать у последнего элемента
Yuriy
Как вариант, ставить всегда, в конце просто убрать у последнего элемента
ну вот в этом и вопрос - внутри цикла обхода - как поймешь последний он будет или нет - если ты отбираешь их по условию - которое тебе передали - точнее лямбда чья -то вернула да/нет
Alexey
Я предполагал наличие выходного буфера, и смотреть уже в нем
Yuriy
Я предполагал наличие выходного буфера, и смотреть уже в нем
пока решил ставить ее у "не первого" в начале - может это и единственный логически допустимый вариант -без доп расходов - кроме if(!first) а начале и first =true в конце цикла. И он же индикатор того что они были вообще хоть один, условие отбора самое первое: { if(!somecase) continue; if(!first) add_comma; do_work; first = true; } return first;
Dr Zlo
скажите а как красиво сделать следующее: есть linked list , по предикату отбираем подходящие элементы и делаем из них key:value, key:value, и .т.п . печатая в поток - у последнего (не в списке, а по выполнению функции- условия) нам не надо "," в конце добавлять. Вот эта "," - как ее не добавлять? Ну сводится задача к вопросу, в как узнать что это последний элемент. в for (auto x: y) - сравнивать каждый раз что-ли - это тупо , сначала выяснить какой последний, а потом 33 раза сравнивать по индексу for , но опять же до этого надо пробежаться узнать , а какой он будет последним. Сначала получить сроку длинную и убрать запятую - буфер появляется лишний, делать из одного списка второй уже отобранный - то же самое память нужна. ставить ее в начале , да? начиная со второго... и опять 33 раза if не первый ли это (bool уже хорошо). Как по красоте сделать?
стандартный лист?
SetPf
скажите а как красиво сделать следующее: есть linked list , по предикату отбираем подходящие элементы и делаем из них key:value, key:value, и .т.п . печатая в поток - у последнего (не в списке, а по выполнению функции- условия) нам не надо "," в конце добавлять. Вот эта "," - как ее не добавлять? Ну сводится задача к вопросу, в как узнать что это последний элемент. в for (auto x: y) - сравнивать каждый раз что-ли - это тупо , сначала выяснить какой последний, а потом 33 раза сравнивать по индексу for , но опять же до этого надо пробежаться узнать , а какой он будет последним. Сначала получить сроку длинную и убрать запятую - буфер появляется лишний, делать из одного списка второй уже отобранный - то же самое память нужна. ставить ее в начале , да? начиная со второго... и опять 33 раза if не первый ли это (bool уже хорошо). Как по красоте сделать?
А всмысле надо пробежаться? Какой маркер того, что элемент последний?
SetPf
Чет у меня подозрение, что после первичного отбора элементов их кол-во будет известно.
SetPf
У вас по хорошему - решение этой задачи от контекста зависит же. Если это раз в полгода вызывается - да проверяйте ифом в цикле. Если тысячу раз в секунду - я бы с ГОТО намутил =)