• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Решено Обмен данными arduino mega и ESP8266

mishgan

Member
Особо не пинайте. ESP8266 держу в первый раз.
Суть вот в чем. Сделал автоматику для пивоварни на основе arduino mega +TFT экрана. Сейчас загорелся желанием управлять этим прибором через компьютер. Скорей всего не управлять, производить мониторинг.
Т.е. надо взять и получить температуру из ардуины. Хочу поднять сервер на ESP8266 и из браузера посылать запросы, тем самым получать текущую температуру. Вчера прошил модуль прошивкой NodeMCU.
Понимаю что надо связать ардуину и модуль по tx-rx. А вот что дальше делать вообще не понимаю. Может есть какой пример, чтоб вникнут в суть процесса?
 

Vitaly

Member
как вариант:
Ардуина периодически выдает через Serial.println строку с параметрами произвольного формата, есп по получении данных строку парсит и обновляет переменные.
При запросе через веб отдает эти данные и можно еще проверять актуальность, т.е. как давно данные обновлялись.

Что-то подобное делал, но АТ прошивки не радовали стабильностью, nodemcu сильно ужимает по памяти, поэтому сделал на arduinoide для есп. Строку оформлял в json.
получилось датчики-ардуина-есп, а сейчас может и сразу бы без ардуины обошелся.
 

mishgan

Member
А как данные принимали ESP8266? Ардуина отправляет данные через
[HASHTAG]#include[/HASHTAG] <SoftwareSerial.h>
SoftwareSerial espSerial(10,11);
.....
espSerial.write("Данные");
А вот как эти данные принимать нигде не могу найти пример.
 

Vitaly

Member
на nodemcu не подскажу, уперся в память намного раньше)

с ардуиной на самой есп через тот же Serial
 

mishgan

Member
Мож кому пригодится. Нашел хорошее решение
Код:
wifi.setmode(wifi.STATION)
wifi.sta.config("ssid","key")
wifi.sta.autoconnect(1)   -- восстанавливаем соединение со станцией при потере связи

uart.setup(0,9600,8,0,1,0) -- коннектимся к ардуине
sv=net.createServer(net.TCP, 60) -- создаем сервер
global_c = nil
sv:listen(8266, function(c)      -- и слушаем на порту 8266 :)
     if global_c~=nil then       -- много клиентов мне не надо - я управляю либо с телефона, либо с компа
          global_c:close()
     end
     global_c=c
     c:on("receive",function(sck,pl)    uart.write(0,pl) end)     -- что пришло по TCP валим в UART
end)

uart.on("data",4, function(data)    -- Что ответила ардуина - шлем по TCP
     if global_c~=nil then
          global_c:send(data)
     end
end,0 )
 
Сверху Снизу