Comments 51
По поводу отдельного файла CSS — вы можете его залить во внутреннюю память Esp-шки, а затем считывать стандартным API в ответ на запрос к серверу.
Правда я столкнулся с тем, что при достижении некоторого размера страницы (примерно в 10кб) сервер уходит в даун, модуль — в ребут. Или же еще, как вариант, показывает только часть страницы. С чем связано — не знаю, может кто подскажет (прошивка — не NodeMCU, среда — Arduino IDE)?
Правда я столкнулся с тем, что при достижении некоторого размера страницы (примерно в 10кб) сервер уходит в даун, модуль — в ребут. Или же еще, как вариант, показывает только часть страницы. С чем связано — не знаю, может кто подскажет (прошивка — не NodeMCU, среда — Arduino IDE)?
очевидно не хватает рамы под буфер вывода
Как с этим бороться? Разбивать страницы на меньшие — или есть еще какой-то вариант?
но зачем пытаться сделать из довольно маломощной железочки веб сервер отдающий мегабайты контента?
я бы на вашем месте вообще сделал бы просто сервисы, которые дёргать get\post запросами
например из мобильного приложения
я бы на вашем месте вообще сделал бы просто сервисы, которые дёргать get\post запросами
например из мобильного приложения
У меня веб сервер на esp отлично переваривает 50-90 кб файлы, правда не под NodeMCU, а через Arduino IDE писал код, используя веб сервер из стандартной библиотеки.
Прошивка NodeMCU хороша только для совсем поиграться. Очень долго мучался, пытаясь получить более-менее стабильно работающий web-сервер, отдающий странички размером больше 1400 байт. В итоге перешёл на esp8266/Arduino — файлы в 80Кб отдаются нормально.
положить css на cdn сервис гугла или амазона и давать на него ссылку. нет сети — нет css, зато быстро и можно пихать мегабайтные css и js
Можно подключить локальные стили через плагин к browser-у типа Stylish.
https://addons.mozilla.org/en-US/android/addon/stylish/?src=hp-dl-featured
https://addons.mozilla.org/en-US/firefox/addon/stylish/
https://addons.mozilla.org/en-US/android/addon/stylish/?src=hp-dl-featured
https://addons.mozilla.org/en-US/firefox/addon/stylish/
Bra ON — Bra OFF
(оффтопик) bra по-английски означает не совсем то, что вы думаете. Это означает «бюстгалтер».
Спасибо за статью. Мне подарили такую штуковину, я всё не знал как к ней подойти, теперь настало время встряхнуть с неё пыль)
Вы знаете, в случае с реле Блинк мне не нравится тем, что нет интернета — нет сервиса. Да, им очень легко пользоваться, его интерфейс приятен глазу и в интернете масса инструкций, но я стремлюсь чтобы мой умный дом не зависел от интернета. Сейчас разбираюсь с openwrt (lighttpd c sqlite3 уже запустились) чтобы временно (пока не дойдет до выделения отдельного железа под сервер) разместить там небольшую базу для ведения логов (температуры, влажности) и панель управления тем же «Bra». Кстати, если кто-то ткнет носом в аналогичный материал, буду признателен.
Возьмите малинку или ее аналог. Хватит за глаза.
Есть локальный сервер. Его мона даже на малине поднять.
Увы, малины нету и не уверен что будет. Чую, что всё равно приду к отдельному серверу, на который всё и повесится. Так что пока тренируюсь на том что есть. Тем более, не так давно перепал вот такой интересный роутер: http://www.gl-inet.com/gl-inet6416/ — на нём и тренируюсь.
Интересно, про роутер. Оформите впечатления и опыт в виде поста!
Я тоже заглядываюсь с некоторых пор на GL-MT300A
Я тоже заглядываюсь с некоторых пор на GL-MT300A
Если что-то более-менее определенное с ним получится — обязательно поделюсь. А роутер и правда интересен. Плюс этой мой первый опыт работы с OpenWRT. Ранее не попадался подходящий испытуемый. А у этого даже GPIO выходы есть, который можно задействовать и UART уже присутсвует. В общем подходящая штучка для экспериментов.
открою секрет, uart и gpio есть у всех роутеров ))
Можете попробавать Orange Pi, правда там прошивку допиливать надо, но зато всего 14 USD. Она на Али производителем продается.
Как вариант можно в дальнейшем попробовать ещё и LinkIt Smart 7688. А по поводу Gl-Inet тоже хотел бы увидеть статью.
Что делать с такой поделкой, если пропадет интернет? Облака это конечно хорошо, но показывать температуру дома, храня данные где-то у черта на рогах, а не том же на домашнем малиновом сервере, который будет работать всегда…
На этой плате отдельно выведены три контакты для прошивки: TX, RX, GND. Так вот оказалось, что TX разведен на RX самой ESP-12, соответственно RX — на TX.
Просидел целый день с этой платой, прежде чем догадался прозвонить пины и выходы — грешил на софт. Самое обидное, что есть платы такого же вида, но с правильным обозначением выводов, поэтому проблема не гуглилась толком.
Кстати, у вас все цвета в RGB диоде работают? У меня почему-то красного нет.
Упс, влажность конечно, а не давление. Подключил что было под рукой — датчик DHT11
А можно ваш исходный код посмотреть для такой штуки?
Это мои первые опыты с ESP8266 и Blynk поэтому может быть все не так правильно. Виртуальные пины нужны для программы на андроиде.
Светодиод пришлось инвертировать, потому что включением кнопки он выключался и наоборот.
Светодиод пришлось инвертировать, потому что включением кнопки он выключался и наоборот.
прошивка
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DHT.h>
#include <DHT_U.h>
#include <Adafruit_Sensor.h>
#define DHTPIN 14 // 14 пин датчика температуры
#define DHTTYPE DHT11
DHT_Unified dht(DHTPIN, DHTTYPE);
#define VPIN_TEMP V1
#define VPIN_HUMIDITY V2
#define VPIN_INVERTLED V3
#define VPIN_UPTIME V5
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "93c17d62c32647c9a8a5cab5c3c98783";
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, "SSID", "password");// wifi ssid and password
pinMode(13, OUTPUT); // 13 пин светодиода
digitalWrite(13, HIGH);
Blynk.virtualWrite(VPIN_INVERTLED, 1);
dht.begin();
}
BLYNK_READ(VPIN_TEMP)
{
// This command writes DHT11 Temperature to Virtual Pin (1)
sensors_event_t event;
dht.temperature().getEvent(&event);
if (!isnan(event.temperature)) {
Blynk.virtualWrite(VPIN_TEMP, event.temperature-1);
}
}
BLYNK_READ(VPIN_HUMIDITY)
{
// This command writes DHT11 Temperature to Virtual Pin (1)
sensors_event_t event;
dht.humidity().getEvent(&event);
if (!isnan(event.relative_humidity)) {
Blynk.virtualWrite(VPIN_HUMIDITY, event.relative_humidity);
}
}
BLYNK_READ(VPIN_UPTIME)
{
// This command writes ESP8266's uptime in seconds to Virtual Pin (5)
Blynk.virtualWrite(VPIN_UPTIME, millis() / 1000);
}
BLYNK_WRITE(VPIN_INVERTLED)
{
if (param.asInt() == 0)
{
digitalWrite(13, HIGH);
}
else
{
digitalWrite(13, LOW);
}
}
void loop()
{
Blynk.run();
}
Звучит здорово! А перепрошивка осуществляется без больших плясок с бубном?
Вот статья как подпаять гребенку, подключить датчик, как шить.
Blynk я прошиваю из arduino-среды по инструкции с офф.сайта.
Я без проблем прошиваюсь через arduino uno, так как переходник USB to TTL никак не куплю.
Blynk я прошиваю из arduino-среды по инструкции с офф.сайта.
Я без проблем прошиваюсь через arduino uno, так как переходник USB to TTL никак не куплю.
Брал себе чуть более дорогую (US $4.00) платку
Плюс в том, что можно добирать комплекующие и выстраивать «бутерброд». Вот магазинчик
Плюс в том, что можно добирать комплекующие и выстраивать «бутерброд». Вот магазинчик
Есть еще и такой вариант исполнения. В общем тут есть где разгуляться
Вопрос автору: Вы пробовали сделать сбор данных с датчиков на ESP8622 и последующе отправкой на собственный сайт (Joomla!) на стороннем хостинге(зная все айпи и имея средства отображения на самом сайте)?
Я только изучаю эту тему. Для начала хочется отправки на локальный сервер, то что на openwrt. Уверен, что если заработает локально, то и удаленно проблем не должно быть.
я делал отправку состояния на сервер
Я не автор но у меня ESP-12 показывает графики на олед экране, управляет вентилятором на 220 и отсылает данные на thingspeak.com
А вот оттуда можно данные на сайт вставлять с помощю ифрейма.
А вот оттуда можно данные на сайт вставлять с помощю ифрейма.
У меня сейчас тестируется ESP8266 c BME280 (температура, влажность, давление) + BH1750 (освещённость) + ADS1115 (напряжение на аккумуляторах). Всё это питается от двух аккумуляторов типа АА, которые заряжаются с помощью солнечной панели на 3,5В, через повышающий DC-DC на MT3608. Данные отправляются на ThingSpeak, которые можно посмотреть по этой ссылке.
ссылка что-то стёрлась: https://thingspeak.com/channels/53771#publicview
Солнечной панели хватает для зарядки акков на темное время суток? Устройство дружит с отрицательными температурами?
Хватает не только на тёмное время суток. Пробовал без солнечной панели — хватило почти на месяц работы (показания отправлялись каждые пять минут, два аккумулятора ENELOOP 1900 мА*ч включенных последовательно), т.е. запас получается очень хороший.
В солнечный день аккмуляторы очень хорошо заряжаются. Ещё уточню один момент — коробка сейчас стоит на окне и направлена на запад, т.е. солнце начинает засвечивать панель во второй половине дня.
С отрицательными температурами должно дружить, т.к. NiMH аккумуляторы нормально работают при отрицательной температуре.
В солнечный день аккмуляторы очень хорошо заряжаются. Ещё уточню один момент — коробка сейчас стоит на окне и направлена на запад, т.е. солнце начинает засвечивать панель во второй половине дня.
С отрицательными температурами должно дружить, т.к. NiMH аккумуляторы нормально работают при отрицательной температуре.
Я делал, прекрасно работает. А в чем там может быть проблема?
С broadlink такую штуку можно подружить? Я имею ввиду их приложение.
Поскольку делать самому и окружение и hard-часть — слишком затратно по времени.
Поскольку делать самому и окружение и hard-часть — слишком затратно по времени.
Sign up to leave a comment.
ESP8266 с чего начать или первый опыт