Погодная станция ардуино: Метеостанция на Arduino своими руками

Метеостанция на Arduino от А до Я. Часть 1 / Хабр

Оглавление:

«Так, давайте сразу договоримся: вы не собираетесь снимать кино для Голливуда. Даже в Стране чудес утверждается не более пяти процентов от всех сценариев, и только один процент идет затем в производство… Таким образом, вместо всего этого вы собираетесь создать свой собственный Голливуд.»

Эд Гаскель «Снимаем цифровое кино, или Голливуд на дому»

Что, ещё одна погодная станция на Arduino?! Да, ещё одна и, что-то мне подсказывает, не последняя в интернете вещей.

Точно также, как каждый программист обязан написать программу «Hello World!», так и каждый ардуинщик обязан иметь за плечами опыт построения простой или не очень метеостанции.

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

Сразу скажу, что в мои планы не входило использование сторонних сервисов для хранения и отображения данных. Хотелось лично пощупать и понять как всё это работает изнутри от начала до конца, от А до Я.

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

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

Автор проведет вас по запутанным лабиринтам современных технологий интернета вещей. Причём глазами новичка, так как сам им является.

Этот проект был реализован в далеком уже 2016 году, но надеюсь еще актуален.

Мы изучим и будем работать с простыми и сложными вещами :

  • датчиками температуры и влажности типа DHT22, DHT11
  • датчиком барометрического давления типа BMP180
  • WiFi модулем ESP8266
  • радиомодулем типа nRF24 2,4 Ггц
  • семейством Arduino Pro Mini, Arduino Mega
  • солнечной батареей и аккумуляторами
  • языком программирования C/C++
  • языком программирования PHP
  • системой управления базами данных MySQL
  • языком программирования Java и фреймворком Android (создание приложения для Adnroid для отображения погодных данных на смартфоне).

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

Но начнем мы с самого начала правильно. А именно с описания и проектирования будущего устройства «на бумаге», чтобы в конце концов каждый кирпичик лёг на своё место.

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

Но это в промышленности, где работники заняты полный рабочий день.

Каждый, кто клепает по вечерам свои поделки pet-project для «internet of things», должен отдавать себе отчёт в том, что он создаёт именно прототип, полуфабрикат. До уровня нормального промышленного изделия ему очень далеко. Поэтому не следует поручать нашим любительским поделкам какие-либо ответственные участки жизнеобеспечения и надеяться, что они нас не подведут.

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

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

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

Обычно этот этап пропускают. Решая сделать что-нибудь эдакое прямо сейчас, а потом выясняются мелкие детали, которые ставят весь проект в тупик или вовсе делают его неподъемным. Все наши хотелки необходимо записывать, я использую для этого гугл диск, он доступен с ПК и с мобильного устройства.

Итак, наша метеостанция должна:

  • измерять температуру и влажность на улице
  • измерять температуру и влажность в доме
  • измерять атмосферное давление
  • отображать указанные значения на дисплее
  • передавать данные на сервер в интернет, где данные будут храниться в базе данных и отображаться на веб-странице, либо использоваться в мобильном приложении.

Датчики используются самые простые и дешевые. Например, забегая наперед скажу, что температуру DHT22 измеряет достаточно точно, а вот с влажностью немного неточен. Но, опять таки повторюсь, это не имеет значения, поскольку перед нами — прототип, и разброс в 5% влажности ни на что важное в нашей жизни не повлияет.

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

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

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

Замкнутый круг? Но замкнутые круги для того и существуют, чтобы их разрывать.

Выход есть. Можно просто взять и повторить чей-то проект. Я же изучил уже существующие проекты метеостанций и надеюсь сделал шаг вперед.

Итак. Архитектура погодной станции базируется на Arduino. Потому что Arduino имеет небольшой порог вхождения и я уже имел с этим дело. Дальше выбирать уже проще.

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

Центральный, основной блок будет расположен внутри помещения. Это важно определить на начальном этапе, от этого «пляшут» такие важные характеристики как температурный режим работы и питание.

Удаленный датчик (или датчики) будет без «мозгов», его задача — периодически проводить измерения и передавать данные на центральный домашний блок. Центральный блок принимает данные от всех датчиков, показывает их на экране и отправляет их же в интернет в базу данных. Ну, а там уже много проще, как только данные оказываются в базе с ними можно делать всё что захочешь, даже графики рисовать.

Для сношений с внешним миром интернет был однозначно выбран WiFi модуль ESP8266 практически без альтернативы (прим. возможно сейчас такие альтернативы появились). К Arduino выпускаются Ethernet платы расширения, но совсем не хотелось привязываться к кабелю.

Интересный вопрос состоял в том, чем обеспечивать связь между заоконным датчиком (или датчиками, про требование расширяемости системы помним?) и центром. Радиомаячки на 433 Мгц однозначно не подходят (они не подходят ни для чего вообще).

Воспользоваться опять ESP8266 ?

Минусы такого решения:

  • необходим устойчивый WiFi за пределами дома

  • дальность связи не будет большой

  • пострадает надежность, при пропадании интернета мы не увидим свои удаленные датчики

  • большее энергопотребление.

  • Энергопотребление ESP8266 :

  • при передаче 120—170 mA

  • при приеме 50—56 mA

  • в режиме Deep Sleep 10 µA (мкА)

  • в выключенном состоянии 5 µA (мкА).

В конце концов для связи удаленных датчиков с основным домашним блоком был выбран чип nRF24L01+ с 2,4 Ггц передатчиком и приемником в одном флаконе, с дополнительной внешней антенной, чтоб уж наверняка «пробить» стены.

Энергопотребление nRF24L01+ 2,4 GHz :

  • при приеме 11 mA
  • при передаче на скорости 2Mbps — 13 mA
  • в режиме standby-I — 26 μA (мкА)
  • в выключенном состоянии 900 nA (нА).

Что у ESP8266, что у nRF24L01+ диапазон рабочих температур подходящий: от -40℃ до +80℃.

Купить nRF24L01+ можно примерно за $1, или сразу с внешней антенной за $3. Купить ESP8266-01 можно примерно за $4. Читайте внимательно описание товара! Иначе купите одну антенну.

Ядро системы вырисовалось. Переходим к самим датчикам.

На улице, как известно, температура может достигать отрицательных значений, поэтому датчик DHT11 не подходит, а вот DHT22 в самый раз.

Характеристики DHT22 / AM2302 :

  • питание от 3,3 В до 5 В, рекомендуется 5 В
  • потребление 2.5mA максимум, в момент измерения и передачи данных
  • диапазон измерения влажности 0-100% с погрешностью 2-5%
  • диапазон измерения температуры от -40 до +125°C с погрешностью ±0.5°C
  • запрос на измерение не чаще 0,5 Гц — одного раза в 2 секунды.

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

Характеристики DHT11:

  • питание от 3,3 В до 5 В
  • потребление 2,5 mA максимум, в момент измерения и передачи данных
  • диапазон измерения влажности 20-80% с погрешностью 5%
  • диапазон измерения температуры от 0 до +50°C с погрешностью ±2°C
  • запрос на измерение не чаще 1 Гц — одного раза в секунду.

Купить DHT22 можно примерно за $3. DHT11 стоит дешевле — $1, но он и менее точен.

Теперь возвращаемся опять к Arduino. Какую плату выбрать?

Я тестировал отдельные части системы на Arduino UNO. Т.е. подключал к уно ESP модуль и изучал его, отключал, затем подключал nRF24 и т.д. Для финальной реализации заоконного датчика выбрал Arduino Pro Mini как наиболее близкую к Uno из миниатюрных.

По энергопотреблению Arduino Pro Mini также выглядит неплохо:

  • нет преобразователя USB-TTL, который сам по себе «кушает» много,
  • светодиод подключен через 10к резистор.

Для продвинутого сбережения энергии планировалось:

  • удалить светодиод — индикатор питания на Arduino Pro Mini (я пожалел, не стал портить плату)
  • либо использовать «голую» сборку на микропроцессоре Atmel ATmega328 (не использовал)
  • использовать библиотеку Low Power Library или JeeLib.

Из библиотек выбрал Low Power Library, она проста и содержит только то, что нужно.

Для центрального блока, поскольку к нему планировалось подключить многочисленную периферию, была выбрана плата Arduino Mega. К тому же она полностью совместима с UNO и имеет больше памяти. Забегая наперед скажу, что этот выбор полностью оправдался.

Купить Arduino Mega можно примерно за $8.

Теперь про питание и энергопотребление.

Arduino Pro Mini бывают двух видов:

  • на напряжение питания 5В и частоту 16МГц
  • на напряжение питания 3,3В и частоту 8МГц.

Поскольку радио-модуль nRF24L01+ требует для питания 3,3 В, а быстродействие здесь не важно, то покупайте Arduino Pro Mini на 8MHz и 3,3В.

При этом диапазон питающего напряжения Arduino Pro Mini составляет:

  • 3,35-12 В для модели 3,3 В
  • 5-12 В для модели 5 В.

У меня уже была Arduino Pro Mini на 5В, только поэтому я её и использовал. Купить Arduino Pro Mini можно примерно за $4.

Питание центрального блока будет от сети 220 В через небольшой блок питания, дающий на выходе 12В, 450mA, 5W. Типа такого за $5. Там еще есть отдельный вывод на 5В.

А ежели этого не хватит, то можно и помощнее поставить. Другими словами экономить электропитание для центрального блока нет особого смысла. А вот для удаленного беспроводного датчика энергосбережение является важнейшей частью. Но и функциональность не хотелось бы терять.

Поэтому Arduino Pro Mini и радиомодуль nRF24 будут запитываться от связки 4-х Ni-Mh аккумуляторов.

И помните, максимальная емкость современного аккумулятора примерно 2500—2700mAh, всё что больше это либо маркетинговые уловки (Ansmann 2850) либо обман (UltraFire 3500).

Li-Ion аккумуляторы я не использую по нескольким причинам:

  • очень дорогие
  • при снижении температуры окружающего воздуха ниже 0°C происходит снижение мощности литий-ионного аккумулятора до 40-50%
  • те которые дешёвые производятся без защиты и небезопасны (при КЗ или разряде могут взрываться и гореть, см. кучу роликов на ютюбе)
  • стареют, даже если не используются (впрочем это можно сказать обо всех химических элементах), через 2 года Li-Ion батарея теряет около 20% ёмкости.

Для прототипа вполне можно обойтись качественными Ni-MH AA или AAA аккумуляторами. Тем более, что нам не нужны большие токи. Единственный минус Ni-MH аккумуляторов — это их долгая зарядка.

Подведем итоги. Вот общая схема как всё работает.

Продолжение следует.

Домашняя метеостанция на Arduino и отправка данных на «Народный мониторинг» — Arduino

Всем привет, в этой статье поговорим об уже надоевшей всем теме — «Метеостанция». Каждый пытается сделать что-то свое, вот и я не стал исключением и попытался материализовать свои эротические фантазии на контроллере ESP8266. Тема задумывалась уже давно как некое обновление для предыдущего проекта этой тематики, но из-за своей неспешности переросла в нечто самостоятельное.

При всей привлекательности микроконтроллера ESP8266 с его большим объемом памяти, железной поддержкой Wi-Fi и массой разных плюшек, он не лишен недостатков. Самый основной — ограниченное количество поддерживаемых одновременных TCP соединений равное 5. Если превысить этот лимит, то контроллер потеряет связь с окружающим миром, при этом watchdog будет думать, что все в порядке, а следовательно, даже не попытается нам помочь. Будем стараться это помнить!

Стоит начать с концепции

Доступ к данным метеостанции нужно получать без установки внешних приложений и под любой операционной системой. Для этих целей подойдет практически любой современный браузер. Меня всем устраивает Chrome.

Раз уж за основу взят HTTP протокол, стоит озаботиться экономией трафика и ограничением числа TCP соединений. Хорошим тоном будет передача всего необходимого для формирования страницы контента только при первом обращении, а все последующие операции, такие как отображение показаний с датчиков или настройку контроллера, производить через API. В этом нам поможет JQuery.

А вот, чтобы ослабить болевые ощущения от передачи файлов с SPI Flash в браузер, стоит предусмотреть систему кэширования, например, Etag. Это позволит отдавать тяжелый контент единожды, а при последующих загрузках страницы просто подтверждать его актуальность на уровне Web сервера микроконтроллера и кэш браузера вступит в игру, неимоверно уменьшив время загрузки страницы! «Вы были правы в одном, Мастер: переговоры были недолгими.» © Звездные войны. Эпизод 1

Из-за того, что метеостанция с датчиками и контроллером должна располагаться на улице, жизненно необходимо предусмотреть возможность обновлять прошивку ESP через Web интерфейс.

Аналогичным образом должны обновляться файлы Web сервера расположенные на SPI Flash. Этот и предыдущий пункт вкупе позволят обновлять функционал микроконтроллера из домашней сети или из интернета, если конечно в этом возникнет острая необходимость.

Чтобы никто посторонний не могу вмешаться в работу устройства или изменить файлы Web сервера, последний должен хотя бы как-то себя защищать. Пускать в панель управления только после авторизации, блокировать доступ при попытках брутфорса пароля. В конце концов, контроллер обязан самостоятельно генерировать ключи (salt) для авторизации, дабы сделать алгоритм непредсказуемым и исключить потенциальный взлом, в случае если злодей завладеет исходниками проекта. Понятно, что кому она там нужна, эта метеостанция, если её не завязывать с умным домом, если только из-за спортивного интереса, но как говориться “Береженого Бог бережет”.

Датчики стоит расположить по уму — в метеобудке, а вот контроллер в сухом и закрытом боксе. Объединить их между собой, как мне кажется, удобнее по I2C шине — минимум проводов, максимум удобства.

Практически на всех вариантах плат ESP-xx имеется штатный светодиод, можно воспользоваться им как для индикации режимов и состояния микроконтроллера, так и для вывода какой-либо промежуточной информации.

Что касаемо режимов работы ESP8266, как ни странно, но он должен находить домашнюю Wi-Fi сеть и подключаться к ней. Если вдруг звезды не были к нам благосклонны, и домашняя беспроводная сеть приказала долго жить, контроллер обязан перейти в режим точки доступа (AP) дабы к нему можно было подключиться с какого-либо устройства и перенастроить его на другую сеть. А вот пока последнее не произошло, ESP должен периодически сканировать эфир в поисках долгожданной домашней точки доступа и, если боги были к нам милосердны, и домашняя сеть появилась в эфире, незамедлительно переключиться в режим клиента (STA) и в пылу страсти воссоединиться с ней.

Ну и естественно, как же без отправки данных на внешние ресурсы, сейчас без этого не обходится ни одна уважающая себя кофеварка, не говоря уже о метеостанции. Думаю, что основным блюдом станет протокол MQTT, это уже облегчает возможность интеграции с умным домом, стулом или той же кофеваркой. Ну а на закуску добавим поддержку «ThingSpeak» и «Народного мониторинга». При желании можно нарастить функционал, благо памяти у микроконтроллера еще много.

Как я себе это представляю

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

Перейдем к физической сборки устройства

Как по мне, так самый оптимальный вариант, это воспользоваться отладочной платой NodeMCU V3 и базой для неё. Таким образом, мы получим отличный комплект с разведенной на его борту всей необходимой обвязкой и возможностью питать устройство от 5 до 24 Вольт.

Отладочная плата на базе, и смотрится хорошо, и удобства хоть отбавляй.

Заливаем прошивку, образ SPI Flash и подключаем четырьмя проводами датчики. Справится даже ребенок.

Ссылки:

Базовая плата для NodeMCU V3 с преобразователем питания 5-24V в 5V

Отладочная плата ESP8266 от NodeMCU

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

Датчики взятые за основу

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

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

Будка печатается на 3D принтере по эскизам опубликованным на Thingiverse неким kowomike, спасибо добрый человек! Архив с эскизами можно будет скачать в конце поста.

Фото готовой будки

Шпилька М8 крепится через зажимной хомут к мачте уличной антенны.

Примерка. Шпилька практически не укорачивалась, чтобы не закрывать будку параболической Wi-Fi антенной.

Хотя в моем случае все это сделано не правильно т.к это солнечная сторона дома. Доступа на теневую сторону дома у меня нет, поэтому приходиться довольствоваться тем, что имеем. По прошлой метеостанции мне говорили «на солнечной стороне все эти измерения — сферический конь в вакууме, слепи %описание-многА-букАв% и закрепи на теневой стороне дома».

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

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

