сайт для палких паяльників

WiFi

Как сделать Web-интерфейс для ESP8266 под NodeMCU

WiFi модули на базе микроконтроллера ESP8266 имеют достаточно интересный функционал, включая возможность использовать WiFi. Это позволяет использовать их в различных домашних устройствах. Создание Web-интерфейса для таких устройств – наиболее привлекательная, но не всегда простая тема. В этой статье рассматриваются примеры создания web-интерфейса для ESP8266 под framework NodeMCU на языке LUA. В примерах от простого к сложному ознакомимся с преимуществами ESP8266 и научимся бороться с его недостатками. Главный недостаток ESP8266, особенно при построение web-интерфейса, это конечный объем оперативной памяти. Этого можно не заметить при создании простых приложений, но при решении более сложных задач Вы неизбежно столкнетесь с недостатком памяти. Надеюсь, эта статья поможет обойти подобные проблемы.

Во всех примерах использовался модуль ESP12E и фреймворк NodeMCU собранный с модулями: adc, bme280, cron, crypto, dht, file, gpio, http, i2c, mqtt, net, node, pwm, rtctime, sjson, sntp, spi, tmr, u8g, uart, websocket, wifi, tls.

Такое количество модулей не обязательно. Эта сборка использовалачь для примеров к другим статьям. Необходимые модули: file, net, sjson, websocket, wifi.

Скачать фреймворк NodeMCUможно здесь

Скачать примеры здесь.

Читати далі

Wi-Fi – UART переходник на ESP8266 Сделан на модуле ESP-12.

Заливаем Framework NodeMCU в модуль. Скачать можно здесь: https://github.com/avislab/NodeMCUExamples/tree/master/WeatherStation/firmware

Затем в файловую систему NodeMCU заливаем два файла:

init.lua:

print ( "Waiting ...")
tmr.register (0, 10000, tmr.ALARM_SINGLE, function (t) tmr.unregister (0); print ( "Starting ..."); dofile ( "wifiuart.lua") end)
tmr.start (0)

wifiuart.lua:

--Ports setting
TCP_PORT = 333
uart.setup(0, 9600, 8, uart.PARITY_NONE, uart.STOPBITS_1, 1)

--WiFi Settup
wifi.setmode(wifi.STATION)
local cfg={}
cfg.ssid="WiFi"
cfg.pwd="password"
cfg = nil

--WiFi AP Settup
--wifi.setmode(wifi.STATIONAP)
--cfg={}
--cfg.ssid="ESPWIFI"
--cfg.pwd="1234567890"
--wifi.ap.config(cfg)
--cfg = nil

collectgarbage()

-- Close old Server
if sv then
  sv:close()
end
--Create Server
sv=net.createServer(net.TCP)
connection=nil

function receiver(sck, data)    
  -- Print received data
  uart.write(0, data)
end

function disconnect(sck)
  connection=nil
end
 
if sv then
  sv:listen(TCP_PORT, function(conn)
    if connection == nil then
      conn:send("Hello!")
      conn:on("receive", receiver)
      conn:on("disconnection", disconnect)
      connection = conn
    else
      conn:send("Sorry just one connection allowed.\r\n\r\n")
      conn:close()
    end
  end)
end

-- UART
uart.on("data", "\r",
  function(data)
    connection:send(data.."\n")
end, 0)

Настройки Wi-Fi:

cfg.ssid=”WiFi”
cfg.pwd=”password”

IP выдает WiFi роутер.

Настройки Порта для подключения:

TCP_PORT = 333

Настройки UART порта:

uart.setup(0, 9600, 8, uart.PARITY_NONE, uart.STOPBITS_1, 1)

Очередное радикальное обновление моей метеостанции состоялось.

OLD_meteo

Раньше у меня работала метеостанция, которая была сделана на базе NETAlarm (я о ней так и не написал). Ее задача была довольно простой: снимать данные с датчиков атмосферного давления, влажности и температуры и отправлять на сайт. Эта метеостанция достаточно долго и исправно работала. И, когда встал вопрос о её дальнейшем развитии, выяснилось, что в микроконтроллере уже не хватает памяти. Еще одна, достаточно неприятная, особенность – метеостанция должна одновременно находиться в досягаемости питания (220В), компьютерной сети и проводов от датчиков, которые находятся на улице. Для того, чтобы дотянуть компьютерную сеть, приходилось использовать коммутатора. К тому же, на время обновления ПО, приходилось ее выключать на длительное время.

Читати далі

Wi-Fi Метео станция
(на русском языке)

Чергове радикальне оновлення моєї метеостанції відбулося.

OLD_meteo

Раніше в мене працювала метеостанція, яку я зробив на базі NETAlarm (я про неї так і не написав). Її задача була досить простою: знімати дані з датчиків атмосферного тиску, вологості і температури і відправляти на сайт. Ця метеостанція досить довго і справно працювала. Та, коли постало питання щодо її подальшого розвитку, з’ясувалося, що у мікроконтролері вже не вистачає пам’яті. Ще одна, досить прикра, особливість – метеостанція повинна одночасно знаходитись у досяжності живлення(220В), комп’ютерної мережі і дротів від датчиків, які знаходяться знадвору. Для того, щоб дотягнути мережу, доводилось використовувати комутатора. До того ж, на час оновлення програмного забезпечення, доводилося її вимикати на тривалий час.

Читати далі

Raspberry Pi – Wi-Fi

Wi-Fi NANO Card для Raspberry Pi

Приобрел себе Wireless USB Network NANO Card. Покупал специально для Raspberry Pi. Кабель меня окончательно утомил и я принял решение оснастить свою малину Wi-Fi. Настройка оказалась очень простой. Включаем NANO Card в свободный порт USB, включаем питание Raspberry Pi. После загрузки смотрим увидел ли Raspberry Pi Wi-Fi NANO карту.

Читати далі

Raspberry Pi – WiFi

Raspberry Pi – Wi-Fi
(на русском языке)

WiFi NANO Card для Raspberry Pi

Придбав собі Wireless USB Network NANO Card. Купував спеціально для Raspberry Pi. Кабель мене остаточно втомив і я прийняв рішення оснастити свою малину WiFi. Налаштування виявилось дуже простим. Включаємо NANO Card в вільний порт USB, включаємо живлення Raspberry Pi. Після завантаження дивимось чи видно WiFi NANO карту.

Читати далі

Translate
Архіви

© 2011-2018 Андрій Корягін, Кременчук - Київ, Україна