Интернет-градусник

Тема в разделе "Глядите, что я сделал", создана пользователем АндрейЗ, 16 янв 2019.

  1. АндрейЗ

    АндрейЗ Нерд

    Вечная проблема: собираешься куда-то идти, уже выключил компьютер, начал одеваться и... забыл узнать температуру на улице. Все-таки хочется, чтобы был постоянный индикатор на стене. Но не светящийся - не люблю такие - и одновременно крупный (не мелкая погодная станция). Значит, клепаем свое устройство :)

    [​IMG]

    Состав:
    - Контроллер Node-MCU V3
    - Силовой ключ для шагового моторчика
    - Шаговый моторчик 28BYJ48
    - Зарядка USB
    - Циферблат, втулки, стрелка, крепление на стенку - напечатано на 3d-принтере

    Принцип работы:
    Получаем температуру с помощью погодного API на https://darksky.net (бесплатно до 1000 запросов в сутки) и управляем моторчиком, чтобы поставить стрелку. Прога написана на LUA

    Основные проблемы:
    1. Как установить стрелку в начальное значение после включения питания?
    Можно было бы сделать концевик на краю шкалы. Но чисто механическое решение показалось более простым. Стрелка надета на вал мотора через фрикционную втулку. На краю шкалы - упор. При включении питания мотор крутится влево, стрелка доходит до упора и там остается. После этого можно крутить мотор вправо до нужного значения температуры. Правда пришлось программно учесть упругую деформацию стрелки, втулки и редуктора в моторе - полтора градуса температурной шкалы.

    Фрикционная втулка напечатана на 3D-принтере. Внутрь в качестве фирикционной и упругой прокладки вложена маленькая присоска от "прилипалы", которые раздают в продуктовых магазинах. Плюс немного машинного масла для плавности вращения.

    2. Сервис api.darksky.net выдает данные по https протоколу. В NodeMCU есть модуль LUA, который поддерживает TLS соединение. Но, к сожалению, он работает крайне ненадежно: то и дело падает по нехватке памяти. Нужен прокси-сервер. Старый ноутбук, медиаплейер, файловый сервер подойдут и окажется полезным во многих бытовых случаях. Добавить туда три строчки на PHP - минутное дело:

    <?php
    $w = file_get_contents('https://api.darksky.net/forecast/AP...inutely,hourly,daily,alerts,flags&units=si');
    print_r($w);

    Все!
    Работает :)
     
  2. ИгорьК

    ИгорьК Гуру

    Суть проекта - серьезно усложнить себе жизнь?
     
    yucan, Airbus, NikitOS и ещё 1-му нравится это.
  3. АндрейЗ

    АндрейЗ Нерд

    М-м-м... Мне этот градусник чем-то плохим откликнется?
     
  4. ИгорьК

    ИгорьК Гуру

    Серва решает проблему управления стрелкой.
    Apixu - http запрос температуры.

    Просто вы пошли как-то слишком напролом...

    Ну почему, опыт всегда ценен.
     
  5. АндрейЗ

    АндрейЗ Нерд

    Серву надо идти покупать, а моторчик от другого проекта завалялся.
     
  6. ИгорьК

    ИгорьК Гуру

    Не поспоришь :)
     
  7. АндрейЗ

    АндрейЗ Нерд

    за apixu спасибо. Но уже не буду переделывать
     
  8. parovoZZ

    parovoZZ Гуру

    А на интеле мона градусник сделать?
     
  9. NikitOS

    NikitOS Король шутов Администратор

  10. ИгорьК

    ИгорьК Гуру

    Вообще, идея зачетная.
    Как дизайнерское решение, которое только надо сделать очень качественно.
    Термометр, диаметром сантиметров 40-50 в большом помещении будет смотреться.
     
  11. ZAZ-965

    ZAZ-965 Гуру

    @АндрейЗ, в качестве шутки юмора, если вам нравятся большие механические устройства со стрелками, втулками и моторчиками, есть идея для второй версии - умный платяной шкаф. В зависимости от от погоды выезжают вешалки с подходящей одеждой. Умный дом начинается с умной вешалки ©
     
    Deniskyn, parovoZZ и NikitOS нравится это.
  12. Vovka

    Vovka Гик

    Только что посмотрел: сайт выдает, что там, где я сейчас нахожусь -5С, а посмотрел на два градусника, на одном -9С, на другом почти -11С.
    И потом, может проще за окном термометр держать, чтоб реальную температуру знать? То же устройство, что и у ТС, но только датчик за окном?
    Да и редко у кого кнопочный телефон... поставил соответствующее приложение...
     
  13. ИгорьК

    ИгорьК Гуру

    У меня в часах реализовано так:
    - читаю температуру с apixu
    - читаю пять близлежащих датчиков с народного мониторинга
    - выбираю наименьшую из народных
    - сравниваю с апиксу, если отклонение не больше 3 градусов - публикую народную,
    если больше - апиксу.
     
    NikitOS нравится это.
  14. АндрейЗ

    АндрейЗ Нерд

    В моем случае температура с darksky совпадает с градусником в машине. А на apixu вчера вечером была больше на градус, сегодня на полтора градуса меньше. Еще понаблюдаю, но первый вхгляд darksky в моей локации лучше.
     
  15. SergeiL

    SergeiL Оракул Модератор

    Не, телефон доставать нужно, приложение открывать. Не удобно.

    У меня в коридоре часы с большим индикатором (сегменты высотой 6 см), показывают попеременно точное время и температуру.
    Температура по mqtt с двух датчиков на болонках, с восточной и западной стороны дома. Тоже беру минимальную.

    Все уже привыкли, тут пока делали ремонт, несколько дней розетка на шкафу была отключена, соответственно часы не работали.
    Жена сказала, первое что нужно сделать - восстановить работу часов. Удобно, когда на работу собираешься, и нужно одежду правильную одеть.

    Мне-то пофиг температура, куртка легкая летняя, куртка осенняя, пуховик зимний. Чего тут выбирать? :)

    Но в принципе, давно уже заметил, что OpenWeather не сильно отличается от реальной температуры.
    Вот график за месяц:

    temp.png

    Синим - температура с OpenWeather, черным свои датчики.
     
  16. SergeiL

    SergeiL Оракул Модератор

    А почему так?
    Датчики же ближе наверное.
     
  17. Airbus

    Airbus Радиохулиган Модератор

    А семисегментных индикаторов не нашлось?Или это винтаж?
     
  18. parovoZZ

    parovoZZ Гуру

    Точно)
     
  19. ИгорьК

    ИгорьК Гуру

    Вы, батенька, перфекционист! Апиксу, действительно, не обладает умением угадывать температуру, что показывают автомобили КИА, Опель и Ауди. А теперь и ваша - что за марка?
     
  20. ИгорьК

    ИгорьК Гуру

    Датчики, что вещают в народный мониторинг, имеют свойстово зависать.
    Поскольку выбираю наименьшее (понятно почему?) - бывали случаи, когда показывалась абсолютно невменяемая температура.