Задать вопрос
@Misha5
профессиональный бомж

Какие есть лекции, уроки, туториалы по создания своего веб-сервера для IoT устройств?

Пишу диплом на тему "умный дом". Выбрал, потому что интересна область интернета вещей.
Сейчас стоит вопрос по созданию своего локального сервера, который бы объединял все устройства в рамках одной Wi-Fi сети.

У меня есть простенький сервер, на Node.js и express
const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send({ msg: 'Hello!' });
});

app.get('/users', (req, res) => {
  res.send({ msg: 'Hello user!' });
});

app.listen(3000, () => console.log('Running on port: 3000'));


Который я транслирую в сеть с помощью ngrok

И плата NodeMCU, которая принимает json с этого сервера.

Код для платы:
#include <Arduino.h>

#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>

#include <ESP8266HTTPClient.h>

#include <WiFiClient.h>

ESP8266WiFiMulti WiFiMulti;

void setup() {

  Serial.begin(115200);
  // Serial.setDebugOutput(true);

  Serial.println();
  Serial.println();
  Serial.println();

  for (uint8_t t = 4; t > 0; t--) {
    Serial.printf("[SETUP] WAIT %d...\n", t);
    Serial.flush();
    delay(1000);
  }

  WiFi.mode(WIFI_STA);
  WiFiMulti.addAP("wi-fi", "pass");   //здесь указываю wi-fi и пароль

}

void loop() {
  // wait for WiFi connection
  if ((WiFiMulti.run() == WL_CONNECTED)) {

    WiFiClient client;

    HTTPClient http;

    Serial.print("[HTTP] begin...\n");
    if (http.begin(client, "сюда вставляю url от ngrok")) { // HTTP

      Serial.print("[HTTP] GET...\n");
      // start connection and send HTTP header
      int httpCode = http.GET();

      // httpCode will be negative on error
      if (httpCode > 0) {
        // HTTP header has been send and Server response header has been handled
        Serial.printf("[HTTP] GET... code: %d\n", httpCode);

        // file found at server
        if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) {
          String payload = http.getString();
          Serial.println(payload);
        }
      } else {
        Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
      }

      http.end();
    } else {
      Serial.printf("[HTTP} Unable to connect\n");
    }
  }

  delay(10000);
}


На выходе получаю следующее:
604b7b8ba7cba721189063.png

Допустим у меня в квартире есть датчик движения, датчик температуры и я хочу, чтобы они отправляли данные на мой сервер, а тот в свою очередь - мне на телефон. Как этого добиться? Что почитать на тему?
Скиньте интересные топики, буду рад любой информации. Спасибо
  • Вопрос задан
  • 91 просмотр
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
http.POST
или использовать mqtt, что более оптимально.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы