@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

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

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

Войти через центр авторизации
Похожие вопросы
от 40 000 до 60 000 ₽
Искра Екатеринбург
от 80 000 до 100 000 ₽
Art gorka Санкт-Петербург
от 60 000 ₽
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект