Самодельная метеостанция Ea2 на ардуино за 300 рублей!

Шесть лет назад я написал обзор на метеостанцию Ea2 OP308 — она еще успешно исполняет свои обязанности, вместе с тремя датчиками BL999. Но, играясь в настоящее время с ардуино, я нашел интересную библиотеку lib_BL999. С помощью этой библиотеки и приемника 433 мегагерц, можно считывать данные с датчиков BL999. Собственно, предлагать скетчи здесь нет смысла, так как вполне рабочий скетч для вывода данных с датчиков в терминал предлагается в составе библиотеки.

Возможности использования этих данных ограничены только Вашей фантазией. Вот несколько вариантов:

  • Самодельная метеостанция с большим экраном, которая показывает данные с трех датчиков BL999 одновременно.
  • Логгер температур с разных датчиков BL999 (например, с сохранением на SD-карту).
  • Удаленный контроль температур с датчиков BL999 через интернет или по SMS.
  • Получение данных с датчиков BL999 на ПК/ноутбук для обработки в своем программном обеспечении.
  • Придумайте сами.

Разумеется, считывание данных с датчиков BL999 никаким образом не мешает работе самой метеостанции Ea2 (встроенный в нее приемник считывает данные с датчиков  одновременно с самодельным приемником — они друг другу не мешают).

Для примера я использовал Arduino Nano, приемник XY-MK-5V и LCD-экран типа Nokia 5110 для вывода температуры и влажности, но можно обойтись и без него, если выводить данные сразу в компьютер.

Данные выводятся верные, но только на небольшом расстоянии (меньше, чем расстояние приема оригинальной метеостанции). Для увеличения дальности приема нужно припаять к разъему антенны кусок проволоки длиной 173 мм, 345 мм или 691 мм (проверил на 173 мм, дальность приема действительно увеличивается).

Так что если Ваша метеостанция Ea2 сломалась, не огорчайтесь, ведь Вы можете без особых знаний в электронике сделать ее клон за сравнительно небольшие деньги (на 2019-й год это от 130 рублей за ардуино нано + 70 рублей за XY-MK-5V в комплекте с передатчиком, который не пригодится в этом проекте, ну а экран можно выбрать любой какой нравится; тот же экран для нокиа 5110 из примера стоит от 100-130 рублей).  Таким образом, готовый работающий прототип будет стоить примерно 300 рублей, а не 1500-2000 рублей, как новая метеостанция — останется только оформить его по вкусу.

6 комментариев Самодельная метеостанция Ea2 на ардуино за 300 рублей!

  • Илья Борисович

    А можно скетч для этого проекта ( http://tol.acritum.com/1282/ea2-bl999-arduino ) пожалуйста?

    • Tol

      Это был «игрушечный» проект, просто чтобы убедиться, что это работает, поэтому скетча у меня не осталось. Но в библиотеке есть простой пример (https://github.com/sprilukin/lib_BL999/blob/master/examples/reciever/reciever.ino), просто заменяете Serial.println на функцию вывода на тот экран, который у Вас есть в наличии. Всю низкоуровневую возню берет на себя библиотека, так что никаких особо знаний и не требуется для создания своего термометра.

  • Илья Борисович

    А как вот эти два скетча соединить,чтоб на экранчики приём кода отображался? ->

    #include
    // Connect the receiver to digital pin 2.-пин 2.это вход для Радиоприёмника
    void setup() {
    Serial.begin(115200);
    RemoteReceiver::init(0, 3, showCode);
    }
    void loop() {
    }
    void showCode(unsigned long receivedCode, unsigned int period) {
    Serial.print(«Code: «);
    Serial.print(receivedCode);
    Serial.print(«, period duration: «);
    Serial.print(period);
    Serial.println(«us.»);
    }

    —————————————————————
    —————————————————————

    #include
    #include
    Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 6, 7);

    void setup() {
    // инициализация и очистка дисплея
    display.begin();
    display.clearDisplay();
    display.display();

    display.setContrast(60); // установка контраста
    delay(1000);
    display.setTextSize(1); // установка размера шрифта
    display.setTextColor(BLACK); // установка цвета текста
    display.setCursor(0, 0); // координаты начала текста

    display.println(«(=PRIVET=)»);
    display.display();
    }

    void loop() {

    }

    • Tol

      А в чем трудность? Serial.print — вывод в терминал, а display.print — вывод на экран. Меняешь serial.print на display.print, и после отправки всего нужного текста на экран вызываешь display.display(); для отрисовки и видишь текст на экране. Ну и, ясное дело, из секций второго скетча всё в соответсвующие разделы первого перенести, чтобы инициализировать экран перед тем, как выводить на него текст.

  • Илья Борисович

    Это для Вас трудностей нет,а я не разу этого не делал.Я в этом дуб.Могу только тупо скетч залить в ардуину. И то только если знаю какие пины подключать и на какой ардуине. Мне-то надо на arduino mega 2560 PRO ( EMAED ). Помогите пожалуйста.Прошу.

    • Tol

      Ну тут сложно помочь, все равно, что трехлетнему ребенку пытаться объяснять, как ЦПГ дизельного трактора перебрать 🙂 Логично сначала изучить принцип работы трактора, а потом уже пытаться его ремонтировать. В любом деле хотя бы основы надо изучить, иначе в чем вообще смысл этим заниматься? Почитайте сайты по ардуино, есть уроки для новичков, в том числе на youtube (что куда сувать, как светодиод зажечь, помигать им, включать/выключать что-то кнопкой). Почитайте/посмотрите хотя бы первые 10 уроков для новичков, через неделю уже будете сами понимать, что куда подключать и как изменить чужой скетч, чтобы он работал с вашим оборудованием. Просто перепечатывать все это из других форумов в этот не вижу смысла, так как тема не нова и уже очень много интересных и доступных для понимания самоучителей можно найти в интернете.

Leave a Reply to Tol Cancel reply