как передать температуру на сервер по WIFI и сохранить температуру в базе данных.

как передать температуру на сервер по WIFI и сохранить температуру в базе данных.

Хотите сохранить температуру с  температурного датчика dht в базе данных MYSQL. Вывести на экран монитора или телефона температуру и влажность. Подключение dht22 к esp и передача температуры на сервер. Обработка и сортировка данных полученных с ардуино или esp по wifi сети.  

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

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

Сначала рассмотрим схему подключения.
Она проста до безобразия. Если у вас модуль датчика температуры, то вам ничего больше не надо, а если голый датчик, то понадобится ещё 1 резистор. Номиналом от 5 до 10 кОм. Его надо подключать между первым и вторым выводом датчика. Третий вывод не используется, а четвёртый это земля. У меня много видео про подключение и использование датчиков температуры. Посмотреть можно на моём канале.

Сначала надо установить библиотеку. Да не одну, а сразу две. Так как для работы нам будут нужны 2 библиотеки. Но это не потому, что это нужно именно для моего примера. Нет. Это нужно для этого типа датчика. Я уверен, что вы умеете устанавливать библиотеки, поэтому я не говорю что надо нажать. А скажу только какие библиотеки нам понадобятся.
Для начала нужно установить Adafruit Sensor Lab. Это группа библиотек.
Раньше нам достаточно было всего одной, то теперь придётся устанавливать все. Но думаю, что они вам тоже пригодятся. Например для работы с RGB лентами, датчиками давления, мониторами и много с чем ещё. В общем качаем.
Ну и вторая это сама библиотека датчика. В версии для ESP все типов.

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

Видите как много у нас установилось примеров после установки библиотеки Adafruit Sensor Lab.
 Для работы с датчиком температуры на нужен вот этот.
Если вы подключили датчик по моей схеме подключения к D4 то вам ничего менять в скетче не надо. Так как D4 на плате ESP соответствует GPIO2.
Так как я использую версию датчика dht22, то у меня раскомментирована эта строчка, если у вас другой датчик, то раскомментируйте строку с вашим датчиком.
Здесь много всякой лишней информации. Нам она не пригодится.
Теперь компилируем скетч и смотрим, что у нас выводится.
Сразу скажу, что у меня какой-то глючный датчик. Температуру показывает правильно, а вот влажность как-то странно. Но это я уже и так знал. Просто схватил первый попавшийся, и как всегда закон подлости. Но уже не стал перепаивать.

Теперь рассмотрим уже готовый скетч для вывода температуры и влажности и передачи этих данных по WIFI сети на адрес локального сервера.
В моём случае это сервер находящийся по адресу 192.168.1.195

Сначала идут библиотеки для работы с сетью WIFI и датчиком температуры.
Затем устанавливаем логин и пароль от WIFI сети.
И указываем на тип датчика температуры.
Эти строчки отвечают за GET запрос который мы будем отправлять на локальный сервер. Там должен лежать файл с именем insert.php где будет код для вставки этих параметров в базу данных.
 Данные будут отправляться с интервалом в 10 секунд.

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

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

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

Рассмотрим страничку Index.php которая лежит на сервере.
В первой строчке идёт подключение к базе данных. Там указаны,
Ip сервера, пароль, логин и база данных.

В этих строчках мы получаем номер страницы из URL адреса.
Эта переменная отвечает за вывод на экран таблицы по 5 строчек.
А дальше рисуется сама таблица.

Здесь указан вывод всех значений из таблицы DHT22 и сортировка по ID в порядке убывания.

Видим, что теперь выводятся по 10 значений, а количество записей уже 30. Изменим теперь на 20 полей.
Полей стало больше, а страниц меньше.

Давайте теперь сделаем сортировку так же по ID, но по возрастанию.
Теперь у нас сверху находятся самые старые значения.

На первой странице с 1 по 20, а на второй с 21 по 35.
Теперь снова сделаем по убыванию.

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

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

 

Скетчи