Намного проще обстоят дела с датчиком атмосферного давления BMP180 и влажности SI7021, кстати, с последнего мы также будем забирать данные о температуре. Их размещаем в оставшемся свободном пространстве будки, благо его там с избытком, но не в конусе т.к пространство в нем менее проветриваемое.

Все хозяйство подключается между собой следующим образом

NodeMCU | ESP 07/12 | Датчики
——————————
D2 | GPIO 4 | SDA
D1 | GPIO 5 | SCL
3. 3V | 3.3V | 3.3V
GND | GND | GND

ВАЖНО: при финальном монтаже устройства на его место службы, обязательно установите перемычку между пинами GPIO 0 (D3) и питанием 3.3 Вольта. Причины её установки описаны в закрепленном сообщении с описание обновления от 12.08.2017.

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

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

Разъемы для подключения внешних датчиков и питающей линии установил на местах где была пара штатных заглушек. Закрепил все через переходную пластину, выпиленную из куска фольгированного текстолита. Естественно, предварительно пластина была протравлена, а вся медь искоренена, ибо в этом случае она нам не друг.

Также была предусмотрена проставка из полиэтиленового поролона (используется в качестве упаковочного материала при транспортировке грузов) между текстолитом и корпусом, общей толщиной 5мм, а после затяжки крепежных винтов, его толщина не превышает 1мм. Это было сделано из-за опыта эксплуатации предыдущего (временного) бокса для этой метеостанции. Без проставки влага быстро найдет путь вовнутрь, и срок службы устройства снизится.

Производим примерку.

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

Все самое сложное позади, остается только вывести на один разъем шину i2c с питание 3.3 Вольта, а на другой подвести пины питания платы расширения. Но т.к у меня валялся «хвост» отрезанный когда-то от не рабочего блока питания маршрутизатора, и я не побрезговал им воспользоваться по прямому назначению.

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

Общий вид получился таким

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

Требования (!!!Читать обязательно!!!)

Arduino IDE с поддержкой контроллера ESP8266, версия 2.6.2 (на версиях выше работоспособность не проверялась)

Установленный модуль в Arduino IDE для загрузки файлов во Flash память микроконтроллера. Как установить описано тут.

Для работы модуля загрузки файлов во Flash может понадобится последняя версия Python https://www.python.org/downloads/

Любой модуль на базе ESP8266 c Flash 4MB (3MB выделяем под SPIFFS)

В параметрах выставляем lwIP версии 2 и максимальную производительность (lwIP v2 Higher Bandwidth)

Сам архив с последней версией проекта. Скачать можно в конце статьи или по этой ссылке.

  

Обязательные библиотеки (!!!Читать обязательно!!!)

ArduinoJson (v5.13.5)

PubSubClient

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

Порядок установки (!!!Читать обязательно!!!)

Изучите файлы проекта с примерами использования тех или иных сенсоров. Все файлы с примерами начинаются с префикса users_, это users_auto.h, users_bme280_x2.h и т.д. Загрузите необходимые Вам библиотеки или используйте эти файлы как пример для добавления иных датчиков.

Выставите необходимые настройки для контроллера в среде разработки Arduino IDE. Пример настроек указан на скриншоте выше. Обязательно убедитесь, что выбрано правильное распределение места для внутренней файловой системы, это значит, что 3MB должно быть выделено под файловую систему. Также проверяем, чтобы использовался lwIP v2 в режиме максимальной производительности (lwIP v2 Higher Bandwidth).

Произведите загрузку программы с помощью среды разработки (Ctrl + U).

Произведите загрузку содержимого каталога data в файловую систему. Меню/Инструменты/ESP8266 Sketch Data Upload

Перед тем как устанавливать метеостанцию на постоянное место жительства, подтянуть GPIO-0 (пин D3 на плате NodeMCU) к питанию 3.3V. Во время данной процедуры, питание на контроллере должно отсутствовать.

Первый запуск (!!!Читать обязательно!!!)

Помните, что вся конфигурация микроконтроллера производится исключительно через web интерфейс. Никаких изменений значений тех или иных параметров в коде не требуется, а подобную практику будем считать плохим тоном.

И так, после запуска микроконтроллера он сразу перейдет в аварийный режим и поднимет собственную точку доступа с именем WeatherStation. Это нормальное поведение т.к подразумевается использование метеостанции в домашней беспроводной сети, ну а раз о ней пока ничего не известно, то и подключаться не к чему.

Подключитесь к данной сети с любого удобного устройства и перейдите в панель управления (для этого имеется соответствующая иконка, запутаться невозможно), контроллер будет доступен по адресу http://espws.local или http://192.168.4.1 При попытке входа в панель управления будет запрошено имя пользователя и пароль, по умолчанию admin/admin. После входа в панель управления перейдите в раздел «Основные настройки WiFi» и укажите имя и пароль Вашей домашней сети, а также, при необходимости, укажите пароль для подключения к точке доступа поднимаемой контроллером в аварийном режиме. Если все сделано правильно, то контроллер подключится к домашней сети в течении 5-и минут.

Если Ваша домашняя сеть скрыта, то после первоначальной настройки необходимо перезагрузить контроллер. Это необходимо из-за частичной поддержки работы со скрытыми сетями. После перезагрузки контроллер увидит Вашу сеть и запомнит её MAC адрес. Помните об этом если захотите сменить домашний маршрутизатор.

Хотите помочь проекту или спонсировать новый?

Yandex.Money

PayPal.me

Файлы

 

10 идей для метеостанций на Arduino

Ноябрь — месяц непонятной погоды: ещё утром светило солнышко, а к обеду за окном всё уже белым бело от снега. Отслеживать всю эту погодную канитель поможет старая добрая погодная станция на Arduino. Вдохновляйтесь нашей подборкой самых крутых самодельных погодных станций, и собирайте себе свою, чтобы всегда быть готовым к сюрпризам природы и не сесть в лужу буквально.

Bluetooth погодная лампа

Управляющее устройство шарится в сети в поисках информации о погоде и отправляет по Bluetooth сигналы на сервомотор в лампе, которой меняет картинки в зависимости от прогноза. Простая и стильная погодная станция, способная украсить ваш интерьер.

Настольная погодная тучка

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

Для тех, кто любит тучи побольше есть ещё вот такой вариант

Винтажная погодная станция

Любители винтажных вещиц и стимпанкеры со стажем смогут по достоинству оценить погодную станцию в виде старинных часов.

Погода в Twitter

Эта невзрачная на первый взгляд деревянная пирамидка на самом деле высокотехнологичная метеостанция, способная измерять температуру, влажность воздуха, давление, уровень освещённости, уровень CO и отправлять все данные вам в Twitter.

Tempescope

Tempescope — это такая штука, в которой можно принести домой дождь. Или туман. Или даже грозу. И они будут там жить. Теперь даже в окно смотреть не обязательно, чтобы знать, что приготовила вам на сегодня матушка природа.

Погода в кубе

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

Переносная метеостанция

А это вариант для тех, кто любит разные супер-гаджеты. С такой штукой на руке не только будете знать прогноз погоды, но и выглядеть как герой Sci-Fi сериала.

Метеостанции от Амперки

Мы были бы не мы, если бы не внесли свой вклад в отечественное метеостанциостроение. Мы внесли. И даже не один. Сделали говорящий анемометр:

и беспроводную метеостанцию для народного мониторинга

  • Вконтакте
  • Facebook
  • Twitter

О проекте — Hi-Lab.ru

Arduino Mega Server это операционная система для вашего контроллера Ардуино. Это программное обеспечение, которое добавляет вашему контроллеру удобный интерфейс, позволяет конфигурировать его прямо с веб-странички, имеет развитые сетевые функции, поддерживает работу часов реального времени, имеет встроенную поддержку множества устройств, таких как датчики, исполнительные устройства, устройства индикации и т. п. И по совокупности уникальных свойств и предоставляемых возможностей не имеет аналогов.

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

Кроме того, Arduino Mega Server это превосходная обучающая платформа, при работе с которой вы можете освоить множество современных актуальных технологий.

Лицензия

Arduino Mega Server это полностью свободное программное обеспечение. Не накладывается никаких ограничений на копирование, модификацию и распространение AMS. Вы можете свободно использовать его в своих личных и коммерческих проектах. Вы можете создавать свои версии AMS на Github без каких-либо ограничений.

Система поставляется «как есть», без каких-либо гарантий и, если вы используете её, то делаете это на свой страх и риск. Права на сторонние библиотеки принадлежат их владельцам.

Если вы создаёте свой проект на основе AMS, то рекомендуется называть его отлично от оригинальной версии, например, Arduino Mega Server by (ваш идентификатор).

Статус проекта

На данный момент, проект Arduino Mega Server находится в стадии альфа версии, со всеми вытекающими последствиями. Работать с проектом могут только продвинутые и подготовленные пользователи, готовые разбираться с кодом и всё делать своими руками. Если вы не являетесь продвинутым гиком, то рекомендуется подождать, пока проект не примет более законченный вид.

Версии Arduino Mega Server

Arduino Mega Server это кроссплатформенная система. На данный момент она работает на 8-битной платформе Arduino Mega 2560 и 32-битных платформах Arduino Due и Arduino/Genuino 101. Планируется перенос на новые 32-битную плату Arduino M0 (Zero) и беспроводной Wi-Fi модуль esp8266.

Базовой конфигурацией системы является связка из трёх компонентов: плата Arduino Mega 2560, плата сетевого интерфейса Ethernet Shield и microSD карта памяти. Это минимальный набор оборудования, который позволит вам работать с AMS.

Исторически так сложилось, что базовой платформой для AMS является Arduino Mega 2560. Именно для этой платформы код наиболее отработан и на этой платформе на данный момент присутствует наилучшая поддержка различного оборудования. Так что если вы хотите создать какой-либо проект, то Arduino Mega 2560 это ваш наилучший выбор.

С другой стороны, Arduino Due интересна своей 32-разрядностью и большим объёмом оперативной памяти и является более перспективным вариантом, чем Mega. Так что если вам нужен максимум возможностей и быстрая работа, то ваш выбор — Arduino Due.

Дополнительное оборудование

Поддержка дополнительного оборудования постоянно расширяется и на данный момент в этот список вошли модули часов реального времени на чипах DS1307 и DS3231, плата сетевого интерфейса Ethernet Shield 2 на чипе W5500 с расширенными сетевыми возможностями и многие другие компоненты.

Начало работы

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

  1. Скачать дистрибутив с последней версией системы
  2. Залить скетч из дистрибутива в свою плату Arduino
  3. Перенести файлы из дистрибутива на microSD карту памяти
  4. Набрать IP-адрес Arduino Mega Server в адресной строке браузера (192.168.1.37 для Mega, 192.168.1.36 для Due или 192.168.1.35 для Genuino 101)

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

Сотрудничество

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

Что нужно, чтобы стать нашим партнёром? Просто свяжитесь с нами по адресу: [email protected]

Погодная станция ( BMP180) часть 2

Продолжаем осваивать датчики для погодной станции.

Датчика BMP180 дает нам возможность не только измерять атмосферное давление но и температуру воздуха а так же отображать высоту над уровнем моря. Высоту конечно расчетную))

Сам датчик очень миниатюрный. Размеры:

Основные характеристики датчика BMP180:

Диапазон измерения давления: 300 – 1100hPa
Напряжение питания: от 3.3 и 5V
Низкое энергопотребление: 3 мкА (режим ультра-низкого энергопотребления)
Точность: режим пониженного энергопотребления, разрешение 0.06hPa (0,5 м)
Высокий линейный режим с разрешением 0.02hPa
Подключение: протокол связи I2C
Возможность измерения температуры в диапазоне -40 … +85 ° C
Время отклика: 5ms
Ток в режиме ожидания: 0,1 мкA
Контакты датчика BMP180:

VIN – для подключения 3,3V питания
GND – для подключения к минусу (GND)
SCL и SDA – для подключения к шине I2C

Т.к. у меня arduino mega, то SCL и SDA подключал к 21, 20 соответственно.

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

Библиотека на которой остановился я эта библиотека от датчика BMP085. ссылка.

Если все сразу залить пример из библиотеки то получим следующее

Temperature = 24.54 *C — Температура в градусах Цельсия
Pressure = 100563 Pa — Атмосферное давление в Паскалях
Altitude = 63,47 meters — Высота в метрах
Real altitude = 78,00 meters — Реальная высота (расчетная)
Хочу обратить Ваше внимание на то, что расчетные данные не точные, и они задаются в программе .

Мы можем получить более точное измерение высоты. Если мы знаем, текущее давление над уровнем моря для наших координат, которое будет меняться в зависимости от погодных условий и тому подобное. Если это 1015 миллибар, то значение равно 101 500 Па.

Далее нужно перевести данные атмосферного давления в Pa в мм.рт.ст ( значение делим на 133.3) и меняем отображение “Pa” на “мм”.

Я дописал в программу еще пару строк таким образом, что было видно и в Ра и в мм.рт.ст.

Следующее, что нужно сделать это ввести свое значение давления, для калибровки высоты.

Для моей местности это значение равно ~ 102000 Pa

Далее нужно было поработать с кодом, что бы все более или менее привести в нужный мне вид.

За одно совместить код из части 1 .

И вот что имеем:

Тут же открываем любой метео сайт и смотрим свой город

Как видно разбежки не большие, если учесть, что макет собран в помещении, то можно считать, что значения адекватные.

Кстати высоту при пересчете тоже указывает так как надо)))

Код программы можно глянуть тут.

P.S. Датчик BMP180 покупал на ebay.

Мини метеостанция Weather Meters для Arduino

 Мини метеостанция Weather Meters для Arduino и не только

Являетесь ли вы агрономом, профессиональным метеорологом или любителем следить за изменением погоды, строите ли свои собственные погодные станции: данное устройство может быть действительно вам полезно. Когда вы исследуете погоду, необходимо несколько довольно специализированных датчиков. Этот комплект представляет собой три основных компонента измерения погоды: скорости ветра, направления ветра и осадков.

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

Датчик дождя построен по принципу опорожнения ковша

Анемометр (измеритель скорости ветра) кодирует скорость ветра.

Наконец, флюгер указывает направление ветра.

После того как распакуете все датчики, убедитесь, что все нужные запчасти и инструменты присутствуют:

* 2 (две) металлические трубки

* 3 (три) сенсора, а именно:

датчик дождя (или, вернее, дождемер, иначе называемый плювиометром)

анемометр

флюгер

* 2 (два) зажима

* 1 (одно) центральное крепление

* 1 (одно) боковое крепление

* 1 (один) винт

* 1 (один) пакет с пластиковыми креплениями

Все датчики в наборе являются «пассивными» компонентами. Это значит, что для работы им нужна подача тока. Каждый датчик выводит данные через коннектор типа RJ-11.

Дождемер

Это устройство замеряет уровень жидких осадков, как можно догадаться из названия.

ВНИМАНИЕ

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

В датчике само-опорожняющийся коллектор. Это значит, что каждые 0,2794 мм осадков, попадающих в коллектор, заставляют срабатывать коллектор, вода изымается, и замыкается электрический контакт.

Замыкание контакта фиксируется на пинах прерывания, или цифровым счетчиком. Центральный провод в коннекторе RJ-11 подключен к датчику.

Анемометр

Это устройство измеряет скорость ветра.

Анемометр оценивает скорость движения воздуха, вращающего ротор. Скорость передается на два внутренних провода в коннекторе RJ-11 (пины 2 и 3), на цифровой счетчик, или на пины прерывания на микроконтроллере. Для конвертирования цифровых данных в скорость ветра, применяется коэффициент 1,492 mph (миль в час) = 1 срабатывание датчика в секунду. В метрических (европейских) единицах этот коэффициент равен 2,4 км/час.

Флюгер

Флюгер указывает направление ветра.

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

Восемь переключателей и соответствующие им резисторы внутри флюгера.

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

Поскольку уровень напряжения зависит от сопротивления внешнего резистора, не существует общего коэффициента для конверсии показателей. В каждом конкретном случае надо читать руководство в Resources and Going Further.

