esp8266物聯網開發記錄

用esp8266做的物聯網開發,涉及到固件燒寫,固件擦除,代碼編寫等方面,做一一記錄。

1. 固件燒寫

首先,下載固件燒寫工具:https://www.espressif.com/sites/default/files/tools/flash_download_tools_v3.6.3.rar,具體燒寫包我會在後面附加。

然後,下載micropython固件包:http://www.micropython.org/download/esp8266/,一般選擇512k的包即可。

打開固件燒寫工具,點擊“esp8266 download tools”,在打開的界面中設置好參數:

1586687142(1)

在燒寫之前,先點擊ERASE按鈕進行擦除操作,保證燒寫的固件不受干擾。

1586687451(1)

然後點擊START進行燒寫操作。

1586687550(1)

進度表跑完,提示FINISH的時候,代表燒寫完畢併成功。

 

2. 開發環境

開發環境使用ESPlorer,網上有很多,可以百度下,具體界面如下:

1586687667(1)

左半區爲代碼編碼區,右半區爲和硬件通訊調試區。

 

3. esp8266聯網

在進行開發之前,一般需要進行芯片聯網設置的,具體操作如下:

首先,準備聯網代碼和熱點,其實用手機熱點就行:

def do_connect():
    import network
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    if not wlan.isconnected():
        print('connecting to network...')
        wlan.connect('cxsr', '12345')
        while not wlan.isconnected():
            pass
    import webrepl
    webrepl.start()
    print('network config:', wlan.ifconfig())

可以看出,我手機熱點爲cxsr,密碼爲12345

然後,在ESPlorer中,新建一個py文件,保存爲networking.py,將上述代碼拷貝進去,同時,通過com口進行連接,如果連接開發板成功,會提示Type help() for more information:

1586687942(1)

連接成功後,我們首先點擊左下角的Send to esp按鈕,將腳本發往緩衝區,然後在右下角命令行輸入 do_connect()命令,然後點擊send按鈕,進行執行。之後可以看到輸出如下:

1586688135(1)

注意文中有webrepl is not configured, run import webrepl_setup. 這裏說明一下,webrepl可以方便我們將腳本上傳到開發板中,所以這個命令要開啓,我們就按照其提示就行,在命令行中輸入import webrepl_setup,然後點擊執行,輸出如下:

1586688272(1)

這裏我們按照他的要求,在命令行輸入E,然後點擊send按鈕:

1586688319(1)

之後讓我們輸入密碼,這裏我們在命令行中輸入12345,並確認:

1586688399(1)

最後問我們是否reboot,輸入y併發送即可。然後開發板會執行reboot操作。

這時候我們將networking.py的代碼點擊左下角的send to esp,然後在右下角執行 do_connect()並send,可以看到webrepl成功打開:

1586688534(1)

https://github.com/micropython/webrepl下載webrepl的壓縮包,解壓,運行其中的webrepl.html,可以打開界面,然後輸入ws://192.168.43.2:8266,確認密碼12345後即可成功連接。

1586688629(1)

最後點擊想要上傳的文件,然後上傳即可:

1586688704(1)

最後從ESPlorer中,我們就可以看到上傳的文件了:

1586688725(1)

最後我們可以用ssd1306驅動來一個程序點亮oled試試:

from machine import Pin, I2C
i2c = I2C(scl=Pin(5), sda=Pin(4))

from ssd1306 import SSD1306_I2C
oled = SSD1306_I2C(128, 64, i2c)

oled.fill(1)
oled.show()
oled.fill(0)
oled.show()

oled.pixel(0, 0, 1)
oled.show()
oled.pixel(127, 63, 1)
oled.show()

oled.text('Hello', 0, 0)
oled.text('World', 0, 10)
oled.show()

oled.invert(True)
oled.invert(False)

1586688999(1)

4. 相關下載

https://files.cnblogs.com/files/scy251147/flash_download_tools_v3.6.3.rar

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章