Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Персональная метеостанция (Arduino + ESP8266 + Thingspeak)

Компоненты и расходные материалы

Adafruit BMP180
× 1
Датчик температуры и влажности DHT11 (4 контакта)
× 1
LDR
Светозависимый резистор
× 1
Espressif ESP8266 ESP-01
× 1
Arduino Nano R3
× 1
Резистор 4,75 кОм
× 1
Резистор 51 кОм
× 1
Модуль понижающего питания понижающего преобразователя постоянного тока LM2596
× 1
разъем постоянного тока
× 1
переключатель
× 1
настенный адаптер 12v-2A
× 1
PCB
× 1
Мужской заголовок 40, позиция 1, строка (0,1 ")
× 1
Женский заголовок 8, позиция 1, строка (0,1 ")
× 5
пластиковый ящик
× 1

Необходимые инструменты и машины

инструмент для зачистки проводов
Пистолет для горячего клея (общий)
Паяльник (общий)
отвертка
Файл
используется для ручной работы

Приложения и онлайн-сервисы

IDE Arduino
ThingSpeak API

Об этом проекте

Введение:создание персональной метеостанции

Сидя в своей комнате, вы начинаете потеть или чувствовать озноб; Вы задаетесь вопросом, какой будет температура в вашей комнате? или какая будет влажность? Это случилось со мной некоторое время назад.

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

Давайте начнем.

Шаг 1. Быстрое видео

Вот небольшое видео, в котором все резюмируется за 5 минут.

Нажмите здесь, чтобы посмотреть на YouTube.

Шаг 2. Необходимые компоненты электроники для персональной метеостанции

Описание: Мы будем использовать DHT11 для измерения влажности, BMP180 для измерения температуры и давления и светозависимый резистор (LDR), чтобы получить приблизительное представление об интенсивности света. Arduino nano будет собирать данные с этих датчиков и отправлять их на ESP8266 для загрузки на ваш частный канал на сайте thingspeak.com. Мы будем питать нашу Arduino nano от настенного адаптера 12В-2А, а датчики и ESP8266 будут получать понижающее напряжение от понижающего преобразователя на основе LM2596.

Список компонентов:

  • Датчик давления и температуры BMP180,
  • датчик влажности DHT11,
  • Светозависимый резистор (LDR),
  • Модуль Wi-Fi ESP8266 (готовая прошивка),
  • Arduino nano,
  • 2 резистора - 51 кОм и 4,7 кОм,
  • понижающий преобразователь LM2596
  • разъем постоянного тока,
  • Переключить и
  • Сетевой адаптер 12В-2А.

Шаг 3. Инструменты и дополнительные предметы, необходимые для персональной метеостанции

Описание: Мы будем использовать инструмент для зачистки проводов для зачистки проводов, файл для сглаживания порезов / отверстий на корпусе, клеевой пистолет для размещения компонентов внутри корпуса, отвертку для закрытия крышки корпуса и паяльник с припоем для сборки схемы на печатной плате общего назначения (GCB). . Пластиковая коробка 4x4x2 дюйма действует как ограждение. Для правильной сборки на GCB нам также понадобятся штекер и гнездовая полоса Berg вместе с гнездовыми разъемами.

Список инструментов:

  • Инструмент для зачистки проводов
  • Файл,
  • Клеевой пистолет,
  • Отвертка и
  • Припой и припойная проволока.

Список дополнительных элементов:

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

Шаг 4. Требования к программному обеспечению

Описание:Чтобы увидеть значение данных датчиков, нам понадобится частный канал на сайте thingspeak.com. Нам понадобится Arduino IDE, чтобы написать код arduino для arduino nano. (Я предполагаю, что у вас есть ПК / ноутбук и Wi-Fi с доступом в Интернет)

Список требований к программному обеспечению:

  • Частный канал на Thingspeak.com и
  • Arduino IDE (желательно последняя версия).

Вы можете скачать последнюю версию Arduino IDE с arduino.cc. Теперь давайте создадим частный канал на сайте thingspeak.com.

Шаг 5. Создание частного канала на сайте Thingspeak.com

Чтобы сделать частный канал на сайте thingspeak.com, выполните следующие действия:

  • Откройте свой веб-браузер, перейдите на сайт thingspeak.com и щелкните вкладку «Зарегистрироваться» в правом верхнем углу (изображение №1).
  • Введите данные и нажмите "Создать учетную запись" (изображение № 2).
  • Теперь перейдите на вкладку "Новый канал" (изображение №3).
  • Снова заполните данные для канала и активируйте 4 поля (так как мы будем отправлять 4 значения датчика), прокрутите вниз и нажмите вкладку «Сохранить канал» (изображение №4 / 5).
  • На этой странице перейдите на вкладку "Ключи API" и запишите свой "Ключ API записи".

Вот и все, теперь у вас есть личный канал ThingSpeak.

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

Шаг 6. Схема персональной метеостанции

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

  • BMP180 подключается к порту I2C на Arduino nano.
  • LDR соединен как делитель напряжения с резистором 51 кОм, а переход соединен с выводом A1 Arduino nano.
  • Вывод данных DHT11 подтягивается высоко с помощью резистора 4,7 кОм и подключается к выводу A0 Arduino nano.
  • TX и RX ESP8266 подключаются к D10 и D11 Arduino nano соответственно. CH_PD ESP8266 подключается к шине 3,3 В.
  • Отрегулируйте выход модуля LM2596 на 3,3 В, поворачивая потенциометр на этом модуле. Подключите выход этого модуля к Vcc и Gnd BMP180, DHT11, LDR и Vcc и Gnd ESP8266 соответственно.
  • Вход модуля LM2596 осуществляется от настенного адаптера 12 В-2 А, который также подключается к Vin и Gnd Arduino nano.

Нам нужно собрать эту схему на плате общего назначения. Давайте сделаем это.

Шаг 7. Сборка схемы на плате общего назначения (GCB)

Аппаратные средства и дополнительные элементы из шага 3 теперь в деле.

  • Используйте полоску женского айсберга для размещения Arduino nano и ESP8288 на GCB,
  • Используйте припой и припой для электрического соединения их с платой.
  • Используйте гнездовые соединители для увеличения досягаемости всех датчиков и модуля LM2596, поскольку они будут прилипать к крышке и стенке корпуса.
  • Используйте мужскую полоску айсберга, чтобы сделать точки соединения для женских удлинителей, сделанных выше,
  • Реализуйте принципиальную схему на GCB, используя провода (зачистите их с помощью инструмента для зачистки проводов) или направляющую из расплавленной припойной проволоки и, наконец,
  • Проверьте сортировку перед включением цепи с помощью мультиметра.

Теперь, когда все оборудование размещено на GCB, давайте посмотрим на код.

Шаг 8. Код

Код для персональной метеостанции довольно прост. Я правильно прокомментировал код для удобства переноса. Перед записью кода позаботьтесь о следующем.

  • Убедитесь, что установлены все библиотеки,
  • Замените дефис на SSID вашей точки доступа (маршрутизатора Wi-Fi) в строке 14 кода,
  • Замените дефис на ПАРОЛЬ вашей сети Wi-Fi в строке 15 кода,
  • Замените дефисы ключом API записи частного канала ThingSpeak в строке 17 и
  • При программировании Arduino nano убедитесь, что источник питания 12 В постоянного тока ВЫКЛЮЧЕН.

Вот ссылка на github (Personal Weather Station) для загрузки кода и библиотек, которые я использовал.

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

Шаг 9. Подготовка корпуса

Теперь нам нужно проделать отверстия разной формы и размера на коробке 4х4х2 дюйма. Нам нужно проделать отверстия для разъема постоянного тока и включить любую желаемую стену корпуса. Еще нам нужно проделать отверстия для датчиков на крышке корпуса.

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

Используйте горячее лезвие, чтобы разрезать пластик.

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

Теперь ваш корпус готов к размещению вашей схемы.

Шаг 10. Закройте крышку

Поместите собранный GCB внутрь корпуса.

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

Вот и все, ваша персональная метеостанция. Включите источник питания и наблюдайте за температурой, влажностью, давлением и интенсивностью света в вашей комнате из любой точки мира через свой смартфон / ПК / ноутбук / планшет на частном канале ThingSpeak.

Это все для этого проекта. Комментарий в случае сомнений. Спасибо за чтение.

Код

  • Код
Код Arduino
 #include  #include  #include  #include  #define DEBUG 0 // измените значение на 1, чтобы включить отладку с использованием последовательного монитора #define dht_pin A0 // определение контакта A0 для датчика DHT # define lightSensor A1 // определение контакта A1 как входного контакта для делителя напряжения LDR dht DHT; Adafruit_BMP085 bmp; SoftwareSerial esp8266Module (10, 11); // RX, TXString network ="----"; // ваша точка доступа SSIDString password ="-------------"; // пароль вашей точки доступа Wi-Fi # define IP "184.106.153.149" // IP-адрес thingspeak.comString GET ="GET / update? key =----------------"; // заменить на ваш канал keyvoid setup () {if (DEBUG) {Serial.begin (9600); // Установка аппаратной скорости последовательной передачи данных на 9600} esp8266Module.begin (9600); // Установка скорости передачи программной последовательной передачи на 9600 if (! Bmp.begin ()) {if (DEBUG) {Serial.println ("Не удалось найти действующий датчик BMP085, проверьте проводку!"); } в то время как (1) {}} задержка (2000);} недействительный цикл () {setupEsp8266 (); DHT.read11 (dht_pin); двойной увлажнитель =DHT. влажность; двойной bmp_temp =bmp.readTemperature (); двойной bmp_pressure =bmp.readPressure (); int lightIntensity =analogRead (световой датчик); updateTemp (Строка (bmp_temp), Строка (lightIntensity), Строка (bmp_pressure), Строка (humi)); delay (30000);} // ------------------------------------------ ------------------------- // После настройки функции esp8266, поместите его в созданную станцию ​​и // подключитесь к точке доступа Wi-Fi. //- -------------------------------------------------- --------------- void setupEsp8266 () {if (DEBUG) {Serial.println ("Сброс esp8266"); } esp8266Module.flush (); esp8266Module.println (F ("AT + RST")); задержка (7000); if (esp8266Module.find ("OK")) {if (DEBUG) {Serial.println ("Найдено OK"); Serial.println («Смена режима espmode»); } esp8266Module.flush (); changeMode (); задержка (5000); esp8266Module.flush (); connectToWiFi (); } else {if (DEBUG) {Serial.println («ОК не найдено»); }}} // --------------------------------------------- ---------------------- // Следующая функция устанавливает esp8266 в режим станции // ----------------- -------------------------------------------------- bool changeMode () {esp8266Module.println (F ("AT + CWMODE =1")); if (esp8266Module.find ("OK")) {if (DEBUG) {Serial.println ("Режим изменен"); } вернуть истину; } else if (esp8266Module.find ("БЕЗ ИЗМЕНЕНИЙ")) {if (DEBUG) {Serial.println ("Уже в режиме 1"); } вернуть истину; } else {if (DEBUG) {Serial.println ("Ошибка при изменении режима"); } return false; }} // ---------------------------------------------- --------------------- // Следующая функция подключает esp8266 к точке доступа Wi-Fi // ----------------- -------------------------------------------------- bool connectToWiFi () {if (DEBUG) {Serial.println ("внутри connectToWiFi"); } Строка cmd =F ("AT + CWJAP =\" "); cmd + =network; cmd + =F (" \ ", \" "); cmd + =пароль; cmd + =F (" \ ""); esp8266Module.println (cmd); задержка (15000); if (esp8266Module.find ("OK")) {if (DEBUG) {Serial.println ("Подключен к точке доступа"); } вернуть истину; } else {if (DEBUG) {Serial.println («Не удалось подключиться к точке доступа»); } return false; }} // ---------------------------------------------- --------------------- // Следующая функция отправляет данные датчика на thingspeak.com //---------------- -------------------------------------------------- -void updateTemp (String Voltage1, String Voltage2, String Voltage3, String Voltage4) {String cmd ="AT + CIPSTART =\" TCP \ ", \" "; cmd + =IP; cmd + =" \ ", 80"; esp8266Module.println (cmd); задержка (5000); if (esp8266Module.find ("Ошибка")) {if (DEBUG) {Serial.println ("ОШИБКА при отправке"); } возвращение; } cmd =GET + "&field1 =" + напряжение1 + "&field2 =" + напряжение2 + "&field3 =" + напряжение3 + "&field4 =" + напряжение4 + "\ r \ n"; esp8266Module.print ("AT + CIPSEND ="); esp8266Module.println (cmd.length ()); задержка (15000); если (esp8266Module.find (">")) {esp8266Module.print (cmd); if (DEBUG) {Serial.println ("Данные отправлены"); }} else {esp8266Module.println ("AT + CIPCLOSE"); if (DEBUG) {Serial.println ("Соединение закрыто"); }}} 
Библиотека и код для персональной метеостанции
Ознакомьтесь с Readmehttps://github.com/jayraj4021/Personal-Weather-Station-14

Схема

schematic.fzz

Производственный процесс

  1. Метеостанция на основе Raspberry Pi
  2. Метеостанция Raspberry Pi 2
  3. Метеостанция Raspberry Pi
  4. Присоединяйтесь к IOT со своей метеостанцией - CWOP
  5. Weather Monitor
  6. Метеостанция V 2.0
  7. Умные жалюзи
  8. MKR1000 для ThingSpeak.com
  9. Портативная метеостанция Arduino (AWS) за 10 долларов
  10. eDOT - точные часы и метеостанция на базе Arduino