Так как значения, выводимые флюгером, в градусах, то любое значение может обозначать любое направление. Советуем задать 0 градусов как Север и не отклоняться от этого правила. На корпус еле заметно нанесены 4 индикатора по четырем сторонам. Если нужно переопределить направления, нужно не забывать о маркировке. После установки и позиционирования флюгера, следует убедиться в правильной изначальной ориентации.

Учтите, что флюгер показывает направление, ОТКУДА дует ветер (а не куда).

Сборка

Датчик погоды весьма прост в сборке — только механические соединения.

Крепления

Сначала соедините две металлические трубки и закрепите вместе.

Далее насадите крепление на верх трубок. Проследите за плотным соединением выступов и проемов.

Прикрутите шурупы и зафиксируйте.

Анемометр

Далее монтирует анемометр на одну из сторон крепления.

Анемометр имеет выемку, которая подходит к креплению. Это фиксирует анемометр и дает возможность прикрепить сенсор только в одном месте.

Поверните анемометр в креплении, чтобы зафиксировать.

Для более плотной фиксации воспользуйтесь винтом и гайкой (убедитесь что фиксация плотная).

Флюгер

Чтобы прикрепить флюгер, пройдите ту же процедуру, что с анемометром.

Выровняйте датчик и крепление, и вставьте флюгер на место.

Зафиксируйте шурупом датчик на месте.

Дождемер

Чтобы прикрепить дождемер, нужно второе крепление. Это делается для того, что разнести в пространстве дождемер и другие датчики (так получаются более точные показания). Если дождемер будет под флюгером или анемометром, они будут заслонять его, или искажать показания.

Прикрепите крепление дождемера к металлической трубке шурупами. Дождемер должен быть на расстоянии от анемометра и флюгера; после этого зафиксируйте дождемер.

Дождемер имеет проемы и выступы для более плотной фиксации.

Вставьте выступы в проемы, зафиксируйте прибор.

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

В дождемере два проема на каждой стороне. Они предназначены для монтирования сенсора на крыше или заборе.

Подключение проводов

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

После вставки обеих проводов, заметьте, что провод к анемометру короче, чем к флюгеру. Цепь анемометра соединена с цепью флюгера. Нужно вставить провод анемометра в флюгер.

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

Теперь погодная станция собрана. Еще раз убедитесь, что дождемер отдален от флюгера и анемометра, и ничего не сдвинулось во время монтажа.

Теперь можно крепить станцию на крышу, подключать к электронным приборам.

Монтаж погодной станции (опционально)

После сборки погодной станции, можно монтировать ее под открытым небом. Для этого пользуйтесь зажимы и фиксаторы.

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

Фиксировать можно различными способами. Экспериментируйте.

После успешной сборки и монтажа, все готово к работе.

Погодная станция на arduino – Погодная станция на Arduino своими руками – Delvik.ru – Доска объявлений Перми

Метеостанция на Arduino от А до Я. Часть 1 / Habr

Оглавление:

«Так, давайте сразу договоримся: вы не собираетесь снимать кино для Голливуда. Даже в Стране чудес утверждается не более пяти процентов от всех сценариев, и только один процент идет затем в производство… Таким образом, вместо всего этого вы собираетесь создать свой собственный Голливуд.»

Эд Гаскель «Снимаем цифровое кино, или Голливуд на дому»

Что, ещё одна погодная станция на Arduino?! Да, ещё одна и, что-то мне подсказывает, не последняя в интернете вещей.

Точно также, как каждый программист обязан написать программу «Hello World!», так и каждый ардуинщик обязан иметь за плечами опыт построения простой или не очень метеостанции.

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

Сразу скажу, что в мои планы не входило использование сторонних сервисов для хранения и отображения данных. Хотелось лично пощупать и понять как всё это работает изнутри от начала до конца, от А до Я.

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

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

Автор проведет вас по запутанным лабиринтам современных технологий интернета вещей. Причём глазами новичка, так как сам им является.

Этот проект был реализован в далеком уже 2016 году, но надеюсь еще актуален.

Мы изучим и будем работать с простыми и сложными вещами :

  • датчиками температуры и влажности типа DHT22, DHT11
  • датчиком барометрического давления типа BMP180
  • WiFi модулем ESP8266
  • радиомодулем типа nRF24 2,4 Ггц
  • семейством Arduino Pro Mini, Arduino Mega
  • солнечной батареей и аккумуляторами
  • языком программирования C/C++
  • языком программирования PHP
  • системой управления базами данных MySQL
  • языком программирования Java и фреймворком Android (создание приложения для Adnroid для отображения погодных данных на смартфоне).

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

Но начнем мы с самого начала правильно. А именно с описания и проектирования будущего устройства «на бумаге», чтобы в конце концов каждый кирпичик лёг на своё место.

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

Но это в промышленности, где работники заняты полный рабочий день.

Каждый, кто клепает по вечерам свои поделки pet-project для «internet of things», должен отдавать себе отчёт в том, что он создаёт именно прототип, полуфабрикат. До уровня нормального промышленного изделия ему очень далеко. Поэтому
не следует поручать нашим любительским поделкам какие-либо ответственные участки жизнеобеспечения и надеяться, что они нас не подведут.

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

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

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

Обычно этот этап пропускают. Решая сделать что-нибудь эдакое прямо сейчас, а потом выясняются мелкие детали, которые ставят весь проект в тупик или вовсе делают его неподъемным. Все наши хотелки необходимо записывать, я использую для этого гугл диск, он доступен с ПК и с мобильного устройства.

Итак, наша метеостанция должна:

  • измерять температуру и влажность на улице
  • измерять температуру и влажность в доме
  • измерять атмосферное давление
  • отображать указанные значения на дисплее
  • передавать данные на сервер в интернет, где данные будут храниться в базе данных и отображаться на веб-странице, либо использоваться в мобильном приложении.

Датчики используются самые простые и дешевые. Например, забегая наперед скажу, что температуру DHT22 измеряет достаточно точно, а вот с влажностью немного неточен. Но, опять таки повторюсь, это не имеет значения, поскольку перед нами — прототип, и разброс в 5% влажности ни на что важное в нашей жизни не повлияет.

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

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

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

Замкнутый круг? Но замкнутые круги для того и существуют, чтобы их разрывать.

Выход есть. Можно просто взять и повторить чей-то проект. Я же изучил уже существующие проекты метеостанций и надеюсь сделал шаг вперед.

Итак. Архитектура погодной станции базируется на Arduino. Потому что Arduino имеет небольшой порог вхождения и я уже имел с этим дело. Дальше выбирать уже проще.

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

Центральный, основной блок будет расположен внутри помещения. Это важно определить на начальном этапе, от этого «пляшут» такие важные характеристики как температурный режим работы и питание.

Удаленный датчик (или датчики) будет без «мозгов», его задача — периодически проводить измерения и передавать данные на центральный домашний блок. Центральный блок принимает данные от всех датчиков, показывает их на экране и отправляет их же в интернет в базу данных. Ну, а там уже много проще, как только данные оказываются в базе с ними можно делать всё что захочешь, даже графики рисовать.

Для сношений с внешним миром интернет был однозначно выбран WiFi модуль ESP8266 практически без альтернативы (прим. возможно сейчас такие альтернативы появились). К Arduino выпускаются Ethernet платы расширения, но совсем не хотелось привязываться к кабелю.

Интересный вопрос состоял в том, чем обеспечивать связь между заоконным датчиком (или датчиками, про требование расширяемости системы помним?) и центром. Радиомаячки на 433 Мгц однозначно не подходят (они не подходят ни для чего вообще).

Воспользоваться опять ESP8266 ?

Минусы такого решения:

  • необходим устойчивый WiFi за пределами дома

  • дальность связи не будет большой

  • пострадает надежность, при пропадании интернета мы не увидим свои удаленные датчики

  • большее энергопотребление.

  • Энергопотребление ESP8266 :

  • при передаче 120—170 mA

  • при приеме 50—56 mA

  • в режиме Deep Sleep 10 µA (мкА)

  • в выключенном состоянии 5 µA (мкА).

В конце концов для связи удаленных датчиков с основным домашним блоком был выбран чип nRF24L01+ с 2,4 Ггц передатчиком и приемником в одном флаконе, с дополнительной внешней антенной, чтоб уж наверняка «пробить» стены.

Энергопотребление nRF24L01+ 2,4 GHz :

  • при приеме 11 mA
  • при передаче на скорости 2Mbps — 13 mA
  • в режиме standby-I — 26 μA (мкА)
  • в выключенном состоянии 900 nA (нА).

Что у ESP8266, что у nRF24L01+ диапазон рабочих температур подходящий: от -40℃ до +80℃.

Купить nRF24L01+ можно примерно за $1, или сразу с внешней антенной за $3. Купить ESP8266-01 можно примерно за $4. Читайте внимательно описание товара! Иначе купите одну антенну.

Ядро системы вырисовалось. Переходим к самим датчикам.

На улице, как известно, температура может достигать отрицательных значений, поэтому датчик DHT11 не подходит, а вот DHT22 в самый раз.

Характеристики DHT22 / AM2302 :

  • питание от 3,3 В до 5 В, рекомендуется 5 В
  • потребление 2.5mA максимум, в момент измерения и передачи данных
  • диапазон измерения влажности 0-100% с погрешностью 2-5%
  • диапазон измерения температуры от -40 до +125°C с погрешностью ±0.5°C
  • запрос на измерение не чаще 0,5 Гц — одного раза в 2 секунды.

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

Характеристики DHT11:

  • питание от 3,3 В до 5 В
  • потребление 2,5 mA максимум, в момент измерения и передачи данных
  • диапазон измерения влажности 20-80% с погрешностью 5%
  • диапазон измерения температуры от 0 до +50°C с погрешностью ±2°C
  • запрос на измерение не чаще 1 Гц — одного раза в секунду.

Купить DHT22 можно примерно за $3. DHT11 стоит дешевле — $1, но он и менее точен.

Теперь возвращаемся опять к Arduino. Какую плату выбрать?

Я тестировал отдельные части системы на Arduino UNO. Т.е. подключал к уно ESP модуль и изучал его, отключал, затем подключал nRF24 и т.д. Для финальной реализации заоконного датчика выбрал Arduino Pro Mini как наиболее близкую к Uno из миниатюрных.

По энергопотреблению Arduino Pro Mini также выглядит неплохо:

  • нет преобразователя USB-TTL, который сам по себе «кушает» много,
  • светодиод подключен через 10к резистор.

Для продвинутого сбережения энергии планировалось:

  • удалить светодиод — индикатор питания на Arduino Pro Mini (я пожалел, не стал портить плату)
  • либо использовать «голую» сборку на микропроцессоре Atmel ATmega328 (не использовал)
  • использовать библиотеку Low Power Library или JeeLib.

Из библиотек выбрал Low Power Library, она проста и содержит только то, что нужно.

Для центрального блока, поскольку к нему планировалось подключить многочисленную периферию, была выбрана плата Arduino Mega. К тому же она полностью совместима с UNO и имеет больше памяти. Забегая наперед скажу, что этот выбор полностью оправдался.

Купить Arduino Mega можно примерно за $8.

Теперь про питание и энергопотребление.

Arduino Pro Mini бывают двух видов:

  • на напряжение питания 5В и частоту 16МГц
  • на напряжение питания 3,3В и частоту 8МГц.

Поскольку радио-модуль nRF24L01+ требует для питания 3,3 В, а быстродействие здесь не важно, то покупайте Arduino Pro Mini на 8MHz и 3,3В.

При этом диапазон питающего напряжения Arduino Pro Mini составляет:

  • 3,35-12 В для модели 3,3 В
  • 5-12 В для модели 5 В.

У меня уже была Arduino Pro Mini на 5В, только поэтому я её и использовал. Купить Arduino Pro Mini можно примерно за $4.

Питание центрального блока будет от сети 220 В через небольшой блок питания, дающий на выходе 12В, 450mA, 5W. Типа такого за $5. Там еще есть отдельный вывод на 5В.

А ежели этого не хватит, то можно и помощнее поставить. Другими словами экономить электропитание для центрального блока нет особого смысла. А вот для удаленного беспроводного датчика энергосбережение является важнейшей частью. Но и функциональность не хотелось бы терять.

Поэтому Arduino Pro Mini и радиомодуль nRF24 будут запитываться от связки 4-х Ni-Mh аккумуляторов.

И помните, максимальная емкость современного аккумулятора примерно 2500—2700mAh, всё что больше это либо маркетинговые уловки (Ansmann 2850) либо обман (UltraFire 3500).

Li-Ion аккумуляторы я не использую по нескольким причинам:

  • очень дорогие
  • при снижении температуры окружающего воздуха ниже 0°C происходит снижение мощности литий-ионного аккумулятора до 40-50%
  • те которые дешёвые производятся без защиты и небезопасны (при КЗ или разряде могут взрываться и гореть, см. кучу роликов на ютюбе)
  • стареют, даже если не используются (впрочем это можно сказать обо всех химических элементах), через 2 года Li-Ion батарея теряет около 20% ёмкости.

Для прототипа вполне можно обойтись качественными Ni-MH AA или AAA аккумуляторами. Тем более, что нам не нужны большие токи. Единственный минус Ni-MH аккумуляторов — это их долгая зарядка.

Подведем итоги. Вот общая схема как всё работает.

Продолжение следует.

habr.com

10 идей для метеостанций на Arduino

Ноябрь — месяц непонятной погоды: ещё утром светило солнышко, а к обеду за окном всё уже белым бело от снега. Отслеживать всю эту погодную канитель поможет старая добрая погодная станция на Arduino. Вдохновляйтесь нашей подборкой самых крутых самодельных погодных станций, и собирайте себе свою, чтобы всегда быть готовым к сюрпризам природы и не сесть в лужу буквально.

Bluetooth погодная лампа

Управляющее устройство шарится в сети в поисках информации о погоде и отправляет по Bluetooth сигналы на сервомотор в лампе, которой меняет картинки в зависимости от прогноза. Простая и стильная погодная станция, способная украсить ваш интерьер.

Настольная погодная тучка

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

Для тех, кто любит тучи побольше есть ещё вот такой вариант

Винтажная погодная станция

Любители винтажных вещиц и стимпанкеры со стажем смогут по достоинству оценить погодную станцию в виде старинных часов.

Погода в Twitter

Эта невзрачная на первый взгляд деревянная пирамидка на самом деле высокотехнологичная метеостанция, способная измерять температуру, влажность воздуха, давление, уровень освещённости, уровень CO и отправлять все данные вам в Twitter.

Tempescope

Tempescope — это такая штука, в которой можно принести домой дождь. Или туман. Или даже грозу. И они будут там жить. Теперь даже в окно смотреть не обязательно, чтобы знать, что приготовила вам на сегодня матушка природа.

Погода в кубе

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

Переносная метеостанция

А это вариант для тех, кто любит разные супер-гаджеты. С такой штукой на руке не только будете знать прогноз погоды, но и выглядеть как герой Sci-Fi сериала.

Метеостанции от Амперки

Мы были бы не мы, если бы не внесли свой вклад в отечественное метеостанциостроение. Мы внесли. И даже не один. Сделали говорящий анемометр:

и беспроводную метеостанцию для народного мониторинга

  • Вконтакте
  • Facebook
  • Twitter

blog.amperka.ru

Arduino&Oregon или погодная станция своими руками / Habr

Не так давно ко мне в руки попал набор юного радиолюбителя Arduino и много разных проектов получили путевку в жизнь (или «в стол»), но дурная голова рукам покоя не дает до сих пор.
Благодаря удачному стечению обстоятельств случилось так, что в одном месте оказались:

  • Arduino — 1 шт.
  • Датчик для измерения температуры и влажности Oregon THGN132N — 2 шт.
  • RF-kit (приемник и передатчик) на 433МГц — 1 шт.

Дополнительно к вышеперечисленному (исключительно для быстрого прототипирования) использовался Starter Kit от Seeed Studio (из него понадобился base shield, дисплей 16х2 с последовательным интерфейсом, модуль светодиода и соединительные кабели).

Фото для самых нетерпеливых:

Диапазон 433МГц широко используется в различных бытовых приборах — на этой частоте «общаются» автосигнализации, системы управления светом, погодные станции и т.п. Приемники и передатчики для этого дипазона широко доступны и стоят совсем недорого.

