Проекты, схемы, управление gsm-сигнализацией, светодиодными лентами через интернет и другие возможности

В наш век смартфонов, умных телевизоров и различных голосовых помощников, узнать прогноз погоды совсем не проблема. Но проще всего просто посмотреть на термометр за окном или экран метеостанции. Изготовление такой метеостанции мы и разберем в этой статье.

Инструменты и материалы:

-Wemos D1 Mini Pro;

Шаг первый: корпус

Сначала мастер проектирует и печатает детали корпуса. Для печати он использовал свой 3D-принтер Ender3 и 1,75мм голубой и красной нити PLA. На печать у него ушло около 6 часов. Корпус состоит из 3 частей:1. Основной корпус2. Задняя крышка3. Подставка

Настройки печати следующие:Скорость печати: 60 мм / сВысота слоя: 0,2 ммПлотность заполнения: 20%Температура экструдера: 220 °CТемпература рабочего стола: 60 °C

Шаг второй: монтаж

Перед сборкой необходимо припаять разъемы к дисплею.

Схема подключения очень проста. Необходимо соединить контакты дисплея TFT с контактами Wemos в соответствии со схемой. TFT-дисплей-> Wemos D1

VIN -> 3. 3VGND -> GNDCS -> D1RESET -> RSTDC -> D2SDI -> D7SCK — D5LED -> D8SDO -> D6T_CLK -> D5T_CS -> D3T_DIN -> D7T_DO -> D6T_IRQ -> D4

Подключение дисплея и ESP. TFT-дисплей-> ESP8266

VIN -> 3. 3VGND -> GNDCS -> D1RESET -> RSTDC -> D2SDI -> D7SCK — D5LED -> D8SDO -> D6T_CLK -> D5T_CS -> D3T_DIN -> D7T_DO -> D6T_IRQ -> D4

Шаг третий: сборка

Теперь нужно установить все детали в корпус, установить и прикрутить крышку.

Шаг четвертый: программирование

Модуль ESP8266 не является частью Arduino-IDE. Сначала его нужно установить. Открываем файл — настройки в Aduino IDE и вставляем следующую ссылку в поле URL-адреса диспетчера дополнительных плат:

Нажимаем ОК. Открываем менеджер доски: Tools / Board / Board Manager. Находим плату ESP8266 и устанавливаем ее. Выбираем LOLIN (WEMOS) D1 R2 & mini. Устанавливаем частоту процессора на 80 МГц, размер флэш-памяти на 4 МБ и COM-порт.

Загрузка всех библиотекЦвет метеостанции ThingPulse зависит от ряда других библиотек. Они должны быть доступны в среде разработки Arduino, чтобы их можно было скомпилировать и связать с конечным приложением. Переходим в Sketch> Include Library. > Manage Libraries. Затем вводим имя каждой библиотеки в текстовое поле. Выбираем последнюю версию и устанавливаем ее.

Ссылки на библиотеки ниже.

от ThingPulse2.

ESP8266 Weather Station

от ThingPulseJson3.

от Daniel Eichhorn4.

от Paul StoffregenПосле загрузки библиотеки разархивируем ее и устанавливаем с помощью менеджера библиотек ArduinoSketch > Include Library > Manage Libraries. Поскольку данное устройство будет отображать данные из OpenWeatherMap, понадобится «ключ API». Переходим на

Переходим к графе «Бесплатно» (Используя бесплатный тарифный план, мы ограничены 60 звонками в минуту). В столбце «Бесплатно» нажимаем «Получить ключ API и запустить». После создания ключа API можно вернуться на эту страницу в любое время, чтобы отредактировать или удалить ее. Ключ API, который потребуется в данном коде на следующем шаге.

Дальше запускаем IDE Arduino:File > OpenНаходим и выбираем esp8266-weather-station-color. inoВ одной из вкладок IDE открываем settings. Устанавливаем параметры как на фото отмеченные красным.

В исходном коде есть файл с именем settings. Для настройки требуются некоторые изменения в этом файле:WiFi:#define WIFI_SSID «yourssid»#define WIFI_PASS «yourpassw0rd»Ключ API для OpenWeatherMap:Вводим свой ключ API в строке 38 файла settings. Строка OPEN_WEATHER_MAP_APP_ID = «your_api_key»;Местоположение:Переходим на

и находим место проживания. Это будет URL-адрес вроде

46575 Число в конце — это то, что присваивается константе ниже. Вводим номер и название местоположения в строках 45 и 46 файла settings. h String OPEN_WEATHER_MAP_LOCATION_ID = «2246575»; String DISPLAYED_CITY_NAME = «Chapra»;Время:Выбираем свой часовой пояс в строке 65файла settings. h #define GMT + 5: 30Загружаем код на устройство. Все готово.

Полностью сборку и настройку такой метеостанции можно посмотреть на видео.

Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

Большие часы на адресной светодиодной ленте

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

