Новогодние часы из потолочки (опять :) )

Я тут фастался давеча часами в новогодней тематике

Меня самого в них не очень устраивали 2 вещи: 1) если пропадало питание - время терялось (ну на самом деле они продолжали идти с того места, на котором время пропадало, так что если на секунду - то терпимо, но если надольше…) и 2) температура измерялась редко (типа раз в минуту, а может и в 10), так что когда я хотел узнать температуру на балконе, был ли там мороз - то пришлось долго ждать обновления

А исходники я про…ал что называется 😃 они были в свое время выложены на какой-то файлообменник, но с тех пор за давностью оттуда были удалены

Вот с такими вводными (а также с тем фактом, что из-за погоды не полетаешь и скучно вечерами) я начал делать новый вариант 😃
Вводные дополнились еще тем фактом, что я назаказывал у китайцев ардуин, которые теперь не жалко совать куда ни попадя (например мы на работу купили “дискошар”, который оказался не совсем таким, как мы заказывали - тупо вращает огни по потолку и все… всунул в него ардуину и он теперь мигает под музыку… $3 бакса за платку, на которой уже даже usb-интерфейс - по моему это уже дно халявы 😉 )

Там же, у китайцев, я назаказывал для коптеров всяких датчиков; ну и несколько лет у меня болталась микросхемка (или купленная, или вообще с образцами заказанная на халяву) для часов

Так что новый вариант для измерения температуры использует плату BMP-180 (которая используется как датчик давления на коптерах) и кроме температуры показывает и давление атмосферное 😃; кроме того, “запасная” батарейка обещает поддерживать микросхему часов (DS1307) в течение 10 лет

За несколько вечеров на вчера имею следующее:

Втыкал все в общем хаотично, схема получилась вот такая:

Оптимизировать можно, но зачем? То же самое я все время думал про код - “вот тут можно байт сэкономить, вот здесь по другому”, а потом - зачем? Памяти много, чего ее экономить

Пока что нет никакого механизма настройки времени 😁 - я в раздумиях, как именно сделать: в старом варианте была кнопка, которую удерживаешь - начинает цифра мигать, коротким нажатием можно цифру менять, длинным - переходить к редактированию цифр… Может ее и добавлю, но с автономным питанием собственно часов менять время мне кажется часто не придется, так что пока я в код вставил строчку, которая загружает в часы время собственно создания прошивки и ее загрузки… и все, часы идут себе дальше не сбиваясь
Кроме этого, те же китайцы (ох уж китайцы) соблазнили меня еще одной платкой, за $3 - модуль для WiFi 😁
Так что наверное она пойдет в часы и будет интерфейсом для настройки, для показа “погоды” дома и может быть - для показа погоды на улице; т.е. зайдя в бровзере по ip-адресу часов можно будет посмотреть температуру в доме, а скачав из инета погоду на улице показать ее на экране
Но то я пока толком не придумал 😃

Пока же когда появляется питание - начинает 5 секунд отображаться время, потом 3 секунды - дата, затем - если на дворе ноябрь - сколько дней осталось до нового года; потом опять 5 секунд время, 3 секунды - температура, 3 секунды - давление; и все заново

Промучился с arduino ide (редактор кода в xcode, в котором я все время, очень удобный - так что на его фоне все, за что не возьмешься - просто дно какое-то 😦 ), попробовал разные варианты других ide, толком ничего не получилось - пока остановился на sublime text как внешний редактор; т.е. код правится в нем, сохраняется, переключаюсь в arduino и делаю compile или upload…

Не так часто я что-то делаю с контроллерами (вот те часы - в 11-м году еще… потом этим летом для аппы переключалку режимов - т.е. более чем эпизодически), чтобы париться над энвироментом, пойдет; зато код в гитхаб положил, чтобы не потерять 😃

Да, для настройки контроллера (таймеры, порты и вся эта фигня) я когда-то нарыл программку (старая и только для винды, но мне хватает… а заучивать даташиты - опять же в моем случае никакого практического смысла, забываю раньше, чем запоминается) - AvrIoDesigner. Это она оставляет в файлах такие коменты характерные (точнее по коментам она понимает, что в указанный ей файл надо вставить сгенерированный код в правильное место)
Чем ардуино хорошо - что все велосипеды уже выдуманы; что в этом плохо - что “черные ящики”, нифига не понятно ж, как оно там внутри живет… но для таких, как я, любителей - не такая уж проблема. Так вот тут используется несколько “черных ящиков”: библиотека для работы с часами, билиотека для работы с разными сенсорами и собственно библиотека для работы с барометрами bmp085/bmp180; надо скачать архивы и добавить их в arduino как библиотеки
Собственно код как он есть сейчас:
Archive.zip
Дальше скорее всего будет длинная пауза 😃 связанная с тем, что надо все это безобразие как-то культурно упаковать

  • 1001
Tags:
Comments
Andrew_Stick

Виктор,а можно ссылочку на вайфай модуль?

fat_hamster

Погуглите esp8266, я на бангуде кажется покупал

banggood.com/ESP8266-Remote-Serial-Port-WIFI-Trans… вот что то типа

grafis

Это то же можно добавит DHT22 Digital Temperature and Humidity Sensor $3.6
WT588D $3.5 что бы будить бравым маршем и всем этим упровлять по wifi

fat_hamster

о, про влажность точно надо добавить 😃
будет метеостанция целая

сейчас топят хорошо, сухой воздух (есть увлажнятор, но он бОльше в детской комнате работает) - кошку погладишь, а потом касаешься - и током бьет 😃
кошку жалко

Andrew_Stick

Интересная штука. надо заказать потестить. Спасибо.