Разлика между версии на „ESP8266“

От VarnaLab
Направо към навигацията Направо към търсенето
 
(Не са показани 4 междинни версии от същия потребител)
Ред 1: Ред 1:
 
= ESP8266 =
 
= ESP8266 =
* [https://en.wikipedia.org/wiki/ESP8266 Официална wiki страница за контролера.]
 
* [https://github.com/VarnaLab/ESP8266 Официално Варналаб Github Repo]
 
  
 +
== Има промяна ==
  
= MicroPython =
+
* [https://wiki.varnalab.org/index.php?title=Arduino_%D0%B8_%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%B5%D1%80%D0%B8 Това е линка ]
[http://docs.micropython.org/en/v1.9.3/esp8266/esp8266/tutorial/intro.html Документация за инсталация на 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
 
 
 
 
 
 
 
== Достъп до уеб конзолата WebREPL ==
 
 
 
 
 
[http://docs.micropython.org/en/v1.9.3/esp8266/esp8266/tutorial/repl.html#webrepl-a-prompt-over-wifi Линкове за достъп до уеб клиента на конзолата и инсталация на локална конзола]
 
*Преди да се свържете с WebREPL, трябва да зададете парола и да я активирате чрез нормална серийна връзка.
 
 
 
    >>>import webrepl_setup
 
 
 
[http://micropython.org/webrepl  отваряне на конзолата]
 
 
 
 
 
* свързване на контролер към локалната мрежа
 
  >>>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 в уеб конзолата и се свържи
 
 
 
 
 
* Стъпки за създаване и допълване на библиотеки контролера:
 
[https://github.com/dhylands/python_lcd/tree/master/lcd Нужни библиотеки за работа с LCD модула] (нужни са само '''esp8266_i2c_lcd.py''' и '''lcd_api.py''')
 
 
 
* отвори уеб конзолата
 
* send a file
 
* send to device
 
 
 
----
 
 
 
== работа с файлове ==
 
[http://docs.micropython.org/en/v1.8.2/esp8266/esp8266/tutorial/filesystem.html 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()'
 
 
 
 
 
 
 
'''изпълняване на кода'''
 
 
 
[https://gist.github.com/killa1093/ed2b81e5c697fafde2c7e2b3aa04dafa кода за scroller модула]
 
След качването scroller модула:
 
  >> import scroller
 
  >> scroller.scroll('Текста който искаш да се изпише на дисплея')
 
 
 
'''Проверка на свободната флаш памет'''
 
 
 
[http://docs.micropython.org/en/latest/wipy/library/esp.html 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.
 
 
 
[https://github.com/cpopp/MicroTelnetServer офицяклен github ]
 
 
 
За да започнете с това, просто добавете следното към вашето boot.py
 
  >>>import utelnetserver
 
  >>>utelnetserver.start()
 
тестван  с клиент на telnet
 
  $ telnet 192.168.1.19
 
----
 
 
 
=== Ftp сървър ===
 
 
 
Mинимален FTP сървър достатъчно, за да получа списък на файлове.
 
 
 
[https://github.com/cpopp/MicroFTPServer офицяклен github]
 
 
 
Стартиране
 
    >>>import uftpserver
 
 
 
----
 
 
 
== Приложен хардуер ==
 
----
 
 
 
=== LCD DISPLAY 1602 BLUE + I2C ADAPTER ===
 
----
 
[[Файл:Lcd-display-1602-i2c-adapter.jpg]]
 
 
 
*Библиотеки за контролера:
 
[https://github.com/dhylands/python_lcd/tree/master/lcd Нужни библиотеки за работа с LCD модула] (нужни са само '''esp8266_i2c_lcd.py''' и '''lcd_api.py''')
 
https://gist.github.com/killa1093/ed2b81e5c697fafde2c7e2b3aa04dafa кода за scroller модула]
 
След качването scroller модула:
 
  >> import scroller
 
  >> scroller.scroll('Текста който искаш да се изпише на дисплея')
 
 
 
----
 
 
 
=== Прост уеб сървър за включване и изключване на LED ===
 
 
 
----
 
 
 
 
 
*Прост уеб сървър за включване и изключване на светодиодите с Micropython.
 
 
 
[https://github.com/gandipg/micropy_esp/blob/master/led.py вземи код led.py]
 
 
 
*по подразбиране са настроени gpio0 gpio2 може да се променят.
 
 
 
 
 
  #Setup PINS
 
  LED0 = machine.Pin(0, machine.Pin.OUT)
 
  LED2 = machine.Pin(2, machine.Pin.OUT)
 
 
*стартиране
 
  >>>import led
 
----
 

Текуща версия към 19:41, 3 април 2018

ESP8266

Има промяна