| Ваш IP: 18.206.175.155 | Online(27) - гости: 17, боты: 9 | Загрузка сервера: 2.23 ::::::::::::

wi-fi модуль NodeMcu v3 с чипом ESP8266 (ESP-12e) — отправка GET запроса с сохранением в базу данных

На базе wi-fi модуля NodeMcu v3 с чипом ESP8266 (ESP-12e) можно сделать (для примера) термометр на цифровом датчике 18B20, информация об температуре при помощи GET запроса будет отправятся в базу данных MySQL.

Следующий скетч позволяет отправлять GET запросы на указанную страницу, в моем случае это test.php.

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
 
#include <OneWire.h>
#include <DallasTemperature.h>
OneWire oneWire(14);// D5 вход датчика 18b20
DallasTemperature t(&oneWire);
 
const char* ssid = "******"; // имя сети
const char* password = "******"; // пароль сети
int temper;
 
void setup () {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting..");
  }
  Serial.println("OK");
  Serial.print("IP: ");
  Serial.println( WiFi.localIP().toString() );
  t.begin();
  t.setResolution(10);//10 бит 18B20
}
 
void loop() {  
  t.requestTemperatures();
  temper = t.getTempCByIndex(0)*100; // опрос датчика 18B20
 
  if (WiFi.status() == WL_CONNECTED) {
    Serial.print(WiFi.RSSI());
    Serial.println(" dBm");
    Serial.println(temper);
    HTTPClient http;  
    http.begin("https://rcl-radio.ru/test.php/?temp=" + (String)temper);  
    delay(10000);
    int httpCode = http.GET();                                                                 
    if (httpCode > 0) { 
    Serial.print("HTTP ");
    Serial.print(httpCode); 
    if(httpCode==200){Serial.println(" OK");}else{Serial.println(" Error");}
    }                                                                
    http.end();   
  }
}

Файл test.php содержит следующий код:

<?php
 mysql_connect("localhost","имя_пользователя", "пароль") or die("Could not connect: " . mysql_error());
 mysql_select_db("имя_базы_данных") or die("Could not select database");
 mysql_query("SET NAMES utf8");
 
if(!empty($_GET["temp"])){
$temp = $_GET["temp"]/100;
$query = "INSERT INTO test (temp) VALUES ('$temp')";  
mysql_query($query);
}
?>

Файл test.php позволяет записывать данные от температуре в базу данных каждые 10 секунд.

В сервере MySQL необходимо создать базу данных, далее создайте таблицу test,  в ней будут всего два столбца, это id и test.

Столбцы содержат следующую структуру:

После создания таблицы столбцы будут заполнятся данными о температуре:

В мониторе порта можно увидеть следующую информацию:

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

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

Добавить комментарий

Случайные статьи

  • Преобразователь температуры

    На рисунке показана схема простого преобразователя температуры окружающей среды в напряжение. Резистор NTC (ТКС) или терморезистор используется в качестве датчика. Если температура возрастет, одновременно изменяется сопротивление терморезистора, при этом происходит изменение выходного напряжения преобразователя на 0,5 в на 1ºC. Коэффициент преобразования зависит от типа сопротивление терморезистора. Если вы хотите выходное …Подробнее...
  • Кодововая и цветовая маркировка отечественных транзисторов

    Кодововая и цветовая маркировка отечественных транзисторов

    Отечественные транзисторы с корпусами малых размеров маркируются цветовой или кодовой маркировкой и лишь в редких случаях марка транзистора наносится полностью, как есть. При ремонте бытовой аппаратуры можно столкнуться с цветовой или кодовой маркировкой и для замены транзистора необходимо определить марку транзистора, сделать это можно указав в предложенной форме тип транзистора. …Подробнее...
  • Регулятор скорости вращения двигателя 12В 150Вт

    Регулятор скорости вращения двигателя 12В 150Вт

    На рисунке показана схема простого регулятора скорости вращения двигателя 12В  мощностью до 150 Вт. Устройство имеет токовый ограничитель на 15А. Основа уст-ва, это система широтно-импульсной модуляции выполненная на ИМС TL494, благодаря чему скорость вращения двигателя может быть в диапазоне от 0 до 100%. При помощи R6 можно регулировать скорость вращения …Подробнее...
  • Высококачественный усилитель мощности на LM1876

    Высококачественный усилитель мощности на LM1876

    Усилитель выполнен на микросхеме LM1876, имеет выходную мощность до 22 Вт при напряжении питания от ±10 до ±32 В. ИМС LM1876 имеет защиту от перегрева, перегрузки, и систему мягкого включения для избавления от щелчков при подаче питания. Технические характеристики: Выходная мощность при Rн = 8 Ом и Uпит ±22 В … 2х20 …Подробнее...
  • Секундомер на PIC16F877A

    Секундомер на PIC16F877A

    В схеме секундомера используется микроконтроллер PIC16F877А и индикатор LCD WH1602D. Временной диапазон от 0,1 секунд до 24 часов. Управление секундомера состоит из двух кнопок «Старт\стоп» и «Сброс». При подачи питания индикатор показывает нулевые значения, при нажатии на кнопку «Старт\стоп» начинается отсчет, при повторном нажатии кнопки во второй строке индикатора появляется промежуточное …Подробнее...