Для сборки проекта потребуется изготовить корпус для светодиодной матрицы, закрепить адресную ленту и спаять ее согласно представленной схеме ниже. Если у вас уже есть в наличии матрица на ws2812b светодиодах и ее схема сборки отличается от представленной нами, то вы тоже сможете ее использовать, изменив настройки для подключения матрицы к микроконтроллеру Ардуино в коде программы.

Arduino часы из адресной ленты своими руками

Для питания светодиодной матрицы, а также микроконтроллера со всеми датчиками и модулями можно использовать один источник питания 5 Вольт с достаточной силой тока. Адресная лента подключается к порту 9 через резистор 200-400 Ом для защиты пина от выгорания. Модуль часов подключается к микроконтроллеру по шине IIC к портам A4 и A5, если используется плата Arduino Mega — то порты 20 и 21.

Скетч для часов на Ардуино с температурой воздуха

  • после установки времени на модуле часов, закомментируйте строчку time.settime(); и снова загрузите скетч в плату — иначе после каждой перезагрузки микроконтроллера время будет устанавливаться по новому;
  • ненужный цикл void variant1() или void variant2() можно удалить, а также удалить команду для вызова соответствующего цикла;
  • если текст выводится (останавливается) не по центру led матрицы, то измените позицию текста в функции matrix.setCursor();.

Схема часов Arduino на ws2812b с датчиком BMP180

Датчик BMP180 Arduino позволяет узнать не только атмосферное давление, но и температуру воздуха в диапазоне от 0 до 65 градусов. Датчик давления подключается к микроконтроллеру по шине IIC, параллельно с модулем часов реального времени. После сборки схемы загрузите следующий код в плату — основные настройки (цвет, яркость матрицы и скорость прокрутки текста) можно изменить в начале скетча.

Скетч для часов на Ардуино с атмосферным давлением

  • данная программа от предыдущей отличается только сменой датчика;
  • установите значение boolean davlenie = false;, если вам не требуется выводить атмосферное давление на матрице ws2812b.

Заключение. Проект часов на адресной светодиодной ленте можно развивать и улучшать бесконечно, например, добавить функцию настройки яркости и цвета матрицы или сделать управление ws2812b матрицы через Bluetooth или Wi-Fi. Если у вас остались вопросы или замечания по данному проекту — оставляйте их в комментариях к этой записи, мы обязательно ответим на все ваши вопросы.

Основные этапы процесса переноса:

Следующий этап – изготовление корпуса: корпус будем печатать на 3d принтере: основные этапы проектирования

В результате получили готовое устройство:

Для более удобного отображения данных, поступивших от устройства, была написана маленькая программа на QT.

Решил я как то соорудить погодную станцию. Прогноз погоды не всегда точен, да и намного оперативнее прогнозировать имея собственное устройство. Вещь практически незаменимая при выездах на природу. Надеюсь джиперы оценят ) ) ). Я небуду рассказывать как я учился программировать и т. , просто приложу код и ссылки на библиотеки. Всё это можно собрать практически на коленке. ИтакСписок материалов:-Arduino NANO-Дисплей LCD NOKIA 5110-Датчик давления-резисторы 10 кОм 2 шт-Монтажная плата-проводаПрямые руки приветствуются ) ) )

