IT News: Digital Camera, OS, Laptop, Smartphone, Smart TV, Sound...

The Author's Project by Valeri N.Kravchuk
Сайт проверен Dr.Web
Меню сайта
  • Главная страница
  • Информация о сайте
  • Дневник
  • Каталог файлов
  • Обратная связь
  • Каталог сайтов
  • FAQ
  • Доска объявлений
  • Форум
  • Фотоальбом
  • Категории раздела
    Автомобильные гаджеты, ремонт... [143]
    Безопасность IT [404]
    Блоки питания, Power Banks, зарядки... [508]
    Видеорегистраторы [186]
    Гаджеты для спорта и здоровья... [190]
    Гаджеты, аксессуары... [627]
    Измерительная техника, инструменты [437]
    Накопители данных [232]
    Нетбуки, Ноутбуки, Ультрабуки [689]
    Мультиварки, блендеры и не только... [162]
    Планшеты [764]
    Радар-детекторы [26]
    Роботы-пылесосы [37]
    Своими руками [360]
    Сети, сетевые технологии, оборудование... [273]
    Смартфоны [4959]
    Фотокамеры, объективы, искусство фотографии.. [541]
    Умный дом [50]
    Электронные книги [101]
    CB, LPD, PMR- связь... [170]
    DECT, IP-телефоны [18]
    Drones, boats, cars... [108]
    electric cars [35]
    GPS-навигаторы, трекеры... [51]
    Linux и не только [3981]
    mini computers и не только... [409]
    News IT, Это интересно, ликбез... [1120]
    Smart TV, UltraHD, приставки, проекторы... [415]
    Smart Watch [268]
    Sound: наушники, плееры, усилители... [618]
    Windows 10... [301]
    Windows 11 [37]
    Погода

  • Метеорадар БРЕСТ
  • Погода в Бресте от www.yr.no

    Яндекс.Погода БРЕСТ

  • Интересные ссылки

    COMPIZOMANIA

    Наш опрос
    Оцените мой сайт
    Всего ответов: 1347
    Статистика
    Анализ веб сайтов

    Яндекс.Метрика

    Рейтинг@Mail.ru Яндекс цитирования

    Russian America Top. Рейтинг ресурсов Русской Америки.

    eXTReMe Tracker

    Правильный CSS!


    Онлайн всего: 36
    Гостей: 36
    Пользователей: 0
    Locations of visitors to this page
    Форма входа
    Главная » 2014 » Октябрь » 28 » Подключаем китайскую метеостанцию
    07:58
    Подключаем китайскую метеостанцию

    Подключаем китайскую метеостанцию

    В сети широко рассматривался вариант реализации датчика температуры, выполненного на микросхеме DS18B20 и подключенного к роутеру TP-link MR-3020 ( с прошивкой OpenWRT) через преобразователь PL2303.
    Утилитой digitemp датчик читался и данные отправлялись на сайт narodmon.ru.

    Но данного функционала оказалось маловато, захотелось чего-то большего…

    На китайском сайте была заказана погодная станция (Weather Station). Внешний вид:



    Сие чудо китайской инженерии согласно описанию имеет довольно сносные технические характеристики и позволяет измерять следующие параметры:
     

    1. температуру воздуха;
    2. влажность воздуха;
    3. скорость ветра;
    4. направление ветра;
    5. величину атмосферных осадков.


    Единственный минус, так это отсутствие показаний величины атмосферного давления.

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

    Решено было разобрать передатчик и посмотреть его работу осциллографом.

    Опытным путем была найдена цепь модулятора, формирующая осциллограммы следующего вида:



    Передавалось последовательно две одинаковых посылки, затем передатчик молчал около 40 секунд.

    На одном форуме ребята подсказали, что кодировка посылки напоминает манчестерский код.

    Было принято решение сделать устройство приема сигнала («аппаратный сниффер») и посмотреть структуру сообщения, в надежде на возможное вскрытие и извлечение полезной информации.

    В загашнике валялось пару отладочных плат на микроконтроллере STM32F103C8T6, ранее приобретенных через китайский сайт:



    Цепь модулятора была подцеплена на пины PA0, PA1, обработку импульсов осуществлял по прерываниям (по переднему и заднему фронту), биты паковали в байты и выводил через UART.

    В результате был получены сообщения следующего вида:
    температура: 23 C влажность: 61%
    0xF5 0x3F 0x42 0x00 0xF0 0xE6 0x3D 0x00 0x00 0x00 0x01 0x00 0x8A 0x0A
    температура: 22,4 C влажность: 53%
    0xF5 0x3F 0x42 0x00 0xF0 0xE0 0x35 0x00 0x00 0x00 0x01 0x00 0x7C 0x76
    температура: 27,7 C влажность: 20%
    0xF5 0x3F 0x42 0x00 0xF1 0x15 0x14 0x00 0x00 0x00 0x01 0x00 0x91 0x8B

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

    Пока продолжались изыскания, решено было в довесок ко всему прикрутить датчик атмосферного давления BMP085 (на платке с обвязкой около 200 руб. у китайцев). Выглядит вот так:



    Прицепил его к отладочной плате по I2C, исходный код для работы с ним найден в сети. Все сразу заработало. Появилась возможность измерять атмосферное давление, температуру и вычислять высоту.
    Теперь, в ответ на запрос (отправляем по UART знак ‘?’) получаем следующее сообщение:
     

    01 Pressure : 762.02 mmHg
    02 Temp_indoor : 23.10 C
    03 Humidity : 37 %
    04 Temp_outdoor : 19.00 C
    05 Wind_speed : 2.0 m/s
    06 Wind_direction : 360
    07 Precipitation: 0 mm
    


    Теперь все надо запаковать и отправить в сеть на narodmon, для чего подключаем отладочную плату к роутеру MR-3020:



    Прошивка кастомная, с поддержкой 3G модема (делал ставку на автономность).

    Вот такой скрипт дергаю cron’ом каждые 6 минут:
     

    #!/bin/sh 
    
    TEST_WAN="`ifconfig | grep 3g | cut -b 1`"
     if [ "$TEST_WAN" = 3 ]; then
    # echo "3G-WAN OK"
     logger "3G router OK"
     else
     reboot && exit
     fi
    #-----------------------------------------------------------------
    ifconfig | grep HWaddr | awk '{FS=" "; if(NR==1) {print "#"$5;}}' > /var/log/HWaddr
    count=0
    echo "?" > /dev/ttyUSB0 
    sed -e 's/:/-/g' /var/log/HWaddr > /var/log/temp
    while read -t 3 LINE < /dev/ttyUSB0 ; 
    do 
     echo $LINE | awk '{FS=" "; if($3==":") { print MAC $1"#"$4;}}' MAC=`cat /var/log/HWaddr` >> /var/log/temp
    done < /dev/ttyUSB0 
    
    rm /var/log/HWaddr
    echo "##" >> /var/log/temp
    sed -e 's/://g' /var/log/temp > /var/log/narodmon
    rm /var/log/temp
    cat /var/log/narodmon
    LC=`cat /var/log/narodmon | wc -l`
    if [ $LC -gt 2 ]
     then cat /var/log/narodmon | nc narodmon.ru 8283 > /var/log/narodmon.log
    fi
    
    



    Вот результат работы скрипта:
     

    #64-65-B3-2C-25-AA
    #6465B32C25AA01#740.46
    #6465B32C25AA02#25.50
    #6465B32C25AA03#27
    #6465B32C25AA04#29.50
    #6465B32C25AA05#0.00
    #6465B32C25AA06#NONE
    #6465B32C25AA07#0
    ##
    



    Да, еще в автозагрузку прописываем инициализацию настроек порта:

    stty -F /dev/ttyUSB0 cs8 57600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts -hupcl

    В итоге получаем возможность смотреть и сохранять кучу параметров о погоде.

    http://habrahabr.ru/post/241599/

    Категория: Своими руками | Просмотров: 653 | Добавил: laptop | Рейтинг: 4.2/6
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк - единственный из зверей, который может пойти в бой на более сильного противника.
    Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...

    Праздники сегодня

    Поиск
    Календарь
    Архив записей
    Друзья сайта
  • Официальный блог
  • JEEP - the best! Mercedes - the best! Автомобильный портал города Бреста: технические характеристики с фото, авторынок, автоспорт...
    Наша кнопка
    IT новости с моего лаптопа...

    Внимание!
    Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
    Copyright Valeri N.Kravchuk © 2007-2024