Часы и связь с сервером. Возможно?
- Войдите на сайт для отправки комментариев
Здравствуйте. Никогда не занимался Arduino, но вот сейчас хочу собрать одно устройство, и появился вопрос, можно ли его реализовать на Arduino?
Кратко, задача устойства - считать время, отображать его (в формате ЧЧ:ММ), и периодически отправлять текущее значение на сервер.
Детальнее:
1. Три счетчика времени с индикацией ЧЧ:ММ.
1.1 Первый - обычные часы.
1.2 Второй - (суточный) - ведет отсчет времени, когда на на входе устройства присутствует логическая "1". При появлении на входе "0" - останавливается, при "1" - продолжает считать дальше. Обнуляется в 00:00 (для этого и нужны первые часы).
1.3 Третий - (сессионный) - ведет отсчет времени, когда на на входе устройства присутствует логическая "1". При появлении на входе "0" - останавливается, при "1" - обнуляется и считает снова.
2. С определенным интервалом происходит передача значения второго (суточного) счетчика на сервер в интернете (например, по HTTP методом POST или GET).
Возможно ли такое реализовать, если да - насколько высока сложность такого проекта, какие аппаратные модули можно для этого использовать, и в каком направлении искать информацию?
а зачем время считать? Сервер и запишет время системное, сервера, не???
вот приблизительно так:
Число записей в таблице - 107598
Данные по температуре за последние 120 минут!
...
а зачем время считать? Сервер и запишет время системное, сервера, не???
вот +1000
Серверу считать правильное время в 100 раз проще, чем ардуине... опять же можно получать сигналы точного времени по сети. И блок RTC на ардуине не понадобится.
А ардуина пусть просто считывает свой сигнал 0 или 1 и сбрасывает это на сервер
Да, в основном на PHP.
вы не продумали как изначально будете настраивать обычные часы
Предполагал, что с помощью клавиатуры, но можно брать текущее время с сервера. Не знаю какой вариант проще реализуем, вероятно второй.
а зачем время считать?
Задача не только отправлять на сервер, но и отображать.
Задача не только отправлять на сервер, но и отображать.
отоброжать тоже можно время, полученное с сервера
отоброжать тоже можно время, полученное с сервера
Можно, но для этого надо как минимум каждую минуту связываться с сервером. Будет ли это оптимальным решением, не знаю.
Впрочем, без первых часов наверно можно обойтись, периодически запрашивая дату/время на сервере, чтобы обнулить счетчики при наступлении новых суток (не обязательно обнулять строго в 00:00, можно и позже, главное до утра).
для простоты реализации я взял WEMOS, пишу в базу на сервере, делается на коленке буквально за час,
для часиков можно взять DS3231, как калибровать смотрим тут и будет Вам счастье
отоброжать тоже можно время, полученное с сервера
Можно, но для этого надо как минимум каждую минуту связываться с сервером.
не нужно. Стандартная ардуина содержит внутри таймер, точности которого вполне хватит, чтобы отсчитывать и показывать время самостоятельно, обновляя его с сервера пару раз в сутки. не больше
для простоты реализации я взял WEMOS, пишу в базу на сервере, делается на коленке буквально за час,
для часиков можно взять DS3231, как калибровать смотрим тут и будет Вам счастье
Вот бы с этим всем ещё разобраться... Но я рад, что задача в принципе реализуема, буду изучать пока.
не нужно. Стандартная ардуина содержит внутри таймер, точности которого вполне хватит, чтобы отсчитывать и показывать время самостоятельно, обновляя его с сервера пару раз в сутки. не больше
Тогда вполне подходящий вариант.
Большое спасибо всем за ответы!
Если доступен вайфай в точке мониторинга, то это самое простое решение
Если доступен вайфай в точке мониторинга, то это самое простое решение
Доступен. Спасибо!
Для индикации к нему можно подключить дисплей?
Если доступен вайфай в точке мониторинга, то это самое простое решение
Вемос-мини не лучше? - не люблю формат уно
Если доступен вайфай в точке мониторинга, то это самое простое решение
Доступен. Спасибо!
Для индикации к нему можно подключить дисплей?
можно
можно
Ок, спасибо.
https://arduino-esp8266.readthedocs.io/en/latest/installing.html#instruc...
сконфигурировать перемычками только ESP, да после можно попробовать выбрать WEMOS D1 R1, такой платы не было, так что точно не знаю, но тема такая уже была на форуме - поищите
Установил пакет, выбрал плату - всё заработало. Спасибо большое!
Не работает дисплей 2004 с I2C, подключенный к плате (ESP-12E WeMos D1 UNO R3 CH340 CH340G WiFi).
Подключал так:
Кроме библиотеки Liquidcrystal i2c, пробовал еще New-LiquidCrystal - не работает.
I2C cканер ничего не находит.
И ещё - дисплей мерцает. Похоже, мерцает не подсветка, а символы (две строки инициализации), и дело не в плохом контакте проводов подключения. При питании от USB мерцание проявляется значительно больше (но тоже бывает по-разному), от источника 5В - меньше.
Подскажите, пожалуйста, в чём может быть дело.
Gregory1
Подтяжка i2c есть на дисплее?
Gregory1
Подтяжка i2c есть на дисплее?
А как определить?
Посмотреть на плату дисплея в поисках нужных резисторов. Можно мультиметром промерить еще
Если я правильно понял, и речь о двух резисторах (4.7к) на плате расширения, подтягивающие SDA и SCL к плюсу питания - то да, они присутствуют.
Да, правильно. А на ESP точно на те ноги СЦЛ и СДА? Мало ли, бывает путаница Dxx/GPIOxx, особенно после перехода с ардуины. Больше то особо нечему глючить, сканер по любому должен находить адрес
Да, правильно. А на ESP точно на те ноги СЦЛ и СДА? Мало ли, бывает путаница Dxx/GPIOxx, особенно после перехода с ардуины. Больше то особо нечему глючить, сканер по любому должен находить адрес
Еще вот мысль пришла, но тоже из области маловероятных. 4к7 это для 5-вольтовой логики. Для ESP надо около 2к2 (надо уточнить по ДШ)
Нет, это пофиг по большому счету. Мне попадались дисплеи, где расширитель порта разведен на разные ноги (т.е. вот тут: <микруха i2c -> контроллер дисплея> по разному), я бы для начала тупо разные библиотеки попробовал, потом проверил по возможности куда там что с расширителя идет на дисплее.
Библиотеки на i2c сканер влиять не должны.
Большое спасибо всем за ответы.
После того, как отключил всё от остальных входов/выходов (тактовые кнопки, переключатель, светодиоды) - дисплей начал находиться сканером, и заработал (скетч "Hello, World!") с обычной библиотекой LiquidCrystal I2C, хотя она и выводит предупреждение (WARNING: library LiquidCrystal_I2C claims to run on avr architecture(s) and may be incompatible with your current board which runs on esp8266 architecture(s).).
Мерцание никуда не делось. Кстати, присмотрелся - мерцает подсветка, а не символы. Подключал второй дисплей (уже 1602, тоже со своей платой I2C) - тоже мерцает, хоть и меньше. Больше всего мерцает при питании от USB (ноутбук). Пробовал два трансформаторных БП 5В 300 мА, и 600 мА (мощнее нет под рукой) - мерцает меньше (от 600 мА почти нормально), возможно дело в питании.
Дальше самое интересное. Подключил всё как было к входам/выходам, вставил в свой скетч код для работы с дисплеем (тот, что из примера "Hello, World!") - и дисплей не работает, и мой прежний код работает глючно (самопроизвольно запускается цикл, кнопки не реагируют на нажатие). Выяснил, что мой прежний код работает нормально до тех пор, пока не раскомментирую строчку lcd.init(); Но при подключении другого дисплея (1602) - код моего скетча так же работает глючно, но дисплей работает. Уже не знаю где искать...
Далее идет продолжение моего скетча, весь не привожу из-за громоздкости.
При физически отключенном дисплее мой код так же работает глючно, видимо, есть программная проблема (может, несовместимость библиотеки LiquidCrystal I2C с моим кодом, на данной архитектуре?..)
Gregory1, хотелось бы увидеть полную схему, т.к. очень похоже на путаницу с пинами.
Схема: http://b.radikal.ru/b11/2103/ab/a62d890120ec.gif
Это он?
Почему у Вас I2c подключены к d14-d15?
Вот так это выглядит:
http://a.radikal.ru/a41/2103/a1/dcb63a7478cb.jpg
http://d.radikal.ru/d42/2103/85/7c2326f66557.jpg
Ни с того ни с сего (я только менял USB-порт) начал выводить в Serial monitor какую-то отладочную информацию.
Снова загрузил обычный I2C сканер (подключены все мои светодиоды и кнопки), он вначале искал, но не находил. После повторного запуска ищет через раз, выводит такое:
Чем дальше ковыряю, тем менее понятно.
Кстати, он должен соединяться с Wi-Fi, если загружен и работает просто обычный I2C сканер?
Это он?
У меня полноразмерный WeMos D1 (не мини). (не знаю, есть ли разница в выводах)
Почему у Вас I2c подключены к d14-d15?
На нах написано SDA, SCL. Видел в ролике, человек так же подключает: https://www.youtube.com/watch?v=3MzcV60kmJQ
Это он?
У меня полноразмерный WeMos D1 (не мини). (не знаю, есть ли разница в выводах)
Т.е. не знаете, но все равно подключаете?
Ну так и спрашивали бы у человека из ролика.
Я сильно подозреваю, что SDA/SCL - это совсем не D14/d15, а какие-нибудь D1/D2, и на плате одни и те же контакты микросхемы выведены на разные контакты платы. Вы подключаете к этим контактам разные устройства, думая, что контакты тоже разные, а на самом деле они одни и те же, и устройства оказываются включенными в параллель и начинают конфликтовать между собой.
Прозвоните тестером Ваши SDA/SCL со всеми остальными разъемами на плате.
одни и те же контакты микросхемы выведены на разные контакты платы.
Контакты звонятся, Вы правы. Огромное спасибо!
Переподключу и буду пробовать дальше.
Всё заработало.
Ещё раз спасибо всем, кто откликнулся.