ESP8266 WiFi OTA Remote File Management (2 / 5 steg)
Steg 2: Kommunikation med ESP8266
ESP kör NodeMCU har ett antal sätt att kommunicera med omvärlden. TCP/UDP-klienten, TCP/UDP-servern, telnet och MQTT. Eftersom vi kommer att skicka enkla textsträngar till ESP, kan något av dessa alternativ användas.
MQTT skulle vara en bra lösning för detta projekt. Men MQTT har några ytterligare krav, kommer vi att använda NodeMCUs TCP Server.
En ESP blinkat med NodeMCU och konfigureras som en TCP-Server är kan skicka och ta emot data till och från en webbläsare. Detta ger oss möjlighet att skicka filer och kommandon till ESP och också att fråga ESP för viss information. För våra ändamål, när en förfrågan kan ESP berätta hur mycket minne som finns kvar och lista filerna i dess filsystem.
Skickar data till servern ESP TCP kan skickas via antal metoder. Några av de mer konventionella är "Få" och "POST". Båda innehåller massor av huvudinformation och andra information data till någon nytta för oss. FÅ protokollet är begränsad 256 tecken i de flesta konfigurationer. ~ 256 tecken skulle vara en liten .lua. Även om det kunde göras, skicka filer via flera blir skulle vara svårt och felbenägen. Dessa metoder är långsam och webbläsare kan vara besvärande.
PHP fsockopen kommandot är bästa sättet för detta projekt. Det är en en till en anslutning och mycket snabb. Vi skriver till uttaget precis som skriver till en fil. Och! den skickar bara data som skrivs till den. Ingen header info!
Det finns en gräns för antalet tecken skickas i en fsockopen sessionen. Detta styrs av olika TCP layer och de flesta anslutningar är begränsade till ~ 1460 tecken. Om filen lua sänder vi större att 1200 tecken (ASCII), våra PHP-fil kommer att stänga sessionen, öppna en annan och fortsätta att skicka nästa 1200 tecken i filen tills EOF nås. LUA filen på ESP kommer att antingen skriva eller lägga till i fil som den tar emot data.