Скетч. /* SFE_BMP180 library example sketch

Hardware connections:BMP180— (GND) to GND+ (VDD) to 3. 3V(WARNING: do not connect + to 5V or the sensor will be damaged!)You will also need to connect the I2C pins (SCL and SDA) to yourArduino. The pins are different on different Arduinos:Any Arduino pins labeled: SDA SCLUno, Redboard, Pro: A4 A5Mega2560, Due: 20 21Leonardo: 2 3

LCD Nokia 5110 ARDUINO1 RST 32 CE 43 DC 54 DIN 65 CLK 76 VCC 3. 3V7 LIGHT GND8 GND GND

Button Temperature12Button Pressure11

0 masterhi, 13/01/2017

#include #include #include #include #include Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);BMP180 sensor;float T = 0;float P = 0;const int ButtonP = 11;const int ButtonT = 12;int timert =0;int timerp =0;

int t1 =0;int t2 =0;int t3 =0;int t4 =0;int t5 =0;int t6 =0;int t7 =0;int t8 =0;int t9 =0;int t10 =0;int t11 =0;int t12 =0;int t13 =0;int t14 =0;int t15 =0;int t16 =0;int t17 =0;int t18 =0;int t19 =0;int t20 =0;int t21 =0;int t22 =0;int t23 =0;int t24 =0;int t25 =0;int t26 =0;int t27 =0;int t28 =0;int t29 =0;int t30 =0;int t31 =0;int t32 =0;int t33 =0;int t34 =0;int t35 =0;int t36 =0;int t37 =0;int t38 =0;int t39 =0;int t40 =0;int t41 =0;int t42 =0;int t43 =0;int t44 =0;int t45 =0;int t46 =0;int t47 =0;int t48 =0;int t49 =0;int t50 =0;int t51 =0;int t52 =0;int t53 =0;int t54 =0;int t55 =0;int t56 =0;int t57 =0;int t58 =0;int t59 =0;int t60 =0;int t61 =0;int t62 =0;int t63 =0;int t64 =0;int t65 =0;int t66 =0;int t67 =0;int t68 =0;int t69 =0;int t70 =0;

int p1 =0;int p2 =0;int p3 =0;int p4 =0;int p5 =0;int p6 =0;int p7 =0;int p8 =0;int p9 =0;int p10 =0;int p11 =0;int p12 =0;int p13 =0;int p14 =0;int p15 =0;int p16 =0;int p17 =0;int p18 =0;int p19 =0;int p20 =0;int p21 =0;int p22 =0;int p23 =0;int p24 =0;int p25 =0;int p26 =0;int p27 =0;int p28 =0;int p29 =0;int p30 =0;int p31 =0;int p32 =0;int p33 =0;int p34 =0;int p35 =0;int p36 =0;int p37 =0;int p38 =0;int p39 =0;int p40 =0;int p41 =0;int p42 =0;int p43 =0;int p44 =0;int p45 =0;int p46 =0;int p47 =0;int p48 =0;int p49 =0;int p50 =0;int p51 =0;int p52 =0;int p53 =0;int p54 =0;int p55 =0;int p56 =0;int p57 =0;int p58 =0;int p59 =0;int p60 =0;

Библиотекиiarduino. ru/file/227. htmlgithub. com/adafruit/Adafruit-GFX-Librarygithub. com/PaulStoffregen/SPIgithub. com/adafruit/Adafr…44-Nokia-5110-LCD-librarygithub. com/codebendercc/a…ter/libraries/Wire/Wire. hТеперь всё это нужно оформить в соответствующий корпус. Продолжение следует.

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

Описание работы метеостанции:

При подключении питания на экране будут высвечиваться показания температуры, влажности или давления, их отличительные значки и единицы измерения с периодичностью в три секунды.

Нам понадобится:

  • Arduino Uno х 1шт.
  • Trema Set Shield х 1шт.
  • Trema OLED-дисплей 128×64 х 1шт.
  • Trema-модуль барометр BMP280 х 1шт.
  • Trema-модуль датчик температуры и влажности I2C х 1шт.

Для реализации проекта нам необходимо установить следующие библиотеки:

  • Библиотека iarduino_OLED для работы с Trema OLED-дисплей 128×64.
  • Библиотека iarduino_Pressure_BMP для работы с Trema-модуль барометром BMP280.
  • Библиотека iarduino_AM2320 для работы с Trema-модуль датчиком температуры и влажности I2C.

О том как устанавливать библиотеки, Вы можете ознакомиться на странице Wiki — Установка библиотек в Arduino IDE.

Схема сборки:

  • Устанавливаем Trema Set Shield в Arduino Uno.
  • Устанавливаем Trema OLED-дисплей 128×64 в 3 посадочную площадку, в верхнюю I2C колодку.

Код программы:

В начале скетча (до кода setup) выполняются следующие действия:

  • Подключаем библиотеку iarduino_OLED для работы с Trema OLED-дисплей 128×64.
  • Объявляем объект myLED, с указанием адреса дисплея на шине I2C.
  • Подключаем шрифт.
  • Подключаем библиотека iarduino_Pressure_BMP для работы с Trema-модуль барометром BMP280.
  • Объявляем объект SensorP для работы с датчиком давления.
  • Библиотека iarduino_AM2320 для работы с Trema-модуль датчиком температуры и влажности I2C.
  • Объявляем объект SensorTH для работы с датчиком температуры и влажности.
  • Объявляем двумерный массивы для задействованных картинок (отличительные знаки температуры, влажности или давления).

В коде setup выполняются следующие действия:

  • Инициализируем работу с датчиками и дисплеем.
  • Указываем шрифт.
  • Выводим заставку и очищаем экран.

В коде loop выполняются следующие действия:

  • Считываем показания температуры и выводим на экран: отличительный знак температуры, показания, единицы измерения. Ждем три секунды и очищаем экран.
  • Считываем показания влажности и выводим на экран: отличительный знак влажности , показания, единицы измерения. Ждем три секунды и очищаем экран.
  • Считываем показания давления и выводим на экран: отличительный знак давления , показания, единицы измерения. Ждем три секунды и очищаем экран.

Ссылки:

  • Библиотека iarduino_OLED.
  • Библиотека.
  • Wiki — Установка библиотек в Arduino IDE.
  • Wiki — OLED экран 128×64 / 0,96”.
  • Wiki — Trema-модуль датчик давления.
  • Wiki — описание и подключение Trema-модуль датчика температуры и влажности I2C.

Оцените статью
( Пока оценок нет )
Как Это Работает?
Добавить комментарий