Первый день начал изучать данную систему.
Для теста на модуль ардуино ESP8266 написал скетч который измеряет температуру и отсылает значения каждые 5 сек GET запросом в умный дом.
В умном доме создал в объектах: ESP8266 Общий класс для ESP8266 и тд, чтоб не отвлекать Вас на писанину добавил всё в скрины.
В окно меню вывел температуру , а вот загвоздка в шаблоне поведения. Создал шаблон отправляю команду из шаблона ответ не получаю .
Понимаю, что видимо в коде php неверно определяю переменную моего Объекта. Подскажите люди добрые
Скетч вдруг кому пригодиться для ESP8266 Lion
СпойлерПоказать
Скетч вдруг кому пригодиться для ESP8266 Lion
//Подключаем требуемые библиотеки для работы
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS D2 //Куда посадили датчик(какой разъём)
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
ESP8266WiFiMulti WiFiMulti;
long rssi = WiFi.RSSI();
void setup() {
Serial.begin(115200);
delay(10);
// Подключение к Wi-Fi сети
WiFiMulti.addAP("ИмяСети", "Пароль");
Serial.println();
Serial.println();
Serial.print("Wait for WiFi... ");
while(WiFiMulti.run() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
delay(500);
sensors.begin();
WiFi.mode(WIFI_STA);
}
void loop() {
const uint16_t port = 80;
const char * host = "IP mojardomo"; //Ваш ip сервера
sensors.requestTemperatures();
float temp = sensors.getTempCByIndex(0);
WiFiClient client;
if (!client.connect(host, port)) {
Serial.println("connection failed");
delay(5000);
return;
}
//temperatureKitchen-Объект уст-ва который вы создали; temperature-переменная свойста объекта и т.д.
client.print("GET /objects/?object=temperatureKitchen&op=set&p=temperature&v="); // заносим температуру
client.print(temp);
client.println("");
client.stop();
delay(5000);
if (!client.connect(host, port)) {
Serial.println("connection failed");
delay(5000);
return;
}
client.print("GET /objects/?object=temperatureKitchen&op=set&p=ip&v="); // заносим в базу ip устройства
client.print(WiFi.localIP());
client.println("");
client.stop();
delay(5000);
if (!client.connect(host, port)) {
Serial.println("connection failed");
delay(5000);
return;
}
client.print("GET /objects/?object=temperatureKitchen&op=set&p=rssi&v="); //уровень сигнала
client.print(rssi);
client.print(" dBm");
client.println("");
delay(5000);
client.stop();
delay(20000);
}
//Подключаем требуемые библиотеки для работы
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS D2 //Куда посадили датчик(какой разъём)
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
ESP8266WiFiMulti WiFiMulti;
long rssi = WiFi.RSSI();
void setup() {
Serial.begin(115200);
delay(10);
// Подключение к Wi-Fi сети
WiFiMulti.addAP("ИмяСети", "Пароль");
Serial.println();
Serial.println();
Serial.print("Wait for WiFi... ");
while(WiFiMulti.run() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
delay(500);
sensors.begin();
WiFi.mode(WIFI_STA);
}
void loop() {
const uint16_t port = 80;
const char * host = "IP mojardomo"; //Ваш ip сервера
sensors.requestTemperatures();
float temp = sensors.getTempCByIndex(0);
WiFiClient client;
if (!client.connect(host, port)) {
Serial.println("connection failed");
delay(5000);
return;
}
//temperatureKitchen-Объект уст-ва который вы создали; temperature-переменная свойста объекта и т.д.
client.print("GET /objects/?object=temperatureKitchen&op=set&p=temperature&v="); // заносим температуру
client.print(temp);
client.println("");
client.stop();
delay(5000);
if (!client.connect(host, port)) {
Serial.println("connection failed");
delay(5000);
return;
}
client.print("GET /objects/?object=temperatureKitchen&op=set&p=ip&v="); // заносим в базу ip устройства
client.print(WiFi.localIP());
client.println("");
client.stop();
delay(5000);
if (!client.connect(host, port)) {
Serial.println("connection failed");
delay(5000);
return;
}
client.print("GET /objects/?object=temperatureKitchen&op=set&p=rssi&v="); //уровень сигнала
client.print(rssi);
client.print(" dBm");
client.println("");
delay(5000);
client.stop();
delay(20000);
}