Датчиками THGN132N оснащаются многие погодные станции Oregon и их так же можно приобрести отдельно. Они позволяют измерять температуру и относительную влажность, работают в широком температурном диапазоне (-40.0°C до +70.0°C), при этом точность измерения температуры — 0.1°C. Стоимость невысока и определяется в большей степени жадностью продавцов.

Под крышкой батарейного отсека находится переключатель «каналов» — доступны 3 варианта.

Датчик один раз примерно в 40 секунд передает данные о своем состоянии.

Передача осуществляется с помощью «on-off-keying» (OOK) и Манчестерского кодирования на несущей частоте 433.92МГц.

Протокол для датчиков Oregon (и некоторых других) энтузиасты в большей степени разобрали, что позволило осуществить текущий проект.

Хватит теории, переходим к практике. Собираем тестовый стенд:

  • К ардуино подключаем base shield,
  • RF-приемник подключаем к D2 (будем использовать прерывания),
  • Дисплейный модуль — к D11 и D12 (TX и RX соответственно),
  • Модуль светодиода — к D13.

Я использовал комплектующие серии Grove — они все оснащены идентичными разъемами и предельно просто подключаются к соответствующим разъемам шилда.

Адаптированный скетч со страницы из предыдущей ссылки (там автор использовал «мегу», пришлось немного подправить код под свое железо) для моих датчиков показывал следующие данные:
OSV2 1A 2D 10 E3 20 07 88 04 3F 94
OSV2 1A 2D 20 08 8C 27 10 83 43 B6

Выяснилось, что (последовательно):
1A 2D — тип датчика (кстати, тут сразу вылезло некоторое несоответствие описания протокола и датчиков — этому коду соответствует другой набор датчиков, но это не помешало дальнейшей работе),
10 (20 для другого датчика) — номер канала передается в старших 4 битах (зависит от положения переключателя на датчике, принимает значения 1, 2, 4, при этом 4 соответствует 3 выбранному каналу),
E3 (08) — идентификатор конкретного датчика (?), но это значение может меняться после замены батарейки в датчике и нажатия кнопки Reset (расположена рядом с переключателем каналов и рекомендована к обязательному нажатию после замены батарейки).

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

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

Теперь последние приготовления: для первого датчика выбираем 1 канал и отправляем его за окно на мороз, второму датчику назначаем 2 канал и оставляем пока жить при комнатной температуре. Датчики будем идентифицировать именно по каналу — для текущего случая этого более чем достаточно.

Немного программирования и готово:

На первой строке дисплея отображается текущая температура, относительная влажность и состояние батареи датчика за окном, на второй — то же самое, но для комнатного датчика. Светодиод, подключенный к ардуино моргает, когда приняты данные от какого-либо датчика (just for fun).

Дисплей из «стартового набора» одновременно обрадовал и разочаровал.

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

Из-за последнего ограничения просмотрел доступные символы и подобрал два, подходящих для данного случая.

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

Небольшое замечание по дальности: в спецификации на орегоновские датчики заявлено, что они работают на расстоянии до 30 метров от базового блока.

В моем же случае (видимо из-за того, что качество RF-приемника или «загрязненность» эфира высока) система устойчиво работает при условии, что датчик находится на расстоянии до 5-7 метров (преграды в виде 1-2 стен тоже присутствуют). Надо будет при возможности приобрести приемник другого производителя и протестировать с ним.

Таким образом в «сухом остатке»:

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

To-do:

  • Добавить больше датчиков (уже готовы к подключению модули на DHT11, DHT22 (температура и влажность), BMP085 (температура и атмосферное давление).
  • Подключить Ethernet-шилд с SD-картой и, использовав Google Chart Tools, сделать страничку с текущими значениями параметров и красивыми графиками (возможно, что веб-сервер придется городить где-нибудь на NAS, а ардуина будет только измерять и передавать серверу значения, но это уже совсем другая история).
  • Задействовать RF-передатчик для управления люстрой (сейчас пока к ее оригинальному пульту другая ардуина подключена с помощью оптопар и «нажимает» кнопки на нем, но это тоже тема не для этого топика).
Ссылки по теме:

habr.com

Метеостанция на Arduino от А до Я. Часть 1

«Так, давайте сразу договоримся: вы не собираетесь снимать кино для Голливуда. Даже в Стране чудес утверждается не более пяти процентов от всех сценариев, и только один процент идет затем в производство… Таким образом, вместо всего этого вы собираетесь создать свой собственный Голливуд.»
Эд Гаскель «Снимаем цифровое кино, или Голливуд на дому»

Что, ещё одна погодная станция на Arduino?! Да, ещё одна и, что-то мне подсказывает, не последняя в интернете вещей.

Точно также, как каждый программист обязан написать программу «Hello World!», так и каждый ардуинщик обязан иметь за плечами опыт построения простой или не очень метеостанции.
Уже созданных проектов метеостанций в интернете описано немалое количество, читатель может выбрать любой из них для реализации. Не скрою, я внимательно изучил около десятка подобных проектов и ещё кучу смежных. Поэтому нельзя сказать, что я создал всё с нуля, конечно же я «стоял на плечах гигантов».

Сразу скажу, что в мои планы не входило использование сторонних сервисов для хранения и отображения данных. Хотелось лично пощупать и понять как всё это работает изнутри от начала до конца, от А до Я.

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

Автор проведет вас по запутанным лабиринтам современных технологий интернета вещей. Причём глазами новичка, так как сам им является.

Этот проект был реализован в далеком уже 2016 году, но надеюсь еще актуален.

Мы изучим и будем работать с простыми и сложными вещами :

  • датчиками температуры и влажности типа DHT22, DHT11
  • датчиком барометрического давления типа BMP180
  • WiFi модулем ESP8266
  • радиомодулем типа nRF24 2,4 Ггц
  • семейством Arduino Pro Mini, Arduino Mega
  • солнечной батареей и аккумуляторами
  • языком программирования C/C++
  • языком программирования PHP
  • системой управления базами данных MySQL
  • языком программирования Java и фреймворком Android (создание приложения для Adnroid для отобажения погодных данных на смартфоне).

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

Но начнем мы с самого начала правильно. А именно с описания и проектирования будущего устройства «на бумаге», чтобы в конце концов каждый кирпичик лёг на своё место.

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

Но это в промышленности, где работники заняты полный рабочий день.

Каждый, кто клепает по вечерам свои поделки pet-project для «internet of things», должен отдавать себе отчёт в том, что он создаёт именно прототип, полуфабрикат. До уровня нормального промышленного изделия ему очень далеко. Поэтому не следует поручать нашим любительским поделкам какие-либо ответственные участки жизнеобеспечения и надеяться, что они нас не подведут.

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

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

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

Обычно этот этап пропускают. Решая сделать что-нибудь эдакое прямо сейчас, а потом выясняются мелкие детали, которые ставят весь проект в тупик или вовсе делают его неподъемным. Все наши хотелки необходимо записывать, я использую для этого гугл диск, он доступен с ПК и с мобильного устройства.

Итак, наша метеостанция должна:

  • измерять температуру и влажность на улице
  • измерять температуру и влажность в доме
  • измерять атмосферное давление
  • отображать указанные значения на дисплее
  • передавать данные на сервер в интернет, где данные будут храниться в базе данных и отображаться на веб-странице, либо использоваться в мобильном приложении.

Датчики используются самые простые и дешевые. Например, забегая наперед скажу, что температуру DHT22 измеряет достаточно точно, а вот с влажностью немного неточен. Но, опять таки повторюсь, это не имеет значения, поскольку перед нами — прототип, и разброс в 5% влажности ни на что важное в нашей жизни не повлияет.

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

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

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

Замкнутый круг? Но замкнутые круги для того и существуют, чтобы их разрывать.

Выход есть. Можно просто взять и повторить чей-то проект. Я же изучил уже существующие проекты метеостанций и надеюсь сделал шаг вперед.

Итак. Архитектура погодной станции базируется на Arduino. Потому что Arduino имеет небольшой порог вхождения и я уже имел с этим дело. Дальше выбирать уже проще.

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

Центральный, основной блок будет расположен внутри помещения. Это важно определить на начальном этапе, от этого «пляшут» такие важные характеристики как температурный режим работы и питание.

Удаленный датчик (или датчики) будет без «мозгов», его задача — периодически проводить измерения и передавать данные на центральный домашний блок. Центральный блок принимает данные от всех датчиков, показывает их на экране и отправляет их же в интернет в базу данных. Ну, а там уже много проще, как только данные оказываются в базе с ними можно делать всё что захочешь, даже графики рисовать.

Для сношений с внешним миром интернет был однозначно выбран WiFi модуль ESP8266 практически без альтернативы (прим. возможно сейчас такие альтернативы появились). К Arduino выпускаются Ethernet платы расширения, но совсем не хотелось привязываться к кабелю.

Интересный вопрос состоял в том, чем обеспечивать связь между заоконным датчиком (или датчиками, про требование расширяемости системы помним?) и центром. Радиомаячки на 433 Мгц однозначно не подходят (они не подходят ни для чего вообще).

Воспользоваться опять ESP8266 ?

Минусы такого решения:

  • необходим устойчивый WiFi за пределами дома

  • дальность связи не будет большой

  • пострадает надежность, при пропадании интернета мы не увидим свои удаленные датчики

  • большее энергопотребление.

  • Энергопотребление ESP8266 :

  • при передаче 120—170 mA

  • при приеме 50—56 mA

  • в режиме Deep Sleep 10 µA (мкА)

  • в выключенном состоянии 5 µA (мкА).

В конце концов для связи удаленных датчиков с основным домашним блоком был выбран чип nRF24L01+ с 2,4 Ггц передатчиком и приемником в одном флаконе, с дополнительной внешней антенной, чтоб уж наверняка «пробить» стены.

Энергопотребление nRF24L01+ 2,4 GHz :

  • при приеме 11 mA
  • при передаче на скорости 2Mbps — 13 mA
  • в режиме standby-I — 26 μA (мкА)
  • в выключенном состоянии 900 nA (нА).

Что у ESP8266, что у nRF24L01+ диапазон рабочих температур подходящий: от -40℃ до +80℃.

Купить nRF24L01+ можно примерно за $1, или сразу с внешней антенной за $3. Купить ESP8266-01 можно примерно за $4. Читайте внимательно описание товара! Иначе купите одну антенну.

Ядро системы вырисовалось. Переходим к самим датчикам.

На улице, как известно, температура может достигать отрицательных значений, поэтому датчик DHT11 не подходит, а вот DHT22 в самый раз.

Характеристики DHT22 / AM2302 :

  • питание от 3,3 В до 5 В, рекомендуется 5 В
  • потребление 2.5mA максимум, в момент измерения и передачи данных
  • диапазон измерения влажности 0-100% с погрешностью 2-5%
  • диапазон измерения температуры от -40 до +125°C с погрешностью ±0.5°C
  • запрос на измерение не чаще 0,5 Гц — одного раза в 2 секунды.

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

Характеристики DHT11:

  • питание от 3,3 В до 5 В
  • потребление 2,5 mA максимум, в момент измерения и передачи данных
  • диапазон измерения влажности 20-80% с погрешностью 5%
  • диапазон измерения температуры от 0 до +50°C с погрешностью ±2°C
  • запрос на измерение не чаще 1 Гц — одного раза в секунду.

Купить DHT22 можно примерно за $3. DHT11 стоит дешевле — $1, но он и менее точен.

Теперь возвращаемся опять к Arduino. Какую плату выбрать?

Я тестировал отдельные части системы на Arduino UNO. Т.е. подключал к уно ESP модуль и изучал его, отключал, затем подключал nRF24 и т.д. Для финальной реализации заоконного датчика выбрал Arduino Pro Mini как наиболее близкую к Uno из миниатюрных.

По энергопотреблению Arduino Pro Mini также выглядит неплохо:

  • нет преобразователя USB-TTL, который сам по себе «кушает» много,
  • светодиод подключен через 10к резистор.

Для продвинутого сбережения энергии планировалось:

  • удалить светодиод — индикатор питания на Arduino Pro Mini (я пожалел, не стал портить плату)
  • либо использовать «голую» сборку на микропроцессоре Atmel ATmega328 (не использовал)
  • использовать библиотеку Low Power Library или JeeLib.

Из библиотек выбрал Low Power Library, она проста и содержит только то, что нужно.

Для центрального блока, поскольку к нему планировалось подключить многочисленную периферию, была выбрана плата Arduino Mega. К тому же она полностью совместима с UNO и имеет больше памяти. Забегая наперед скажу, что этот выбор полностью оправдался.

Купить Arduino Mega можно примерно за $8.

Теперь про питание и энергопотребление.

Arduino Pro Mini бывают двух видов:

  • на напряжение питания 5В и частоту 15МГц
  • на напряжение питания 3,3В и частоту 8МГц.

Поскольку радио-модуль nRF24L01+ требует для питания 3,3 В, а быстродействие здесь не важно, то покупайте Arduino Pro Mini на 8MHz и 3,3В.

При этом диапазон питающего напряжения Arduino Pro Mini составляет:

  • 3,35-12 В для модели 3,3 В
  • 5-12 В для модели 5 В.

У меня уже была Arduino Pro Mini на 5В, только поэтому я её и использовал. Купить Arduino Pro Mini можно примерно за $4.

Питание центрального блока будет от сети 220 В через небольшой блок питания, дающий на выходе 12В, 450mA, 5W. Типа такого за $5. Там еще есть отдельный вывод на 5В.

А ежели этого не хватит, то можно и помощнее поставить. Другими словами экономить электропитание для центрального блока нет особого смысла. А вот для удаленного беспроводного датчика энергосбережение является важнейшей частью. Но и функциональность не хотелось бы терять.

Поэтому Arduino Pro Mini и радиомодуль nRF24 будут запитываться от связки 4-х Ni-Mh аккумуляторов.

И помните, максимальная емкость современного аккумулятора примерно 2500—2700mAh, всё что больше это либо маркетинговые уловки (Ansmann 2850) либо обман (UltraFire 3500).

Li-Ion аккумуляторы я не использую по нескольким причинам:

  • очень дорогие
  • при снижении температуры окружающего воздуха ниже 0°C происходит снижение мощности литий-ионного аккумулятора до 40-50%
  • те которые дешёвые производятся без защиты и небезопасны (при КЗ или разряде могут взрываться и гореть, см. кучу роликов на ютюбе)
  • стареют, даже если не используются (впрочем это можно сказать обо всех химических элементах), через 2 года Li-Ion батарея теряет около 20% ёмкости.

Для прототипа вполне можно обойтись качественными Ni-MH AA или AAA аккумуляторами. Тем более, что нам не нужны большие токи. Единственный минус Ni-MH аккумуляторов — это их долгая зарядка.

Подведем итоги. Вот общая схема как всё работает.

Продолжение следует.

Автор: tim4dev

Источник

www.pvsm.ru

погодная станция на ардуино


Сегодня сделаем один из долгожданных проектов — метеостанция с кучей датчиков! ▽ Страница проекта (ссылки,…


Погодная или метеостанция — это сочетание в одном корпусе термометра, барометра и гигрометра. Выводится…


ESP8266 и народный мониторинг.Погодная станция своими руками за пару минут с отправкой данных на народный…


Распаковка оригинальной Ардуино УНО и сравнение с копией на примере погодной станции Оригинальная Arduino…


запись для менеджера плат: http://arduino.esp8266.com/stable/package_esp8266com_index.json ESP8266 на своем борту имеет мощный процессор…


В данном видео я подробно продемонстрирую как создать погодную метео станцию на базе модуля ESP8266 12 Nodemcu…


Создаем удобный мониторинг со смартфона через приложение BLYNK на базе ЕСП 8266 и дачика температуры и влажнос…


В уроке использовались следующие компоненты: 1) Плата Arduino Uno + USB-кабель: http://ali.pub/q0tku 2) Breadboard (макетная плата):…


Домашняя метеостанция на Arduino //код http://arduinolab.pw/index.php/2015/12/01/meteostanciya-na-arduino/ // Использованные компоненты:…


Видео к схеме на сайте Паяльник: http://cxem.net/arduino/arduino214.php.


Или парсим данные о погоде с сайта openweathermap.org и narodmon.ru при помощи ESP8266 плата NodeMcu на али — http://goo.gl/3EpJMj Код…


Черная пятница и киберпонедельник на AliExpress, скидки до 50%. http://ali.ski/vmo1b9 Программирование домашней метеостан…


использовано в проекте 2 дисплея 2.8 дюйма ILI9341 https://ru.aliexpress.com/af/ILI9341-2.8.html?


Метеостанция на Arduino с выводом показаний на LCD дисплей и Android-устройство Подробности на сайте: http://arduinoprom.ru/shem…


Всем привет! В этом видео мы соберем метеостанцию на базе платформы ARDUINO и датчика DHT ♢♢♢♢♢♢♢♢♢♢♢♢♢♢…


Всем привет! Сегодня я покажу, как собрать небольшую, но прикольную метеостанцию с помощью платы Ардуино…


Метеостанция на Arduino nrf24l01+ цветной tft дисплей 3,5 дюйма Скетчи: https://yadi.sk/d/2T5PYvHU3NBKCM Все что нужно для сборки:…


Закажите компоненты метеостанции на сайте …


Собираем Домашнюю метеостанцию с возможностью подключения к умному дому а так же с передатчиком на 433 Мгц…


Оригинал тут https://github.com/squix78/esp8266-weather-station-color/


Погодная станция на DS18B20 и BMP180 Отображает информацию о температуре и давлении Покупал на АЛИ Библиотеки…


Видео работы контроллера паяльной станции на ардуино Мега2560 с сайта амперка …


За основу взята конструкция https://www.youtube.com/watch?v=zzzDkYEij8I&t=82s ( автор конструкции и скетча) . В своем видео я перед…


Наша новая рубрика: проект за 120 секунд от Виолетты! Метеостанция предназначена для измерения температуры,…


Arduino #ESP8266 #метеостанция Как сделать простую WiFi метеостанцию для проекта «Народный мониторинг» на микроконт…


Скачать скетч http://srukami.inf.ua/barograf_lite_5110.html Где я купил—- Arduino Pro Mini https://goo.gl/eBQ0Nb Com port https://goo.gl/kMQ2WM LCD Nokia …


Подробности урока http://lesson.iarduino.ru/page/urok-7-arduino-pogodnaya-stanciya-na-baze-barometra-bmp180-termometra-ds18b20/


В основу легло очень удобное меню для LCD Keypadshield (подойдет под разные проекты): https://goo.gl/SjkCY4 Схема подключение…


Всем привет! В этом видео мы сделаем небольшой обзор на точный датчик температуры и влажности HDC1080. Мини…


28.12.18 добавил видео по обмену данными по wifi https://youtu.be/pjUfPE-3AFw версии 261218 по ссылке в папках: /meteo_lite_ik версия…


По-немногу мы приближаемся к созданию Погодной Станции. Основой всего будет Ардуино. В качестве датчика…


Купить FanJu FJ3365 на Gearbest http://got.by/2jrc31 Купить FanJu FJ3365 на Aliexpress http://got.by/2p6k6c Обзор погодной метеостанции из Китая…


Arduino Pro mini: http://ali.ski/B6bKD ✓ LCD1602 I2C: http://ali.ski/d137R ✓ BMP180: http://ali.ski/_4EdsM ✓ TTP223: http://ali.ski/SiACd ✓ ISD1820: …


Ардуино: проект походная метеостанция это уже продолжение нашего прошлого проекта где мы подключили к…


Погодная станция на Arduino и датчиками Origon http://devicter.blogspot.ru/2013/01/blog-post.html#more.


Всем привет! Сегодня мы сделаем простую погодную станцию на ESP8266! Погодная станция будет измерять температу…


075 BME 280 Датчик Температуры, Давления и Влажности Arduino ESP Blynk Материалы из видео: https://yadi.sk/d/7o_aFzym3SVQHY Если что…


Обзор китайской метеостанции, заточенный под arduino, состоящий из шести датчиков: влажность, температура,…


1 часть: https://www.youtube.com/watch?v=t5NdI9OX4uo ESP8266 на своем борту имеет мощный процессор и если раньше его использовали…


Сегодня мы с вами сделаем простейшую метеостанцию на Arduino для которой не потребуется много времени и компон…



pokemon go pelo pc
pokemon emerald pt br
save game euro truck simulator 2
como hacker de facebook 2015
layout cv9 push
baixar action crackeado
hack dragon city 2015
counter strike source download utorrent
checker cc
numero de serie corel draw x8


debojj.net

Open Weather Station — метеостанция с открытым исходным кодом arduino

Открытая метеостанция (OWS) — это самостоятельная метеостанция, цель которой — быть доступной, стабильной, простой в сборке и тестировании в реальных условиях. Измеряйте, отслеживайте, храните данные за месяцы и отправляйте их на свой сервер, а также в Wunderground, Thingspeak, Windguru или OpenWeatherMap через Wi-Fi или GPRS / GSM / 4G. Он развился из других подходов, которые я тестировал и использовал в полевых условиях с конца 2012 года по сей день

Eng.Франсиско Клария

Взгляните на обучающие материалы Youtube, которые проведут вас через все этапы подготовки станции 🙂

Получите доступ к последней стабильной версии отсюда (рекомендуется):

Чтобы получить доступ к самой последней (еще не полностью протестированной) версии проекта, перейдите в ветку разработки здесь:

Приложение Open Weather Station (только для Android) готово к использованию бесплатно, просто установите его из Google Play, как любое другое приложение. Подробнее о приложении здесь

Информация, генерируемая OWS каждую минуту, следующая:

  • скорость ветра (м / с)
  • Направление ветра (угол)
  • порыв ветра (м / с)
  • Направление порыва ветра (угол)
  • дождь (мм)
  • температура (Cº)
  • абсолютное атмосферное давление (Паскаль)
  • относительная влажность (%)
  • Окружающее освещение (люкс)

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

Модуль Arduino Uno считывает данные с датчиков и каждую минуту отправляет полезную нагрузку данных через Bluetooth на подключенное устройство. «Подключенное устройство» — это Android-смартфон, на котором запущено приложение, которое получает эту информацию, сохраняет ее в памяти, отображает данные на экране и, при необходимости, может отправлять измерения во внешнюю службу, используя готовые предустановки, поддерживающие Wunderground, Thingspeak. , Windguru, OpenWeatherMap или другой пользовательский облачный сервис по вашему выбору через Wi-Fi и / или мобильную сеть — это одно из основных преимуществ использования смартфона.Вы также можете написать программу Raspberry Pi для подключения к Arduino через Bluetooth для получения данных, если приложение Android вам не подходит (на данный момент реализация Pi не входит в объем проекта).

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

Перед текущим подходом я запрограммировал и протестировал другие альтернативы, такие как: raspberry, pic, arduino + wifi shield, arduino + ethernet shield, arduino + GPRs shield, arduino uno + arduino mega, платы Wi-Fi, маршрутизаторы, интегрированный arduino с sd / microsd модули и т. д. и т. д. и, наконец, текущий подход оказался наиболее эффективным для моих целей:

Доступный

Я попытался сделать цену как можно более низкой, чтобы это не было препятствием, особенно для тех, кто находится в странах, где электроника дорогая, в настоящее время общая стоимость составляет от 300 до 500 долларов США, включая датчики, смартфон, жилье и т. Д., В зависимости от вашего местоположения и в основном смартфон вы получаете

Компактный и непривлекательный для взлома

Обычно станция оказывалась на крыше, в башне и т. Д. От кого-то, кто позволил мне установить устройство, поскольку она очень компактна, что делает ее менее привлекательной для воров, проще в установке, лучше выглядит, а такие элементы, как ветер, дождь, Град нанесет меньший урон.Кроме того, поскольку модуль arduino подключается через Bluetooth, смартфон, к которому он подключен, можно разместить в более безопасном месте, например, внутри дома, чтобы предотвратить кражу.

Простая и повторяемая сборка

Некоторые решения, которые я оценивал раньше, включали в себя большое количество испытаний, предварительную настройку или калибровку, сложную сборку или даже трудности с получением деталей для КАЖДОЙ станции, которую мне пришлось построить, текущий подход OWS значительно снижает эту головную боль

Wi-Fi и сеть сотовой связи

Используя смартфон на базе Android, у меня есть возможность подключаться через Wi-Fi и сотовую сеть по мере необходимости, чтобы постоянно обновлять внешние службы в облаке.И даже более того, если соединение Wi-Fi потеряно, оно автоматически переключится на сотовую сеть без каких-либо проблем, никаких AT-команд и странных рукопожатий для достижения простого HTTP-соединения…

Потеря мощности

Электричество уходит много раз, особенно во время штормов: модуль Arduino может работать около дня с блоком питания на 5000 мАч, а в мобильном телефоне уже есть батареи, поэтому, в зависимости от модели, он будет работать, вероятно, в течение дня или около того. тоже, при этом все еще имея возможность отправлять данные, если сотовая сеть работает (Wi-Fi, вероятно, умрет в этом сценарии)

Стабильность программного обеспечения

Программное обеспечение модуля

Arduino действительно надежное, если оно перезагружается, оно будет перезапущено с нуля без каких-либо проблем, я даже добавил сторожевой таймер, чтобы он перезагружался, если по какой-то причине какой-то процесс занимает более 4 секунд.В этом отношении я долгое время тестировал экраны SD, Ethernet, Wi-Fi и георадары, и ВСЕ они зависают через несколько недель или даже меньше, требуя ручного сброса, а в случае SD / памяти мне даже нужно было извлеките карту и вставьте ее обратно … С другой стороны, после длительных испытаний в дикой природе я обнаружил, что Android — это как скала, а смартфоны (например, мото E / moto G) обладают потрясающей выносливостью, они могут работать при температурах ниже 0Cº и выше 50Cº , возникают повторяющиеся потери питания (до полного разряда батареи), а также потеря связи без зависания.

Визуализация и диагностика данных

Приложение позволяет одновременно работать в качестве экрана автономной визуализации или при выполнении новой установки или обслуживания в полевых условиях, чтобы увидеть, что происходит. Иногда мне нужно убедиться, что OWS работает должным образом, особенно во время новой установки или обслуживания, и большую часть времени я выполняю эту задачу в одиночку, в башне или на крыше, где нецелесообразно брать с собой ноутбук, поэтому я имею Arduino Модуль, подключенный через Bluetooth, упрощает диагностику, а с приложением, запущенным на смартфоне, визуализация очень проста, удобна, и мне не нужно передавать данные во внешнюю службу, чтобы диагностировать ее работу… все на экране

Журнал и хранилище данных

Как упоминалось ранее, добавление памяти к модулю arduino было одной из причин, повышающих требования к обслуживанию решения, поскольку SD зависает и EEPROM изнашивается, не говоря уже о том, что хранение и извлечение больших объемов данных (много дней по 1 выборке на каждый минута) — медленный и сложный процесс для правильной обработки Arduino.По этой причине модуль arduino хранит образцы в течение примерно 15 минут (настраивается), что является временем, которое в конечном итоге может потребоваться Android для перезапуска, если он по какой-то причине был отключен, а затем приложение Android обрабатывает регистрацию данных, визуализацию и загрузку более эффективно. и стабильный способ, в то же время позволяющий хранить большие периоды времени.

Сокращенное обслуживание

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

Почему Ардуино?

Основные причины, по которым я решил использовать Arduino:

  • широкое распространение
  • огромное сообщество
  • документация
  • примеры везде
  • доступных библиотек для выполнения общих задач
  • низкая цена
  • доступен во многих странах
  • запитать Arduino легко и удобно (например,грамм. напрямую от USB power bank)
  • Датчики питания

  • очень просты, поскольку они имеют регулируемые выходы 3,3 В и 5 В, которые могут питать до 150 мА (от 3,3 В) или 400 мА (от 5 В) при подключении через USB
  • Потребляемая мощность

  • на контакт позволяет 20 мА с максимумом 40 мА и 200 мА в сумме
    В итоге, я думаю, что это упростит, если вы хотите изменить, расширить или улучшить текущее решение модуля Arduino

Модуль

Arduino подключается к приложению Android через Bluetooth. Приложение можно бесплатно скачать с Google Play

.

Некоторые из основных функций приложения OpenWeatherStation:

  • подключиться к модулю OWS, просмотреть и сохранить данные,
  • хранить образцы до 60 дней,
  • визуализировать графики в реальном времени,
  • доступ к историческим данным по дате и временным интервалам,
  • настроить до 2 серверов для загрузки данных о погоде,
  • настройте все общие пользовательские настройки API или используйте предварительно настроенный сервер
  • предварительно настроенных серверов для WindGuru, Wunderground, Thingspeak и OpenWeatherMap
  • экспорт сохраненных данных в локальный файл (json)
  • отправить экспортированный файл данных по электронной почте
  • автоматическое переключение с Wi-Fi на сотовые данные, если в Wi-Fi нет интернета

Первоначальная настройка приложения

Чтобы начать работу, выполните следующие действия (для этого также есть видеоурок):

  • После загрузки приложения первое, что нужно сделать, это подключить его к OWS bluetooth.Зайдите в «Модуль OWS» в левом меню
  • Если вы не подключили Bluetooth, щелкните значок в правом верхнем углу, чтобы открыть настройки Bluetooth и выполнить сопряжение устройства.
  • После сопряжения вернитесь в приложение и обновите список устройств.
  • Из списка устройств выберите то, к которому вы хотите подключиться, и установите его как устройство OWS.
  • Вы можете проверить пакеты, полученные от модуля OWS, открыв монитор данных
  • При отправке данных в удаленную службу вы можете включить «Предотвратить LieFi» (вам необходимо включить как Wi-Fi, так и сотовую передачу данных)
    • В ситуации, когда соединение Wi-Fi работает, но нет Интернета, Android не будет автоматически переключаться на сотовые данные, в этом сценарии, если вы включили «Предотвратить LieFi», приложение отключит Wi-Fi и будет использовать пакеты сотовых данных, пока Wi-Fi Интернет не будет назад, и приложение снова включит Wi-Fi… да, знаю … пожалуйста: P
  • Все остальные настройки говорят сами за себя.

Если вы используете устройство Android для телеметрии, вы можете выполнить рутинг своего устройства, а также установить приложение удаленной перезагрузки (https://play.google.com/store/apps/details?id=ar.com.axones. удаленная перезагрузка). Это приложение будет действовать как сторожевой таймер, позволяя перезагружать Android удаленно с помощью SMS или с помощью конечной точки URL, чтобы все можно было начать заново.

Подключение других устройств

Поскольку модуль считывания Arduino передает данные каждую минуту, вы можете создать собственное решение, которое подключается к нему через Bluetooth и обрабатывает данные по своему усмотрению вместо использования предлагаемого приложения для Android.Например, реализация Raspberry может быть отличной альтернативой для достижения этой цели, или вы можете написать приложение для Windows 10 и подключиться к модулю со своим компьютером, просто чтобы упомянуть пару примеров. Однако эти альтернативы пока выходят за рамки текущего проекта.

Далее я излагаю некоторые рекомендации, чтобы вы могли шаг за шагом создать свой собственный модуль.

Youtube обучающие программы

В следующих видеороликах я подробно расскажу, как построить станцию ​​от 0 до 100%:

Принципиальная схема

Перечень материалов

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

Арт. Кол. Акций Использовать
Красный или зеленый светодиод 1 индикатор состояния
резистор 18 кОм 2 анемометр и схема защиты от дождя
Резистор 12 кОм 2 анемометр и схема защиты от дождя
Резистор 10 кОм 1 флюгер
Резистор 220 Ом 1 светодиодный индикатор состояния
2.Резистор 2 кОм 1 блютуз
Резистор 1 кОм 2 блютуз
двойной разъем RJ11 (пример) 1 анемометр, флюгер и дождевые тросы
диод 2 анемометр и схема защиты от дождя
Конденсатор 1 мкФ 2 анемометр и схема защиты от дождя
NPN транзистор 1 блютуз
Односторонняя медная печатная плата 5 см x 7 см или больше (пример) 1 экран печатной платы для подключения компонентов
Arduino Uno R3 вместе с USB-кабелем 1 блок обработки
Bh2750 Датчик освещенности 1 светильник
BME280 датчик давления, температуры, влажности (входной сигнал 5 В) 1 давление, температура, влажность
HC05 Bluetooth-модуль 1 связь Bluetooth
WS 1080 Запасной датчик анемометра (пример) 1 скорость ветра
WS 1080 Запасной датчик флюгера (пример) 1 угол направления ветра
WS 1080 Запасной датчик дождемера (пример) 1 дождь
Комплект стандартных штифтов с вилкой (пример) 1 соединительные провода датчика
Комплект стандартных штифтов с внутренней резьбой (пример) 1 подключение модуля bluetooth
Комплект перемычек между гнездом и гнездом (пример) 1 проводка датчиков
портативное зарядное устройство Power Bank на 5000 мАч или аналогичное, которое работает без вмешательства пользователя — для его работы НЕ нужно нажимать кнопку 1 OWS резервное питание для Arduino
15x10x10 см или аналогичный, пластиковый корпус для установки вне помещений 1 защитить модуль OWS от элементов
Модуль зарядного устройства с двумя USB-разъемами 110/220 В (пример) 1 OWS источник питания usb
Кабель питания 110/220 В (пример) 1 мощность
Анемометр WS 1080 и пластиковая опора флюгера (пример) 1 подставка для датчиков ветра
WS 1080 пластиковая опора для дождемера (пример) 1 поддержка датчиков дождя

Пожалуйста, помните, что я включил все компоненты, необходимые для полной сборки модуля OWS Arduino, вы можете приобрести только те, которые связаны с датчиками, которые вы хотите реализовать, или даже создать свои собственные, если вы хотите снизить некоторые затраты (например, пластиковые опоры от ветра и дождя).Реализация кода Arduino по-прежнему будет работать, если подключены только некоторые датчики.


Пайка и электромонтаж

У меня есть подробные пошаговые галереи изображений, по которым вы можете использовать ссылку для создания OWS от нуля до 100%:

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

Травление печатной платы

Существует несколько методов создания схемы платы: от рисования схемы вручную с помощью перманентного маркера до метода передачи тона (https: // www.youtube.com/watch?v=QQupRXEqOz4). Поскольку существует множество видео и руководств о том, как это сделать, я позволю вам выбрать метод по своему усмотрению. Если вы выберете метод передачи тона, помните, что очень важно использовать глянцевую бумагу фотографического качества.

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

Сверление печатных плат

Когда доска готова, просверлите отверстия (я использую сверло диаметром 1 мм). На схеме и схеме необходимые отверстия в значительной степени говорят сами за себя.

Поверхность припоя

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

  • «Квадраты» на каждой стороне схемы платы с кодами D2, D3, D9, D10, D12, D13, A5, A4, A2, GND и VCC должны подключаться к соответствующим контактам Arduino Uno, поэтому обратите особое внимание при пайке контактов штыревого разъема вниз и прикреплении платы к Arduino.
  • bht, bmp, stat, vane, anem и pluv — это штыревые разъемы, которые должны быть обращены вверх (противоположная сторона, которую вы подключаете к Arduino), чтобы позже подключить датчики. Конечно, вы можете припаять датчики прямо к плате, но таким образом вы можете быстро заменить любой элемент и упростить расположение компонентов в корпусе.

    • синий — это гнездовой контактный разъем для последующего подключения HC05, красные кружки означают, что на этих контактах нет необходимости в подключении, поэтому пайка фактически не требуется
  • обратите особое внимание на полярность конденсаторов и направление диодов, как показано на схеме.Я припаял их на верхней стороне, чтобы было легче показать, как я это сделал, в пошаговой галерее, но было бы лучше припаять их на противоположной стороне, если вы хотите получить более красивую плату.

  • Штыри для пайки

    • Вы можете закончить печатную плату после того, как все будет на месте и протестировано с небольшим слоем прозрачного лака для ногтей (лака), чтобы защитить открытые контакты и уменьшить окисление.
Арт. код сборки
Резистор 18 кОм R6, R2
Резистор 12 кОм R8, R4
Резистор 10 кОм R9
Резистор 220 Ом R10
2.Резистор 2 кОм R11
Резистор 1 кОм R12, R13
Электролитический конденсатор 1 мкФ C1, C2
диод Д1, Д2
NPN транзистор НПН
штыревой разъем для подключения к Arduino (припой вниз, к Arduino Uno) D2, D3, D9, D10, D12, D13, A2, A4, A5, GND, VCC
штырьковые штыри разъема для подключения к датчикам (припой вверх) anem, pluv, stat, bmp, bht, лопасть
гнездовые штырьки для подключения к bluetooth (припой вверх) синий

После того, как вы припаяли все элементы, самое время подключиться к датчикам.

Скорость ветра, направление ветра и дождь

Эти датчики, являющиеся запасными частями для метеостанции WS1080, используют телефонную линию (штекер RJ11), которую мы будем подключать к модулю Arduino OWS с помощью двойного разъема RJ11.

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

Для подключения разъема RJ11 к модулю Arduino используйте перемычки с гнездом (отрежьте один из наконечников, чтобы оставить кабель открытым), как показано в пошаговых изображениях галереи.

Давление, температура и влажность

Эти три параметра получены с использованием BME280, имейте в виду, что во многих местах BMP280 продается так, как если бы это был BME, но BMP НЕ будет измерять влажность, поэтому перед покупкой внимательно изучите характеристики чипа. В идеале BME должна быть моделью со стабилизатором напряжения 5 В, хотя я тестировал модели с 3.Входной канал 3 В без проблем, поэтому, если вы не можете найти 5 В, вы можете попробовать с 3,3 В и посмотреть, что произойдет;)

Подключите микросхему BME с помощью перемычек «мама-мама» к штыревому контакту «bme» на плате модуля.

Свет

Количество света, измеренное в люксах, получено с помощью датчика Bh2750. Подключите микросхему с помощью перемычек «мама-мама» к штыревому контакту «bht» на плате модуля.

Bluetooth

Модуль arduino, как объяснялось ранее, отправляет данные с помощью модуля Bluetooth HC05.Чтобы подключить его к плате, просто подключите HC05 к «синим» контактам «мама», как показано в галерее.

Светодиод состояния

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

Для питания модуля подключите USB-кабель Arduino Uno к портативному блоку питания, а блок питания — к одному из 2 доступных USB-выходов на модуле настенного зарядного устройства, оставшийся выход можно использовать позже для подключения USB-кабеля Android. для питания смартфона.Если вы не хотите использовать внешний аккумулятор, чтобы модуль оставался включенным в случае потери питания, вы можете просто подключить usb-кабель Arduino непосредственно к модулю настенной розетки. Внешний аккумулятор должен соответствовать следующим характеристикам:

Модель

  • должна иметь энергопотребление, которое может обеспечить зарядное устройство, поэтому, если вы покупаете устройство, которому требуется вход 2 А (2000 мА), используйте зарядное устройство, которое имеет как минимум такую ​​выходную мощность
  • блок питания ДОЛЖЕН работать без вмешательства пользователя, после подключения к сети, если отключится электричество, вы не сможете нажать любую кнопку, чтобы включить его
  • , наконец, он должен иметь возможность питать устройство, одновременно заряжая его, некоторые блоки питания не будут выводить мощность во время зарядки

Модуль настенного зарядного устройства подключается к сети 110/220 В для подачи питания на модуль.Я рекомендую подключать его с помощью кабеля питания 110/220 В, чтобы впоследствии было легче подключить его к любой розетке. Вы также можете сделать то же самое с помощью обычного настенного зарядного устройства USB, но не забудьте защитить его внутри корпуса, поскольку обычно зарядные устройства не будут работать на открытом воздухе в течение длительного периода времени. Я использовал этот подход, когда не смог найти достойный модуль зарядного устройства с двумя розетками с выходом 2A и вместо этого использовал обычное зарядное устройство с двумя USB-портами (с выходом 2A).

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

Некоторые предпочитают использовать для этой цели экран Стивенсона (https://en.wikipedia.org/wiki/Stevenson_screen).

BME280 должен быть открыт (но защищен) для правильного измерения температуры, давления и влажности, поэтому не рекомендуется заключать его в герметичную коробку (аналогично Bh2750 для измерения освещенности).Также помните о тепле, которое прямые солнечные лучи будут выделять на корпус и на датчики, так как это может значительно повысить температуру электроники. Я без проблем тестировал OWS под прямыми солнечными лучами в течение нескольких дней при температуре внутри корпуса около 60ºC.

Прежде всего, вам необходимо загрузить программу Arduino. Внутри папки проекта «arduino» вы найдете еще одну папку с названием «open-weather-station», в которой находится файл программы .ino. Кроме того, внутри папки «arduino» я поместил библиотеки, которые вам понадобятся для конкретных датчиков, включите эти библиотеки в ваш проект arduino (https: // www.arduino.cc/en/Guide/Libraries), и он должен быть готов к компиляции.

Я приложил все усилия, чтобы организовать, добавить комментарии к коду и сделать код простым, чтобы он был понятен, поэтому, пожалуйста, прочтите код, чтобы узнать больше о том, как он работает. Тем не менее позвольте мне дать вам несколько основных советов.

О программных константах Arduino

  • ENABLE_DEBUG_SERIAL_OUTPUT: если true, данные будут выводиться на последовательный монитор. Я рекомендую использовать его сначала, чтобы узнать, правильно ли он работает и датчики собирают данные.Вы можете отключить его для производства.

  • ARDUINO_AUTOREBOOT_MINUTES: по истечении заданного в этой константе количества минут, arduino автоматически перезагрузится и сбросит настройки чипа bluetooth (выключится и снова включится). Этот таймер можно перезапустить, отправив команду модулю.

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

    • ANEMOMETER_SPEED_FACTOR, коэффициент чашечного анемометра, если вы не знаете это значение, оставьте его равным
    • ANEMOMETER_CIRCUMFERENCE_MTS, длина окружности полного цикла, рассчитанная от центральной точки чашки
    • ANEMOMETER_CYCLES_PER_LOOP, сколько «отсчетов» генерирует анемометр в полном цикле, обычно это 2, но может быть 1 в зависимости от вашего датчика
    • RAIN_BUCKET_MM_PER_CYCLE, сколько мм дождя эквивалентно для каждого отсчета датчика
    • VANE_AD…, флюгер имеет набор резисторов, которые меняются в зависимости от направления ветра, Arduino передает 5 В через датчик и выполняет аналого-цифровое (A / D) преобразование значения в диапазоне от 0 до 1023, в зависимости от При ориентации лопатки значение A / D изменится. Значения VANE_AD… являются совпадающими числами для каждого из направлений и откалиброваны для флюгера ws1080. Когда значение A / D получено, ближайшее подходящее значение VANE_AD… используется для назначения направления ветра.

Остальные константы говорят сами за себя.

Частичные и полные выборки данных

По умолчанию модуль будет отправлять частичные образцы ветра каждые 5 секунд, что полезно, например, для отображения большего количества данных о ветре «в реальном времени», а затем каждую минуту модуль отправляет все данные с усредненными образцами ветра, порывами, температурой и т. Д. Частичные выборки отправляются из функции «sendWindPartialSample», а полные выборки отправляются из функции «sendFullSamples». Данные каждого датчика разделяются разделителем (настроенным в константах), и каждая передача завершается новой строкой.Взгляните на эти функции в коде Arduino, чтобы понять, как образцы помечаются и отправляются. Я настоятельно рекомендую включить константу вывода отладки, чтобы вы могли видеть данные в мониторе последовательного вывода Arduino, в противном случае вам нужно будет подключиться через Bluetooth, чтобы увидеть какие-либо данные.

Подключиться к модулю OWS по bluetooth

Для подключения к модулю есть несколько альтернатив. Я не буду вдаваться в подробности о том, как выполнить сопряжение и подключение к устройству Bluetooth с вашего ПК, Mac, ноутбука, Iphone или устройства Android, поскольку существует множество руководств, которые объясняют это более подробно (тем не менее, в пошаговой галерее вы найдете найти несколько изображений, к которым я подключаюсь с помощью своего ПК и телефона Android).

Просто имейте в виду, что устройство bluetooth, которое вы используете для модуля Arduino OWS, будет указано как HC05 при обнаружении, и если запрашивается код для сопряжения с устройством, HC05 обычно использует 1234 или 0000. Если вы подключены через Приложение Bluetooth для Android (например, https://play.google.com/store/apps/details?id=project.bluetoothterminal), например, или даже через Putty на ваш ноутбук с помощью COM-порта Bluetooth (http: //www.instructables. com / id / Remote-Control-Bluetooth-Arduino-PuTTY /), вы увидите на своем экране те же полезные данные, которые вы видите в последовательном мониторе Arduino IDE (при условии, что для флага вывода отладки установлено значение true).

Отправка команд в модуль OWS

Вы можете отправлять команды (один символ ascii в верхнем регистре), чтобы модуль выполнял некоторые действия. Функция arduino под названием «readCmdFromBluetooth» реализует эту функцию. Например, позволяет:

  • символ R: перезапускает Arduino
  • символ T: сбрасывает таймер, который будет выполнять автоматическую перезагрузку arduino каждые ARDUINO_AUTOREBOOT_MINUTES
  • символ S: позволяет модулю отправлять частичные образцы
  • символ Q: отключает модуль для отправки частичных выборок и будет отправлять только полные выборки каждую минуту
  • символ L: отправить все измерения, хранящиеся в энергозависимой памяти модулей за последние WIND_AVG_MINUTE_LOG_SIZE минут (напомним, что этот журнал стирается после перезагрузки модуля и, возможно, был обнулен)

Добавить солнечную энергию ко всему решению на самом деле очень просто.Вам понадобится солнечная панель (панели) 12 В / 20 Вт и понижающий понижающий преобразователь постоянного тока с двойным выходом USB, который имеет входной диапазон от 9 до 30 В и выводит 5 В через разъемы USB.

Чтобы питать станцию ​​энергией солнечной панели, вам нужно только подключить кабель от панели к понижающему входу, а затем просто подключить станцию ​​к USB-портам. Наведите панель на солнце, и все готово. В Кордове, Аргентина (где я живу) панель 12 В / 20 Вт отлично работает, обеспечивая достаточно энергии даже в пасмурный день зимой.Посмотрите видеоурок.

Поскольку Google Play не разрешает другие приложения, требующие доступа по SMS, я загрузил apk прямо в репозиторий, чтобы вы могли вручную установить его при необходимости. ТОЛЬКО УСТРОЙСТВА С УПРАВЛЕНИЕМ С помощью этого приложения вы можете установить время дня, и приложение будет автоматически перезагружать Android каждый день. Или вы можете настроить текст, который при получении через SMS на устройство будет перезагружать его. В качестве альтернативы вы можете установить удаленный URL-адрес и интервал проверки связи, и если ресурс вернет настроенный текст, устройство перезагрузится.Это можно использовать в качестве сторожевого пса, когда Android используется в качестве устройства телеметрии, например, в проекте https://openweatherstation.com, для которого это приложение было изначально разработано. Используйте его на свой страх и риск.

Загрузить удаленную перезагрузку

https://github.com/panchazo/open-weather-station/blob/master/app/RemoteReboot.apk?raw=true

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

Строительство метеостанции Arduino

См. Страницу для текстового описания или выберите для просмотра полного изображения.

Эмма Чард
Экологические исследования

I. Введение

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

II. Методы

  • Шаг 1. Заказ необходимых запчастей для метеостанции
  • Шаг 2: Закодируйте и подключите Arduino и подключите к компьютеру с программным обеспечением Arduino
  • Шаг 3. После успешного кодирования проверьте, правильно ли считываются данные
  • Шаг 4: Соберите метеостанцию ​​
  • Шаг 5: По завершении начните сбор данных вне помещений в различных климатических условиях и в разных регионах.
  • Шаг 6: Повторите шаг 5, чтобы собрать больше данных для более точного считывания

Данные аэропорта Бойсе

III.Результатов

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

IV. Заключение

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

Благодарности

Я хотел бы поблагодарить Сару Ванлесс и профессора Пэм Айшлин за помощь в кодировании Arduino, построение станции и помощь в сборе данных.

Arduino с ST7789 TFT и датчиком BME280

В этом руководстве показано, как построить простую метеостанцию ​​с использованием платы Arduino и датчика атмосферного давления, температуры и влажности BME280.
Микроконтроллер Arduino (ATmega328P для uno, Nano…) считывает значения температуры, влажности и давления с датчика BME280 и печатает их (соответственно в ° C, относительной влажности и гПа) на TFT-дисплее ST7789.

TFT-модуль ST7789 содержит контроллер дисплея с таким же названием: ST7789.Это цветной дисплей, использующий протокол интерфейса SPI и требующий 3, 4 или 5 управляющих контактов, недорогой и простой в использовании.
ST7789 TFT — это IPS-дисплей, он бывает разных размеров (1,3 ″, 1,54 ″…), но все они должны иметь одинаковое разрешение 240 × 240 пикселей (некоторые могут поставляться с разрешением 320 × 240 пикселей), это означает, что имеет 57600 пикселей. Этот модуль работает только с 3,3 В и не поддерживает 5 В (не допускает 5 В).

TFT: Тонкопленочный транзистор.
SPI: последовательный периферийный интерфейс.
IPS: переключение в плоскости.

Чтобы узнать, как подключить Arduino к TFT-дисплею ST7789, посетите этот пост:
Взаимодействие Arduino с TFT-дисплеем ST7789 — Пример графического теста

О датчике BME280:
Датчик BME280 от Bosch Sensortec — это недорогой цифровой датчик давления, температуры и влажности с хорошей точностью. Поскольку давление меняется с высотой, мы можем использовать его как высотомер с точностью ± 1 метр (точность давления = ± 1 гПа). Некоторые параметры датчика перечислены ниже:

Диапазон давления: 300… 1100 гПа (эквивалент + 9000… -500 м над / под уровнем моря)
Разрешение по давлению: 0.01 гПа (<10 см)
Диапазон температур: -40… 85 ° C
Температурное разрешение: 0,01 ° C
Диапазон влажности: 0… 100%
Интерфейс: I2C и SPI
Диапазон напряжения питания: 1,71… 3,6 В

В этом проекте датчик BME280 используется в режиме I2C.

Требуемое оборудование:

  • Плата Arduino
  • ST7789 Модуль дисплея TFT (1,3 ″, 1,54 ″…)
  • Модуль датчика BME280 (со встроенным регулятором 3,3 В и переключателем уровня) —-> Техническое описание BME280
  • 4 х 3.Резистор 3 кОм (+1, если дисплейный модуль имеет вывод CS)
  • Резистор 4 x 2,2 кОм (+1, если модуль дисплея имеет вывод CS)
  • Макет
  • Перемычки

Arduino с ST7789 TFT и схема датчика BME280:
Принципиальная схема проекта показана ниже.

Подсказка:
Микросхема BME280 работает с максимальным напряжением 3,6 В (диапазон напряжения питания от 1,71 до 3,6 В), что означает, что мы должны использовать регулятор напряжения 3 В 3 для питания его от источника 5 В.
Кроме того, если мы работаем с системой 5 В (плата разработки, микроконтроллер…), такой как плата Arduino UNO (микроконтроллер ATmega328P), мы должны использовать переключатель уровня напряжения (преобразователь уровня), который преобразует 3,3 В (поступает из микросхему BME280) на 5 В (идет на ATmega328P) и наоборот. Этот переключатель уровня предназначен для линий шины I2C (часы и данные).
Модуль BME280, показанный на принципиальной схеме проекта, имеет встроенный регулятор 3,3 В и переключатель уровня.

Обычно модуль BME280 имеет как минимум 4 контакта, потому что он может работать в режиме SPI или I2C.Для режима I2C нам нужны 4 контакта: VCC, GND, SDA и SCL, где:
VCC — это вывод источника питания, он подключен к выводу Arduino 5V,
GND (земля) подключен к выводу Arduino GND,
SDA — это шина I2C. Линия последовательных данных, подключенная к аналоговому выводу 4 Arduino (A4),
SCL — это линия последовательной синхронизации шины I2C, подключенная к аналоговому выводу 5 (A5) Arduino.

Модуль дисплея ST7789, показанный на принципиальной схеме проекта, имеет 7 контактов: (справа налево): GND (земля), VCC, SCL (последовательные часы), SDA (последовательные данные), RES (сброс), DC (или D / C: данные / команда) и BLK (подсветка).
Подключение штыря BLK не является обязательным. Подсветка выключается, когда вывод BLK подключен к земле (GND).

Как упоминалось выше, контроллер дисплея TFT ST7789 работает только с напряжением 3,3 В (питание и линии управления). На модуль дисплея подается напряжение 3,3 В (между VCC и GND), которое поступает от платы Arduino.

Все выходные контакты платы Arduino UNO имеют напряжение 5 В, подключение вывода 5 В к TFT-дисплею ST7789 может повредить его контроллер.
Чтобы подключить Arduino к модулю дисплея, я использовал делитель напряжения для каждой линии, что означает, что есть 4 делителя напряжения.Каждый делитель напряжения состоит из резисторов 2,2 кОм и 3,3 кОм, это понижает 5 В до 3 В, чего достаточно.

Если дисплейный модуль имеет вывод CS (Chip Select), он должен быть подключен к цифровому выводу 10 Arduino через другой делитель напряжения.

Итак, TFT-дисплей ST7789 подключается к плате Arduino следующим образом (каждый через делитель напряжения): вывод
RST подключен к цифровому выводу 8 Arduino, вывод
DC подключен к цифровому выводу 9 Arduino, вывод
SDA подключен к цифровому выводу 11 Arduino, вывод SCL
подключен к цифровому выводу 13 Arduino.

Другие контакты подключаются следующим образом: вывод
VCC подключен к контакту Arduino 3V3, контакт
GND подключен к контакту Arduino GND, контакт
BL (LED) подключен к контакту Arduino 3V3 (необязательно).

Arduino с сенсором ST7789 TFT и BME280:
Для следующего кода Arduino требуются 3 библиотеки от Adafruit Industries:
Первая библиотека — это драйвер для дисплея ST7789 TFT, который можно установить из диспетчера библиотек Arduino IDE (Sketch -> Include Library — > Управление библиотеками…, в поле поиска напишите «st7789» и установите библиотеку от Adafruit).

Вторая библиотека — это графическая библиотека Adafruit, которую также можно установить из диспетчера библиотек Arduino IDE.

Третья библиотека предназначена для датчика BME280, ее можно установить с помощью диспетчера библиотек (в поле поиска напишите «bme280» и выберите библиотеку от Adafruit).

Три библиотеки можно установить вручную, сначала загрузите их по следующим ссылкам:
Библиотека Adafruit ST7789 TFT —-> прямая ссылка
Графическая библиотека Adafruit —-> прямая ссылка
Библиотека Adafruit BME280 —-> прямая ссылка

Вам может потребоваться установить библиотеку Adafruit Unified Sensor, если она еще не установлена. Ссылка для скачивания приведена ниже:
Библиотека Unified Sensor Adafruit —> прямая ссылка

После загрузки перейдите в Arduino IDE -> Sketch -> Включить библиотеку -> Добавить.ZIP Library… и найдите файл .zip (загруженный ранее).
То же самое и с другими файлами библиотеки.

Подсказки:
Библиотеки включены в основной код следующим образом:

#include // Базовая графическая библиотека Adafruit

#include // Аппаратно-зависимая библиотека Adafruit для ST7789

#include // Библиотека датчиков Adafruit BME280

Соединения выводов модуля TFT ST7789 (CS, RST и DC) определены, как показано ниже (даже модуль дисплея не имеет вывода CS, но его определение требуется библиотекой Adafruit ST7789):

// Подключения модуля TFT ST7789

#define TFT_CS 10 // определить вывод выбора микросхемы

#define TFT_DC 9 // определить вывод данных / команд

#define TFT_RST 8 // определить вывод сброса или установить на -1 и подключитесь к пину сброса Arduino

Другие выводы дисплея (SDA и SCL) подключены к выводам аппаратного модуля SPI Arduino (цифровой вывод 11 и цифровой вывод 13 соответственно для MOSI и SCLK).

Библиотека Adafruit ST7789 инициализируется этой строкой:

Adafruit_ST7789 tft = Adafruit_ST7789 (TFT_CS, TFT_DC, TFT_RST);

И TFT-дисплей инициализируется с помощью следующей команды:

// инициализировать дисплей ST7789 (240×240 пикселей)

// если дисплей имеет вывод CS, попробуйте SPI_MODE0

tft.init (240, 240, SPI_MODE2);

Как и любое другое устройство I2C, датчик BME280 имеет подчиненный адрес I2C, который может быть 0x76 или 0x77. Этот адрес зависит от подключения вывода SDO (используется для режима SPI в качестве вывода последовательных данных или MISO), если вывод SDO подключен (напрямую или через резистор) к VCC (3,3 В), адрес будет 0x77, и если он подключенный к GND адрес будет 0x76.

Адрес I2C по умолчанию библиотеки BME280 определен как 0x77, а адрес I2C моего устройства — 0x76.
В коде определение адреса ведомого устройства I2C датчика BME280 и инициализация его библиотеки показаны ниже:

// определение адреса I2C устройства: 0x76 или 0x77 (0x77 — адрес библиотеки по умолчанию)

#define BME280_I2C_ADDRESS 0x76

Adafruit_BME280 bme280; // инициализируем библиотеку Adafruit BME280

Инициализация датчика BME280 выполняется с помощью функции begin (), которая возвращает 1, если все в порядке, и 0, если ошибка.В коде инициализация с ранее определенным адресом выглядит следующим образом:

bme280.begin (BME280_I2C_ADDRESS)

Считывание значений температуры, влажности и давления:

// считываем температуру, влажность и давление с датчика BME280

float temp = bme280.readTempera (); // получить температуру в ° C

float humi = bme280.readHumidity (); // получить влажность в%

float pres = bme280.readPressure (); // получаем давление в Па

Обратите внимание, что библиотека датчиков BME280 возвращает значение давления в единицах Па, и чтобы преобразовать его в гПа, мы должны разделить его на 100.

1 бар = 10000 Па = 100 гПа. (1 гПа = 100 Па = 1 миллибар)
Па: Паскаль
гПа: Гектопаскаль

Значения температуры и давления отображаются на TFT-дисплее ST7789.
Если есть проблема с датчиком BME280 (плохое соединение, неправильный адрес устройства…), на экране отобразится ошибка подключения.

Полный код Arduino:

1

2

3

4

5

6

7

8

9

10

11

12

13

140002

18

19

20

21

22

23

24

25

26

27

28

29

30

000

000 34

35

36

37

38

39

40

41

42

43

44

45

46

49

0002 47

00030002 47

0003

51

52

53

54

55

56

57

58

59

60

61

62

63

9 0002 64

65

66

67

68

69

70

71

72

73

74

75

76

77

81

82

83

84

85

86

87

88

89

90

91

92

93

000

93

000

000 97

98

99

100

101

102

103

104

105

/ ********************************************** ************************

*

* Arduino с TFT-дисплеем ST7789 (240×240 пикселей) и BME280

* барометрическое давление, температура и влажность датчик..

* Это бесплатное программное обеспечение БЕЗ ГАРАНТИЙ.

* https://simple-circuit.com/

*

******************************* ************************************** /

#include // Основная графическая библиотека Adafruit

#include // Аппаратная библиотека Adafruit для ST7789

#include // Библиотека датчиков Adafruit BME280

// Подключение модуля ST7789 TFT

#define TFT_CS 10 // определение вывода выбора микросхемы

#define TFT_DC 9 // определение вывода данных / команд

#define TFT_RST 8 // определение вывода сброса или установка на -1 и подключение к выводу сброса Arduino

// инициализировать TFT-библиотеку Adafruit ST7789 с помощью аппаратного модуля SPI

// MOSI (SDA) —> Цифровой вывод 11 Arduino

// SCK (SCL) —> Цифровой вывод 13 Arduino

Adafruit_ST7789 tft = Adafruit_ST7789 ( TFT_CS, TFT_DC, TFT_RST);

// определить адрес I2C устройства: 0x76 или 0x77 (0x77 — адрес библиотеки по умолчанию)

#define BME280_I2C_ADDRESS 0x76

// инициализировать библиотеку Adafruit BME280

Adafruit_BME280 bme280;

void setup (void) {

// инициализировать дисплей ST7789 (240×240 пикселей)

// если дисплей имеет вывод CS, попробуйте SPI_MODE0

tft.init (240, 240, SPI_MODE2);

// если экран перевернут, удалите эту команду

tft.setRotation (2);

// заливка экрана черным цветом

tft.fillScreen (ST77XX_BLACK);

tft.setTextWrap (ложь); // выключить опцию переноса текста

// инициализировать датчик BME280

if (bme280.begin (BME280_I2C_ADDRESS) == 0)

{// ошибка подключения или неправильный адрес устройства!

тфт.setTextColor (ST77XX_WHITE, ST77XX_BLACK); // установить цвет текста на белый и черный фон

tft.setTextSize (4); // размер текста = 4

tft.setCursor (3, 88); // перемещаем курсор в позицию (3, 88) пиксель

tft.print («Connection»);

tft.setCursor (63, 126); // перемещаем курсор в позицию (63, 126) пиксель

tft.print («Ошибка»);

при этом (1); // оставаться здесь

}

tft.setTextColor (ST77XX_WHITE, ST77XX_BLACK); // установить цвет текста на зеленый и черный фон

tft.setTextSize (3); // размер текста = 3

tft.setCursor (17, 0); // перемещаем курсор в позицию (17, 0) пиксель

tft.print («ТЕМПЕРАТУРА:»);

tft.setCursor (44, 89); // перемещаем курсор в позицию (44, 89) пиксель

tft.print («ВЛАЖНОСТЬ:»);

tft.setCursor (44, 178); // перемещаем курсор в позицию (44, 178) пиксель

tft.print («PRESSURE:»);

tft.setTextSize (4); // размер текста = 4

}

// переменные

char _buffer [11];

// основной цикл

void loop () {

delay (1000); // подождите секунду

// считайте температуру, влажность и давление с датчика BME280

float temp = bme280.readTempera (); // получить температуру в ° C

float humi = bme280.readHumidity (); // получить влажность в%

float pres = bme280.readPressure (); // получить давление в Па

// распечатать данные на дисплее

// 1: напечатать температуру (в ° C)

if (temp <0) // если температура <0

sprintf (_buffer, «-% 02u.% 02u», (int) abs (temp), (int) (abs (temp) * 100)% 100);

else // температура> = 0

sprintf (_buffer, «% 02u.% 02u «, (int) temp, (int) (temp * 100)% 100);

tft.setTextColor (ST77XX_RED, ST77XX_BLACK); // установить цвет текста на красный и черный фон

tft.setCursor (15, 34);

tft.print (_buffer);

tft.drawCircle (173, 40, 4, ST77XX_RED); // печать символа градуса (°)

tft.drawCircle (173, 40, 5, ST77XX_RED);

tft.setCursor (183, 34);

tft.print («C»);

// 2: влажность печати

sprintf (_buffer, «% 02u.% 02u %% «, (int) humi, (int) (humi * 100)% 100);

tft.setTextColor (ST77XX_CYAN, ST77XX_BLACK); // установить цвет текста на голубой и черный фон

tft.setCursor ( 39, 123);

tft.print (_buffer);

// 3: давление печати (в гПа)

sprintf (_buffer, «% 04u.% 02uhPa», (int) (pres / 100) , (int) ((uint32_t) pres% 100));

tft.setTextColor (ST77XX_YELLOW, ST77XX_BLACK); // установить цвет текста на желтый и черный фон

tft.setCursor (0, 212);

tft.print (_buffer);

}

// конец кода.

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

Связанный проект:
Arduino с датчиком BMP280 и TFT-дисплеем ST7789

Метеостанция

DIY с Raspberry Pi, Arduino | uBeac

Последние несколько статей были посвящены домашним системам безопасности и домашнему мониторингу.Были учебные пособия, показывающие, как сделать дымовые извещатели и системы пожарной сигнализации, чтобы предупредить вас о том, как добраться до безопасного места. Также были инструкции о том, как сделать камеры видеонаблюдения для наблюдения за злоумышленниками и другими опасностями вокруг вашего дома. Хотя эта статья не учит вас, как защититься от горящих предметов или злоумышленников, она помогает вам решить, что вы можете сделать в этот день. Используя Raspberry Pi, Arduinos и ESP8266, мы покажем вам несколько самодельных метеостанций, которые вы можете сделать и использовать дома.

Интернет-сообщества — отличное место для поиска хороших руководств.
и вдохновение для проектов, включая метеостанции.Мы собираемся
изучите некоторые из них более подробно.

Конструкции

Сделать своими руками
метеостанция, необходимое оборудование немногочисленное и дешевое. Как показывает этот проект метеостанции, Raspberry
Pi, датчик атмосферного давления и высоты BMP280, макет и
некоторые перемычки — это все необходимое оборудование.
Это простой и легкий способ определить погоду в вашем доме. Тем не мение,
в этом проекте оборудование остается открытым, что не идеально для внешнего использования.

В рамках этого проекта персональной метеостанции изготовлен контейнер для защиты
свое оборудование от природы и использовал Arduino, ESP8266,
и датчики, такие как датчик температуры и влажности DHT11 и
Датчик атмосферного давления BMP180 plus
разъемы, заголовки и резисторы.Этот дизайн был разработан для использования внутри помещений, чтобы
проверьте состояние конкретной комнаты в доме.

Все эти датчики
которые могут обнаруживать изменения окружающей среды, небольшие, дешевые и полезные для наших домашних хозяйств.
метеостанции. Однако, если поиск каждого датчика занимает слишком много времени, попробуйте
с помощью Raspberry Pi Sense HAT, дополнительной платы для Raspberry Pi.
Он включает в себя следующие датчики: гироскоп, акселерометр, магнитометр, температуру, атмосферное давление и влажность. Это
Также имеется светодиодная матрица 8х8 RGB и пятикнопочный джойстик.Raspberry Pi
Sense HAT — очень полезное и доступное дополнение для всех ваших проектов,
стоимостью около 35 долларов США. Использование этого с Raspberry Pi позволит вам
сделать самую простую метеостанцию, как этот дизайнер сделал со своим Make
Мини-метеостанция с учебником Raspberry Pi. Все, что им было нужно, было
два указанных аппаратных средства и некоторое программирование для завершения их
метеостанция.

Солнечная энергия!

Можно
сделайте еще один шаг и обеспечьте свою метеостанцию ​​возобновляемыми источниками энергии.Этот
дизайнер сделал солнечную батарею Arduino Weather
Станция, которая
состоит из двух основных частей для функционирования, части, которая остается на открытом воздухе.
для сбора данных, и часть, которая остается в помещении, чтобы получать эти данные. Во-первых, это
модуль передатчика, который оставался снаружи, собирая данные о погоде, используя температуру, влажность, количество осадков,
и датчики атмосферного давления. Эта часть будет работать от
солнечная энергия и беспроводная отправка данных. Вторая часть представляла собой модуль приемника, который
получил данные и отобразил их в помещении.Этот проект полезен для удаленных
районы, в которых нет точных данных о погоде из крупных городов.

Наблюдать за всем

Не хуже
солнечный дизайн, вы можете избавиться от модуля приемника и просто использовать свой
компьютер для мониторинга модуля передатчика. Фактически, все вышеперечисленные проекты
можно отслеживать через компьютер, планшет или даже телефон. Ты только
необходимо войти на платформу IoT, которая может отображать ваши данные в удобном для чтения
приборная панель. Здесь на помощь приходит uBeac, упрощающий использование ваших проектов.Благодаря своей мощной платформе IoT uBeac позволяет визуализировать тенденции на основе данных, которые вы
Собраны метеостанции. Он позволяет настроить панель управления так, чтобы
все, что душе угодно, даже предоставляя виджет Raw, который
позволяет создавать собственные виджеты с помощью HTML. uBeac — это IoT-сервис, который вы можете легко получить
руки, подписавшись с бесплатной учетной записью.

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

Метеостанция Arduino: пошаговое руководство

  • Создайте собственную метеостанцию ​​
  • Используйте и узнайте больше об Arduino
  • Эксплуатация и знание датчика температуры и влажности
  • Кодирование различных модулей, таких как LCD, DHT11 и RTC
  • Базовый опыт работы в электронике
  • Желание действовать, а не просто смотреть

Добро пожаловать на курс по метеостанции Arduino.

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

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

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

Вы узнаете и подключите датчики, такие как

  • Ветер

  • Влажность

  • Дождь

  • Температура

  • Давление

  • Высота

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

Характеристики у нее будет

  • Температура

  • Влажность

  • Время и дата

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

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

Для кого предназначен этот курс:

  • Компьютерщики
  • Arduino Geeks
  • Всем, кто интересуется созданием удивительных проектов электроники
  • Всем, кто заинтересован в создании потрясающих проектов микроконтроллеров

Домашняя автоматизация: метеостанция с Arduino

Абстрактные

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

Процесс предсказания погоды выходит за рамки домашних метеостанций. Но запись этой информации может быть интересной и сложной задачей. Добавьте к этому, что сеть персональных метеостанций WeatherUnderGround поощряет вас размещать свои данные на их сайте, и у вас получится интересный проект DIY.

Проект «Персональная метеостанция» (PWS) позволяет любому приобрести недорогую автоматизированную метеостанцию ​​и размещать условия на нашем веб-сайте. У нас есть тысячи станций в нашей всемирной сети, и проект продолжает расти! PWS

Основная идея довольно проста. Постройте ящик для некоторых инструментов, таких как термометр, барометр, гигрометр, флюгер, индикатор скорости ветра и датчик дождя. Затем все, что вам нужно для этого, выходить каждые 3-4 часа, считывать показания приборов и записывать значения в журнал.Тогда у вас есть погода для вашего сайта.

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

Цифровые метеостанции

Если поискать в интернете, то в продаже много готовых метеостанций. Они варьируются от простых домашних устройств, таких как Ambient Weather WS-1075, по цене 59,95 долларов.

Ambient Weather WS-2080

На более профессиональные метеостанции, такие как WeatherHawk 620, за 6 825 долларов.

WeatherHawk 620

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

Итак, я предлагаю другой подход к персональной метеостанции, давайте построим свою собственную. Я мог бы собрать датчики для разных частей и скомбинировать их на макетной плате. Но зачем беспокоиться, когда Sparkfun Weather Shield уже существует.

Sparkfun Weather Shield

Метеостанция DIY

Итак, теперь мы решили, что построить нашу собственную метеостанцию ​​будет интереснее, сложнее или, может быть, просто больше работы. Но вы должны понимать, что если я куплю уже построенную систему, этого разговора не будет, и что в этом интересного?

Чтобы погодный щит работал, нам нужно добавить плату контроллера и средства связи.Я собираюсь выбрать Sparkfun Redboard, который является совместимым с Arduino микроконтроллером.

Sparkfun Redboard

Следующая плата, которая мне понадобится, — это что-то, что позволит микропроцессору общаться с внешним миром. Для моей цели я собираюсь использовать плату Ethernet Shield, чтобы разрешить TCP / IP-соединения с внешним миром.

Ethernet Shield

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

Метеометры

Теперь мы решили, какое оборудование будем использовать. Итак, теперь нам нужно подумать о том, какое программное обеспечение мы собираемся использовать. Как это часто бывает с Arduino, уже существует код для чтения датчиков и вывода данных. Мы можем найти пример кода на сайте sparkfun / Weather_Shield.

Если вы запустите это программное обеспечение, оно выдаст в последовательном мониторе вывод, например:

$, winddir = 0, windspeedmph = 0, windgustmph = 1, windgustdir = 0, windspdmph_avg2m = 0, winddir_avg2m = 0 \
, windgustmph_10m = 0, windgustdir_10m = 0, влажность = 0 дождь, tempf = 0, ежедневный дождь, tempf = 0, ежедневный дождь = 0, давление = 0 \
, batt_lvl = 5, light_lvl = 0, #
Примечание: \ — это символ продолжения строки, это все на одной строке.

Что интересно, поскольку он измеряет все значения и выводит их. Но чтобы использовать их, нам нужно что-то с ними делать.

Но что делать с выводом?

Теперь мы переходим к самому интересному. Необработанные данные — это хорошо, но как вы можете превратить что-то подобное в полезную информацию? Я нашел два способа справиться с этим.

Подземный Погодный

Веб-сайт Personal Weather Station Network описывает, как вы можете отправлять им данные для создания собственного сайта погоды.Этот вариант более подробно описан на Метеостанции, подключенной по беспроводной сети к Wunderground.

Чтобы дать вам представление о том, как выглядит одна из этих персональных метеостанций, вот страница White Plains, NY.

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

Погодное программное обеспечение WeeWX

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

Чтобы дать вам представление о том, как выглядит это программное обеспечение, вот их страница с примерами метеостанций WeeWX.

Как подключить погодозащитный экран к WeeWX

Теперь, когда мы выбрали, что делать с выводом Weather Shield, давайте обсудим, что нам нужно сделать, чтобы это сработало. Я начну с определения того, что мне нужно было сделать, а затем как я это сделал.

  1. Как связать данные из Weather Shield с программным обеспечением WeeWX?

    Я провел небольшое расследование по этому вопросу и обнаружил, что существует расширение под названием fileparse. Это считывает данные для программы WeeWX из файла.

  2. Как перенести данные с погодозащитного экрана в файл?

    Для работы мне понадобились две части. Сначала мне нужно было настроить плату Ethernet для записи данных сетевого компьютера. Во-вторых, мне нужно было получить данные с погодозащитного экрана в файл на моем сервере Linux.

Fileparse для WeeWX

После некоторого покопания я смог определить, что формат для разбора файлов был просто name = value. Итак, покопавшись, я смог взять значения из демонстрационного файла Weather Shield выше и преобразовать имена в соответствии с тем, что нужно WeeWX.Результат выглядит примерно так:

Дата = 20150609 15:18:34
windDir = NW
windSpeed ​​= 5
windGust = 0
windGustDir = SE
outHumidity = 75
outTemp = 81
дождь = 0,0
барометр = 32,123
радиация = 3,4

Arduino разговаривает по TCP / IP

Следующим трюком было заставить Arduino говорить по TCP / IP. По замыслу Arduino не имеет сетевого интерфейса. Я добавил к своему погодному экрану экран Ethernet для связи по сети.Я нашел образец кода на веб-сервере Barometric Pressure Web Server, который помог мне научиться настраивать карту Ethernet и отправлять данные. Теперь я знал, как общаться по сети от погодного щита до сервера Linux.

Получение данных о погоде в файл

Еще одна интересная проблема заключалась в том, как записать вывод погодозащитного экрана в файл. Оказывается, в Linux есть инструмент под названием netcat.

Этот инструмент позволяет мне отправлять данные с погодного щита на определенный IP-адрес и порт.Затем на сервере Linux я могу запустить сеанс Netcat, который будет следить за портом и записывать любые входящие данные в файл.

Этот интерфейс отлично подходит для того, что я пытаюсь сделать. Погодозащитный экран просто отправляет данные с определенным интервалом. Затем netcat на сервере Linux захватывает информацию и помещает ее в файл по моему выбору. Этот тип интерфейса на сервере требует немного ресурсов для мониторинга порта. Поскольку все это происходит внутри моего брандмауэра, я не беспокоюсь о том, что кто-то взломает мою систему.Данные в файле читаются только WeeWX, у которого есть хороший анализатор входных данных, и он отклоняет все, что не соответствует предопределенному входу.

А как насчет даты?

Одно из препятствий, с которым я столкнулся, заключалось в том, как заставить Arduino выводить отметку времени, поскольку у него нет часов реального времени. Я подумал о добавлении часов реального времени к погодозащитному экрану, но потом у меня появилась другая идея.

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

Обычно рабочая станция связывается с сервером времени, чтобы узнать время. Но они отговаривают вас делать запросы чаще, чем один раз в день. Мне нужно время примерно раз в минуту. Поскольку я не хотел раздражать NTP-серверы, мне пришла в голову идея настроить мой Linux-сервер так, чтобы он работал как NTP-сервер.

Оказалось, что это было легко настроить. Как только это было сделано, мне просто нужно было настроить Arduino для запуска клиента NTP и направить его на мой сервер Linux.

Теперь накатываю собственный исходный код.

Перепробовав все разные части кода, я был готов собрать все вместе. Я столкнулся с несколькими проблемами, но в целом он отлично работал на Arduino. Актуальный код Weather Shield доступен здесь.

Я не буду делать вид, что этот код легко читается, но он работает с погодозащитным экраном и этим компьютером в качестве сервера WeeWX.

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

Для более подробного обсуждения WeeWX я отсылаю вас к Руководству пользователя по архитектуре. Это подробное объяснение целей программного обеспечения.

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

Домик для моей электроники

Оказывается, есть несколько типов домов для защиты от непогоды.

  1. Если вы хотите создать активный дом для своей электроники, вы можете использовать коаксиальный радиационный экран. Он создает воздушный поток через устройство, но требует активной мощности для вентилятора.

  2. Вторым типом кожуха для электроники является защита от солнечного излучения для измерения температуры и влажности окружающей среды SRS100LX. Это готовый кейс, который удерживает электронику и защищает ее от непогоды, обеспечивая при этом точные показания.

  3. Третий вид ящиков — самодельные.Я использую некоторые планы из школы погоды в Великобритании, чтобы построить Weather Box Digital из дерева. Затем коробка окрашивается в белый цвет, чтобы отражать прямой солнечный свет.

Расположение метеостанции

Существует несколько различных вариантов размещения метеостанции. К счастью, я нашел хороший документ «Персональная метеостанция — местоположение».

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

На данный момент у меня работает метеостанция. Я решил установить свою метеостанцию ​​на 20-футовой опоре сбоку от дома. Он находится примерно в 35 футах от земли и в 10 футах над моей крышей. Убедившись, что все работает нормально, я включу отправку данных на личные сайты Weather Underground с помощью программного обеспечения WeeWX.

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

Если бы я хотел пойти дальше, чтобы сделать эту станцию ​​более автономной. Для этого мне нужно было бы добавить аккумулятор, цепь зарядки и солнечную панель. Этот шаг в сочетании с беспроводной картой сделает систему легко перемещаемой практически куда угодно. Информацию об использовании батарей и солнечной панели см. В статье Метеостанция, подключенная по беспроводной сети к Wunderground.

для получения дополнительной информации о погоде.

Я бы порекомендовал взглянуть на программу Citizen Weather Observer Program или форум независимых погодных энтузиастов


Написано Джоном
Ф. Мур

Последняя редакция: среда, 18 октября, 11:01:23 EDT 2017 г.

Это произведение находится под лицензией
Лицензия Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported
Лицензия.

Метеостанция Arduino: пошаговое руководство

Группа инженеров по обучению

Группа опытных инженеров, делящихся знаниями со всем миром

Группа инженеров по обучению

— ведущая команда в индустрии микроконтроллеров с более чем 13-летним опытом преподавания и выполнения практических проектов .

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

Эти реальные знания позволяют легко усваивать знания, и вы можете сразу же применять их в своей жизни и проектах.

Группа инженеров по обучению работает в сфере программирования и микроконтроллеров с 2007 года. Мы участвовали во многих проектах. За эти годы мы получили хорошее представление о потребностях студентов и преподавателей. Мы стремимся делиться с вами всеми нашими коллективными знаниями. По состоянию на 2018 год мы уже обучили более 250 тысяч студентов, и их количество растет.

В настоящее время у нас более 100+ курсов по Udemy

Педагог и автор «Образовательной инженерии».

Ашраф — педагог, инженер мехатроники, любитель электроники и программирования, а также производитель. Он создает онлайн-видеокурсы на канале EduEng на YouTube (более 4 миллионов просмотров, более 20 тысяч подписчиков) и автор четырех книг о микроконтроллерах.

В качестве главного инженера по вопросам образования с 2007 года в компании Educational Engineering Team, которую он основал, миссия Ашрафа заключается в изучении новых тенденций и технологий, помощи в обучении и улучшении мира.

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

Эта команда также работает в качестве инженеров-фрилансеров, помогая многим студентам в их дипломных проектах, а также предоставляет рекомендации и консультации для многих студентов на протяжении многих лет, чтобы помочь им начать свою карьеру.

Основное умение Ашрафа — объяснение сложных понятий путем пошагового простого для понимания материала с помощью видео и текста.Обладая более чем 11-летним опытом преподавания в высших учебных заведениях, Ашраф разработал простой, но всеобъемлющий и информативный стиль обучения, который ценят студенты со всего мира.

Его страсть к микроконтроллерам и программированию и, в частности, к миру Arduino, микроконтроллеров PIC, Rasberry Pi руководила его личным развитием и своей работой через образовательную инженерию.