ESP8266

От VarnaLab
Направо към навигацията Направо към търсенето

ESP8266 - MicroPython


MicroPython

Документация за инсталация на MicroPython на платката

  • Промени порт-а в зависимост къде е свързан микроконтролера
$ cd ~/micropython/micropython1.9.3
$ esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect -fm dio 0 esp8266-20171101-v1.9.3.bin
$ esptool.py --port /dev/ttyUSB0 --baud 115200 erase_flash
  • Запазване на резервно копие(bascap).
$ esptool.py --port /dev/ttyUSB0 --baud 115200 read_flash 0x00000 0x400000 image4M.bin
  • възстанови резервно копие.
$ esptool.py --port /dev/ttyUSB0 --baud 460800 erase_flash --flash_size=detect -fm dio 0 image4M.bin


Достъп до уеб конзолата WebREPL

Линкове за достъп до уеб клиента на конзолата и инсталация на локална конзола

  • Преди да се свържете с WebREPL, трябва да зададете парола и да я активирате чрез нормална серийна връзка.
   >>>import webrepl_setup

отваряне на конзолата


  • свързване на контролер към локалната мрежа
 >>>import network
 >>>sta_if = network.WLAN(network.STA_IF)
 >>>sta_if.active(True)
 >>>sta_if.connect('Име на мрежа', 'парола')

За да се провери IP-то на мрежата към която трябва да се свържи конзолата:

 >>>import network
 >>>sta_if = network.WLAN(network.STA_IF)
 >>>sta_if.ifconfig()

След това добави IP в уеб конзолата и се свържи


  • Стъпки за създаване и допълване на библиотеки контролера:

Нужни библиотеки за работа с LCD модула (нужни са само esp8266_i2c_lcd.py и lcd_api.py)

  • отвори уеб конзолата
  • send a file
  • send to device

работа с файлове

docs.micropython


проверка и дали файла е качен

 >>> import os
 >>> os.listdir()
 ['boot.py', 'webrepl_cfg.py', 'test.py'] 

изтриване на файлове

 >>> os.remove('test.py')

редактиране на файлове

  • създаване
  >>> f = open('boot.py', 'w')
  >>> f.write('import gc\n') #добавя се знак за нов ред
  9
  >>> f.close()
  • вписване (допълване)
  >>> f = open('boot.py', 'a') 
  >>> f.write('gc.collect()\n') #добавя се знак за нов ред
  12
  >>> f.close()
  • проверка
  >>> f = open('boot.py') 
  >>> f.read()
  'import gc\ngc.collec()'


изпълняване на кода

кода за scroller модула След качването scroller модула:

 >> import scroller
 >> scroller.scroll('Текста който искаш да се изпише на дисплея')

Проверка на свободната флаш памет

esp - функции, свързани с ESP8266

 >>> import esp
 >>> esp.flash_size()

os.statvfs('cd') Извършете statvfs()системно повикване по даден път. Върнатата стойност е обект чиито качества описва файловата система на даден път, и съответства на членовете на statvfs структурата, а именно: f_bsize, f_frsize, f_blocks, f_bfree, f_bavail, f_files, f_ffree, f_favail, f_flag, f_namemax.

пример:

  >>> import os
  >>> (f_bsize, f_frsize, f_blocks, f_bfree, f_bavail, f_files, f_ffree, f_favail, f_flag, f_namemax)=os.statvfs('cd')                          
  >>> f_bfree                                                                                                                                   
  848

Приложен софтуер


MQTT


Telnet сървър

Внедряване на telnet сървър, който ще закачи клиентите на telnet до REPL.

офицяклен github

За да започнете с това, просто добавете следното към вашето boot.py

 >>>import utelnetserver
 >>>utelnetserver.start()

тестван с клиент на telnet

 $ telnet 192.168.1.19

Ftp сървър

Mинимален FTP сървър достатъчно, за да получа списък на файлове.

офицяклен github

Стартиране

   >>>import uftpserver

Приложен хардуер


LCD DISPLAY 1602 BLUE + I2C ADAPTER


Lcd-display-1602-i2c-adapter.jpg

  • Библиотеки за контролера:

Нужни библиотеки за работа с LCD модула (нужни са само esp8266_i2c_lcd.py и lcd_api.py) https://gist.github.com/killa1093/ed2b81e5c697fafde2c7e2b3aa04dafa кода за scroller модула] След качването scroller модула:

 >> import scroller
 >> scroller.scroll('Текста който искаш да се изпише на дисплея')

Прост уеб сървър за включване и изключване на LED



  • Прост уеб сървър за включване и изключване на светодиодите с Micropython.

вземи код led.py

  • по подразбиране са настроени gpio0 gpio2 може да се променят.


  #Setup PINS
  LED0 = machine.Pin(0, machine.Pin.OUT)
  LED2 = machine.Pin(2, machine.Pin.OUT)

  • стартиране
  >>>import led