ESP8266/Programmer
Aus C3MAWiki
Weitere Optionen
ESP8266 Programmer
Mit diesem Tool können lua Dateien auf einen ESP gespielt werden.
Interface
- Seriell
- TCP
Beispiel
Beamer mit neuer Lokig bespielen
./programESP.sh 10.23.xx.xx beamer_init.lua init.lua
Paanik wir können nur noch über die Serielle Schnittstelle mit dem ESP reden:
sudo ./programESP.sh serial beamer_init.lua init.lua
Quellcode
#!/bin/bash
DEVICE=/dev/ttyUSB0
SLEEPTIME=0.2
TCPPORT=2323
function usage() {
  echo "$0 usage:"
  echo "$0 serial|ip fileOnHost.lua (fileOnESP.lua)"
  echo ""
  echo "The flash logic can be done via ethernet or serial"
  echo "The first filename is mandatory!"
  echo ""
  echo "The second filename is the filename on the LUA devic."
  echo ""
  echo "Example:"
  echo -e "$0 serial hello.txt\tSends the content of hello.txt to the ESP (directly as if you type it)"
  echo -e "$0 serial init_example.lua init.lua\tUpdates the init.lua on the ESP"
  echo "   (The init.lua file is executed each time, the ESP starts)"
  exit 1
}
case "$1" in
serial)
  IP=""
  if [ "$EUID" -ne 0 ]
    then echo "Please run as root"
    exit 1
  fi
  ;;
*)
  if [[ $1 =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]];then
    IP=$1
  else
    usage
  fi
esac
if [ ! -f $2 ]; then
 usage
fi
if [ $IP != "" ]; then
    echo "Using network: $IP "
    echo "Checking connection ..."
    ping -c 3 $IP >> /dev/null
    if [ $? -ne 0 ]; then
      echo "Cannot find ESP at $IP"
      exit 1
    fi
    DEVICE=/dev/tcp/$IP/$TCPPORT
fi
# The flashing logic
if [ "$3" == "" ]; then
  echo "Sending to shell..."
  cat $2  | while read a; do echo -e "$a\r" >> $DEVICE; echo -e "$a"; sleep $SLEEPTIME; done
else
  echo "Writing $3 on the ESP"
  echo "========================="
  echo "" >> $DEVICE; sleep $SLEEPTIME
  echo "file.open(\"$3\",\"w\")" >> $DEVICE; sleep $SLEEPTIME
  cat $2 | while read a; do echo "file.writeline([[${a}]])" >> $DEVICE; echo -e "\r" >> $DEVICE; echo "$a"; sleep $SLEEPTIME; done
  # Close the init file
  echo "file.close()" >> $DEVICE; sleep $SLEEPTIME
  echo "========================="
  echo "now login on ESP and call"
  echo "node.restart()"
fi 
