Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Можно ли отключить красный светодиод на модуле?

Тема в разделе "Общие вопросы по esp8266", создана пользователем alexhi, 13 янв 2015.

  1. alexhi

    alexhi Читатель

    Сообщения:
    77
    Симпатии:
    15
    Здравствуйте!
    Подскажите кто знает по таким вопросам:
    Есть модуль версии 01 с прошивкой с LUA
    1.Можно ли программно из скрипта отключить красный светодиод на модуле(хочу запитать модуль от аккм. отпаивать не "кошерно") Если можно то как.
    2.Можно ли в программе при инициализации в Init.lua писать:
    wifi.ap.config({ssid="ALEX",pwd="1802345RTSGH"})
    не приведет ли это к снижению ресурса FLASH ( проверяется ли перед записью если записываемое совпадает с имеющимся во FLASH ,то запись не происходит) Или просто в тупую записывается во FLASH. Спасибо.
     
  2. CHERTS

    CHERTS Moderator Команда форума

    Сообщения:
    483
    Симпатии:
    108
    1. Програмно нет, только выпаивать или резать дорожку.
    2. Можно, но зачем делать это каждый раз при старте? Никаких проверок на совпадение с имеющимися данными в прошивке nodemcu нет. Правильну будет делать так, при первом старте писать во flash какой-либо флаг, что конфигурация установлена, потом при следующей загрузке (перезагрузке) проверяем этот флаг, если он есть, то wifi.ap.config не делаем, если флага нет, то делаем wifi.ap.config. Ну а вообще товарищам nodemcu нужно реализовать функцию чтения параметров wifi ap, для того чтобы можно было сверять данные.
     
  3. alexhi

    alexhi Читатель

    Сообщения:
    77
    Симпатии:
    15
    Спасибо,жаль что нет программного доступа к отключению.Придется резать и на других модулях :)
    По второму сейчас примерно так и делаю,просто хотелось убрать вариант с записью/чтением флага из файла,памяти и так мало. Да, функция чтения параметров wifi конечно не помешала бы. Сделал термометр который работает от двух батареек AAA раз в 35 мин шлет температуру на email, вот и озаботился светодиодом. Я его сразу отрезал,но думал как то можно отключить. У меня в режиме sleep модуль потребляет порядка 10мкА. Работает с 29.12.2014
     
  4. CHERTS

    CHERTS Moderator Команда форума

    Сообщения:
    483
    Симпатии:
    108
    Какой датчик используете? В deepsleep режиме вроде должен потреблять еще меньше. Нет желания выложить код на github.com для общественности?
     
  5. alexhi

    alexhi Читатель

    Сообщения:
    77
    Симпатии:
    15
    DS18b20. Насчет потребления наверное возможно сделать и меньше,у меня там еще подтягивающие резисторы висят(макетка).Наверно резисторы можно выкинуть,оставив только на датчике. Сюда и на github.com обязательно выложу на неделе,немного "причешу", а то сами знаете чуть что, "ссаными" тряпками исхлещут в момент :). Там вообщем то все стандартно проснулся измерил, отослал на бесплатный сайт c (php) Там мой php скрипт принимает ,добавляет еще температуру в городе-герое Клину :) и отсылает мне на почту.Все. Сначала в качестве внешнего сервера попробывал narodmon.ru, и thingspeak.com, но показалось не гибко.Своим скриптом можно сделать больше.
    Вот как письма смотрятся:
    sensor@sensor.com
    11:24 (0 мин. назад)
    [​IMG]
    [​IMG]
    [​IMG]
    кому: мне
    Температура трубы = 14C В Клину -1..1C В Махмутларе =6..8C 14.01.15 10:24:56
    sensor@sensor.com
    11:59 (0 мин. назад)
    [​IMG]
    [​IMG]
    [​IMG]
    кому: мне
    Температура трубы = 14C В Клину -1..1C В Махмутларе =6..8C 14.01.15 10:59:23

    Делал по простой причине в квартире в Клину бываю не часто,расхода воды практически нет и было ее подмерзание(труба близко к стене).Надо следить, ну сделать со временем :). Пока так. Так что к делу.
    PS. На модуле надо не забыть чтобы работал deepsleep проводком соединить reset и XPD_DCDC, она с угла микросхемы можно припаяться. И надо перед уходом в sleep ногу датчика на вход перевести на вход
    gpio.mode(pin, gpio.INPUT) node.dsleep(COUNTSEND) чтобы потребление уменьшить. В планах есть добавить терморегулятор с регулируемым порогом и программу по Андроид сделать для отображения и установок. Отсылку делать если только есть снижение до порога.Но сейчас раз в полчаса удобнее четко видно как сработало да и ресурс батареи заодно посмотрю.Сейчас ищу батарейку 3 вольтовую поменьше,чтобы одна была.За вашу сборку компилятора спасибо,все завелось.Хочу немного подрихтовать под себя,выкинуть всякие ADC,I2C.Оставить только uLan и так еще добавить по мелочи.Все что нужно больше, буду решать внешним STM32F0 за 0,5$ так удобнее.Модуль только для связи по WIFI. Хочу для этого "прозрачный мост " UART<-->TCP/UDP сделать.
     
  6. Andy Korg

    Andy Korg Moderator Команда форума

    Сообщения:
    414
    Симпатии:
    75
    вроде же есть в АТ прошивке прозрачный режим, может его использовать.
     
  7. alexhi

    alexhi Читатель

    Сообщения:
    77
    Симпатии:
    15
    Я пробывал его, но там есть такой нюанс. Многие программы которые написаны под RS232 не работают через него нормально,так как есть большие задержки при ответе.И они вываливаются по тайм ауту :( Если учитывать это то будет работать , но надо сделать обще. То есть со стороны RS232 (узкое место) надо сделать отсылку,по переполнению буфера,тайм ауту,количеству байтов в буфере и т.д. По моему pvvx сейчас делает примерно это. И еще одно.Обычно приходится работать через "прокладки" типа tcp0com ,HW и тд. создающие "виртуальный" COM порт которые вносят свои задержки.Короче надо думать :) Есть еще такой проект :
    https://github.com/beckdac/ESP8266-transparent-bridge
    Работает и идея хорошая настройки через telnet,но у него такая хрень. Если я из RS пихаю например HELLO то приходит H задержка и дальше ELLO. Из за этого тоже не пашет. Может "старшие" товарищи посмотрят из за чего.Автор пропал. :)Я всю "глубину глубин" не совсем понимаю. Но на мой взгляд действительно транспарентный мост "UART<-->TCP/UDP" крайне актуальная и полезная вешь.
     
    Последнее редактирование: 14 янв 2015
  8. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.091
    Симпатии:
    1.303
    Я немного не тем пока озабочен. Минимальное потребление WEB серверу не требуется. Чтобы достичь минимума, надо сначала сделать скоростную передачу. Т.к. минимум складывается из потребления в sleep + потребления на байт передачи информации. Если протокол передачи (время соединения) плохой, то потребление растет. В момент просыпания можно хоть 1A жрать - главное чтобы за этот пик Ампер модуль передал как можно больше информации и отключился.
    Надо оптимизировать алгоритм соединения и исключить все задержки, связанные с передачай - ожиданием подтверждений... Дома на стенде - это просто, а в реальном инет, при удаленном сервере - тут задержки большие (до 5 секунд) и модуль будет жрать, ожидая подтверждений доставки каждого пакета TCP... Плюс время согласования со внешней AP (WiFi)... Так что тема у вас долгая, т.к. алго много. :)
     
    Последнее редактирование: 14 янв 2015
  9. CHERTS

    CHERTS Moderator Команда форума

    Сообщения:
    483
    Симпатии:
    108
    Вот поэтому моя позиция в том, чтобы модуль ESP отправлял данные на сервер в локальной сети (сервер может быть хоть на чем, вплоть до рассбери, лишь бы он к розетке 220 подключался), а уже этот сервер отправлял бы данные куда нужно и как нужно или просто хранил и предоставлял какое-то удобное api доступа к данным, по тому же протоколу http.
     
    Victor и alexhi нравится это.
  10. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.091
    Симпатии:
    1.303
    Да решаемые эти все проблеммы. При оптимизации просыпания/засыпания можно поддерживать постоянный контакт с внешней AP. Это не так и сложно. Если этот режим настроен, то и просыпание с согласованием идет в нем. После соединения с AP уже далее смотрим какая задержка до сервера и данные отсылаем не как в WEB сервере (там специфика другая), а пачкой пакетов на всю возможную память, переходим в низкопотребляющий режим ожидания подтверждения уже всей пачки (тут мы только принимаем и передатчик не жрет) и дождавшись - передаем далее. Но далее обычно не бывает, т.к. таким путем обычно мы можем передать за 65килобайт за раз (зависит исключительно от размера TCP/HTTP окна сервера (размера его TCP стека) и пропускной способности внешней сети). У експлореров в win-де окно обычно за 128кило :) У текущей конфигурации Lwip на ESP8266 - около 5800 байт :) Но так, как передаваемый пакет известен, то кешировать его в памяти не требуется и всегда можно отдать кусок, который не дошол и сервер перезапросил. В итоге надо писать свой TCP/IP блок, а не пользоваться Lwip.
    Но тут, в данной теме, блок всего в пару байт и вообще ничего не требуется. Т.е. надо выкинуть всю SDK и её либы - они не нужны для данного дела, передачи пару байт в час с одного датчика. Нужно сформировать один пакет UDP и иметь фильтр приема ответа на прием однотипного подтверждающего пакета UDP. Можно и без потверждения - пять раз проснуться и передать пакет UDP с пару байтами от датчика (т.к. ошибку связи модуль всё равно не разрулит). :) В итоге задача выливается в то, как отрезать SDK. Парольную защиту и все другие шифрующие процедуры и использовать OPEN AP. Всё равно с неё нечего брать - в ней роутить толко те пакеты UDP от ESP8266... На сегодня это можно сделать, заткнув все ненужные вызовы процедур в прошивке процедурами return, оставив только вроде libmain.a и libnet80211.a :)
     
    Последнее редактирование: 14 янв 2015
  11. alexhi

    alexhi Читатель

    Сообщения:
    77
    Симпатии:
    15
    Понятно. Успехов. Пока для своей задачи напиcал на Lua вот такой редиректор UDP<-->COM.
    Все что приходит на порт 7777 модуля по сети (UDP) передается в UART,все что приходит в UART передается устройству сделавшему запрос. Потестировал под Андроид и под PC.
    Код (Text):
    1.  
    2. --!!!!nodemcu_512k_20150106
    3. PORT=7777 pin=3
    4. gpio.mode(pin, gpio.INPUT)
    5. tmr.alarm(1,5000, 1, function()
    6. if wifi.ap.getip()~=nil  then
    7. if gpio.read(pin)==1 then
    8. tmr.stop(1) print("WIFI_UDP_RS232 V1.1 06.01.2015")
    9. else
    10. tmr.stop(1) print("Telnet V1.1") dofile("telnet.lua")
    11. end end end)
    12. uart.setup( 0,9600, 8, 0, 1, 0 )
    13. srv=net.createServer(net.UDP)
    14. srv:eek:n("receive", function(srv, pl) tmr.wdclr() uart.write(0,pl) end)
    15. srv:listen(PORT) uart.on("data",0,function(data)srv:send(data)end, 0)
    16.  
    По старту проверяю GPIO0, и если в течении 5 сек ее закоротить, то выходим в telnet.(до подачи питания коротить ее нельзя!!!) Лучше использовать Putty,а не виндовый телнет клиент.Тут можно сделать настройки,удалить прогу и т.д В качестве UDP клиента пользую бесплатную Hercules SETUP. Под Андроид свои проги(давал в разделе Умный дом)
    Внимание! При запуске программы она переходит в режим моста и не отвечает на Lua команды, не пугайтесь так должно быть. Если надо ее удалить,то либо при старте file.remove("init.lua") или из телнет.

    Вот код телнет сервера он стандартный из примеров:
    Код (Text):
    1.  
    2. s=net.createServer(net.TCP,1000)
    3. s:listen(23,function(c)
    4. function s_output(str)
    5. if(c~=nil)
    6. then c:send(str)
    7. end
    8. end
    9. node.output(s_output, 0)
    10. c:eek:n("receive",function(c,l)
    11. node.input(l)
    12. end)
    13. c:eek:n("disconnection",function(c)
    14. node.output(nil)
    15. end)
    16. print("Telnet V1.1")
    17. end)
    18.  
    Кому интересно пробуйте.
    PS. Еще похоже при записи файлов во Flash,не убираются лидирующие пробелы и размер файла становится больше.(может показалось) Поэтому для экономии места :) во Flash лучше писать без отступов.Проверьте кому не лень плиз.Если так, то просьба если можно к Victor (ESPLoader) добавить чекбокс убрать лидирующие пробелы в записываемый файл. И быстрее запись будет и место во Flash сохраним. Все равно исходники скрипта с форматированием остаются , а вычитывание файла из флеш довольно редкая операция (зачем?)

    Не понял как код вставить :( </code> работает ?
     
    Последнее редактирование: 14 янв 2015
  12. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.091
    Симпатии:
    1.303
    alexhi - вы на нас внимание не обращайте :) у нас другие задачи. Мне например надо опрашивать более 10 датчиков в одном мобильном устройстве и передавать с модуля при наличии связи, а не когда вздумается и чтобы питалось "святым духом" (можно к примеру от солнечной батареи)... Т.е. lua там никак.
     
    Последнее редактирование: 14 янв 2015
    alexhi нравится это.
  13. alexhi

    alexhi Читатель

    Сообщения:
    77
    Симпатии:
    15
    Спасибо.Ступил :)
     
  14. alexhi

    alexhi Читатель

    Сообщения:
    77
    Симпатии:
    15
    Да я примерно так тоже думаю. В качестве сервера возьму 7" планшет на Андроид ( они сейчас недорогие) на нем напишу прогу которая слушает датчики и отображает актуальную информацию.При критических ситуациях (пролив воды,дым и т.д отсылает письма и " верещит голосом") Я примерно такое под Андроид делал на RFM12B (433Mhz),тут еще удобнее не надо мостов "433Mhz" <-->Wifi.
    [​IMG]

    Как то так. Конечно над батарейным питанием или хотя бы с "буфером" с батареей надо думать. Хотя некоторые вещи и так достаточно очевидны и должны работать. Например логика работы датчика пролива. К датчику подключена батарея,в цепи питания ставим полевик. (цепь питания разомкнута) Его затвор и исток контакты. Если между ними попала вода включается модуль отсылает несколько команд "ПРОЛИВ" и падает в слип и это повторяется раз в 30 сек. Батареек должно хватить надолго по идее.(Если хозяин не идиот :) При этом планшет говорит голосом пролив и отсылает письмо. Также можно подать команду на закрытие эл. шарового крана подачи воды.
     
  15. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.091
    Симпатии:
    1.303
    А Андроид зачем? Со всеми описанными задачами модуль сам справится. :)
    Планшет нужен только в качестве экрана настройки.
     
  16. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.091
    Симпатии:
    1.303
    Мост "UART<-->TCP/UDP" давно работает в библиотеке WEB сервера. Там есть мелочь, связанная с большими скоростями (более 3Mbaud).
    Большинство TCP терминалов, при вводе в них текстового буфера, посылают первый пакет TCP с одним символом, а далее пакеты с пачками... :)
    Для посылки непрерывного потока из TCP терминала используйте команду передачи файла.
     
  17. alexhi

    alexhi Читатель

    Сообщения:
    77
    Симпатии:
    15
    Я наверно что то пропустил, модуль уже может воспроизводить звуковые сообщения? (Шимом наверное можно что то скобянить ,но хз)Я говорю о том, что например если модуль является датчиком протечки воды то хотелось бы мне сидящему где то это сообщили приятным женским голосом :) Из планшета или моего смартфона (все алармы должны в локалке быть броадкаст) А не просто воем сирены (как в стандартных датчиках протечки воды из Леруа Мерлен) Но я не настаиваю,как говорится каждый извращается как может :)
     
  18. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.091
    Симпатии:
    1.303
    Ну дык с Lua вы никогда не дождетесь "срабатывания датчика" и "приятным женским голосом". Lua использует espconn, а она зависучая. Это наверно не исправят никогда. И я не настаиваю - "каждый извращается как может" :)
    Когда портировщики Lua напишут, что избавились от espconn, то тогда сможете убрать сообщение из планшета-андроида, приятным женским голосом, "вставай - модуль опять повис и не отвечает".
     
    Последнее редактирование: 14 янв 2015
  19. alexhi

    alexhi Читатель

    Сообщения:
    77
    Симпатии:
    15
    :) Понятно, что использовать модуль в управлении ядерным реактором было бы верхом неблагоразумия,но для решения многих задач даже в нынешнем виде он вполне "покатит" У меня например он уже месяц пашет от батарейки присылая сообщение о температуре на почту каждые полчаса :) Хотя написано на том же Lua за десять минут левой ногой. И даже если он пропустит мне сообщение я не очень на него обижусь. Насчет Lua соглашусь, после C он немного непривычен, хотя есть и полезные фичи. Тут как и везде как говорил наш барабанщик "не имей Амати, а умей играти". Наговнокодить , по большому счету можно на чем угодно,было бы желание :) Сейчас я два своих проекта перевел на модуль, и отошел от самой больной темы изготовления красивой морды прибора,заменив ее приложением для смартфона. Так что не все так трагично.
    Те же немцы пишут для своих пром.контроллеров на "птичьем" языке STEP и ничего.Все работает как надо.Потому что для производства так удобнее.
    Думаю китайцы делают все правильно, они захватили рынок этим модулем,а уж имея такое бабло думаю найдут и программеров чтобы допилить.Китайцы работают с "колес". А мы, ругая китайцев (иногда заслуженно :) не смогли создать даже своего процессора или смартфона,кругом импорт. Сплошной дер и треп. Все стараются быть творцами, а делать некому. Наша беда по моему в том, что мы всегда стараемся создать свои "нетленки" забывая о том, что завтра они могут быть просто никому не нужны. Ну это так лирика , пока перерыв в работе :)
     
  20. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.091
    Симпатии:
    1.303
    Не то сравниваете - работа и производство - это одно, а хобби - это другое. Lua слишком примитивна и не интересна. Датчик, передающий и накапливающий 16 аналоговых показаний (с подписями и пересчетами, калибровками и прочим) с усреднением в пол часа (минимальная дискретность для сохранения) по тысчам точек и собственным циклическим буфером для хранения накопленных показаний за последний год, выводом всего этого в графиках со своего WEB HTTP с разными заданными усредняющими фильтрами, да прочее журналирование и т.д. уже десяток лет как работает у меня и его цена на сегодня практически близка к ESP8266 с аналогичными пичендалами. Жрет только меньше и всё. :) Один MCU 16 бит + flash 2Mb. Вот вам и лирика.
    И главное - на его создание ушло меньше времени, чем уже вожусь с ES8266.
     
    Последнее редактирование: 25 янв 2015

Поделиться этой страницей