Orodha ya maudhui:

Kuanza na MicroPython kwenye ESP8266: Hatua 10 (na Picha)
Kuanza na MicroPython kwenye ESP8266: Hatua 10 (na Picha)

Video: Kuanza na MicroPython kwenye ESP8266: Hatua 10 (na Picha)

Video: Kuanza na MicroPython kwenye ESP8266: Hatua 10 (na Picha)
Video: Start Using Wemos D1 Mini NodeMCU WiFi ESP8266 module with Arduino 2024, Novemba
Anonim
Kuanza na MicroPython kwenye ESP8266
Kuanza na MicroPython kwenye ESP8266

Je! Unataka njia tofauti ya kupanga bodi zilizo na ESP8266 badala ya njia ya kawaida ya kutumia Arduino IDE pamoja na lugha ya programu ya C / C ++?

Katika mafunzo haya tutajifunza nani wa kusanidi na kudhibiti bodi ya ESP8266 kwa kutumia MicroPython.

JENGA MUDA: UGUMU WA DAKIKA 60: KUPIMA: Rahisi

Hatua ya 1: MicroPython ni nini?

MicorPython ni moja wapo ya lugha nyingi za programu ambazo tunaweza kutumia kupanga moduli ya ESP8266. Ni toleo konda na la haraka la lugha ya programu ya Python 3 na ina faida kadhaa juu ya lugha za programu za jadi kama vile C na C ++.

MicroPython imeundwa kuendana na chatu ya kawaida iwezekanavyo. Inayo mkusanyaji kamili wa Python na wakati wa kukimbia, na hutoa mwongozo wa maingiliano unaojulikana kama REPL (Read-Eval-Print Loop).

MicorPython imeundwa kusaidia aina kadhaa tofauti za wadhibiti-ndogo. Lakini kwa mafunzo haya nitafanya kazi na mfano mmoja tu: bodi ya msingi ya ESP8266 (NodeMCU). Kumbuka kuwa kuna bodi kadhaa tofauti ambazo unaweza kununua na chip sawa.

Usomaji na Rasilimali:

MicroPython

NodeMCU

Hatua ya 2: Mahitaji

Mahitaji
Mahitaji
Mahitaji
Mahitaji
Mahitaji
Mahitaji
Mahitaji
Mahitaji

Ili uweze kufuata mafunzo haya unahitaji tu kuwa na uzoefu wa msingi wa kuweka coding na Python. Huna haja ya kuwa na ujuzi wowote wa hapo awali wa watawala wadogo, umeme, au hata MicroPython.

Utahitaji pia kompyuta ya Windows, Mac au Linux na bandari ya bure ya USB, kwani utaunganisha microcontroller kwenye kompyuta yako ili kuipanga.

Sehemu Zinazohitajika:

1 x NodeMCU (au bodi nyingine ya msingi ya ESP8266)

1 x Nyekundu 5mm LED

1 x 220Ω 1 / 4W Mpingaji

1 x 10KΩ Potentiometer ya Mzunguko

1 x Bodi ya mkate

1 x USB kwa kebo ya MicroUSB

Waya za Jumper.

Hatua ya 3: Kwa nini bodi ya msingi ya ESP8266?

Kwa nini bodi ya msingi ya ESP8266?
Kwa nini bodi ya msingi ya ESP8266?

Njia moja unayoweza kupata zaidi kutoka kwa ESP8266 yako ni kwa kutumia MicroPython. Pia, moduli ya ESP8266 ni moja wapo ya majukwaa bora ambayo unaweza kujifunza jinsi ya kutumia MicroPython. Hii ni kwa sababu ESP8266 hutoa kazi rahisi za kudhibiti pini ya GPIO na utendaji wa waya, hukuruhusu kujaribu mambo yote ya lugha ya programu ya MicroPython.

Chip ya ESP8266 ni maarufu katika tasnia ya maendeleo ya chanzo wazi. Kuna bodi nyingi za maendeleo kutoka kwa wazalishaji tofauti wanaotumia chip ya ESP8266. MicroPython imeundwa kutoa bandari ya generic ambayo inaweza kukimbia kwenye bodi nyingi, na mapungufu machache iwezekanavyo. Bandari hiyo inategemea bodi ya Manyoya ya Adafruit HUZZAH Unapotumia bodi zingine za ESP8266, hakikisha unakagua hesabu na data zao ili uweze kutambua tofauti kati yao na bodi ya Manyoya ya Adafruit HUZZAH. Kwa njia hiyo, unaweza kuchukua tofauti katika msimbo wako.

Usomaji na Rasilimali:

ESP8266

Manyoya ya Adafruit HUZZAH

Hatua ya 4: Kuweka Kompyuta yako

Kuweka Kompyuta yako
Kuweka Kompyuta yako
Kuweka Kompyuta yako
Kuweka Kompyuta yako
Kuweka Kompyuta yako
Kuweka Kompyuta yako
Kuweka Kompyuta yako
Kuweka Kompyuta yako

Kuna mambo kadhaa ambayo unapaswa kusanidi kabla ya kutumia MicroPython kupanga bodi yako ya ESP8266. Tutakuwa tukipitia mchakato wa usanidi katika hatua hii. Kwa njia hii utajua jinsi ya kusanidi bodi ya ESP8266 itumiwe na MicroPython.

Kujiandaa

Wote unahitaji kutoka hatua hii hadi hatua ya 6 ni ESP8266 yako na kebo ya USB. Unganisha bodi yako ya ESP8266 kwenye kompyuta yako.

Jinsi ya kufanya hivyo…

STEP1: Sakinisha madereva ya kifaa

Ikiwa una kompyuta ya Linux, basi hauitaji kusakinisha madereva yoyote ya kifaa kwa madereva ili microcontroller itambulike. Lakini ikiwa una Mac au mashine ya Windows, dereva anahitajika kuruhusu kompyuta itambue mdhibiti mdogo kama kifaa cha serial.

www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers.

STEP2: Sakinisha Python

Zana ambazo utatumia kuwasiliana na ESP8266 zimeandikwa katika Python, kwa hivyo unahitaji kufunga Python kwenye kompyuta yako.

Ikiwa mfumo wako wa uendeshaji hautoi chatu iliyowekwa tayari, unaweza kwenda https://python.org kupakua jengo rasmi kwa yoyote ya mifumo inayotumika ya uendeshaji.

STEP3: Sakinisha esptool na rshell

Sakinisha vifurushi viwili ambavyo vitakusaidia kudhibiti bodi yako kwa kutumia bomba Ili kufanya hivyo fungua kituo chako na uendeshe

bomba kufunga esptool rshell

STEP4: Pakua MicroPython

Pakua firmware ya hivi karibuni ya MicroPython.bin kutoka kwa kiunga kifuatacho:

Wakati ninaandika hii, toleo la sasa ni 1.11, na faili ya firmware inaitwa esp8266-20190529-v1.11.bin

Wakati unafanya hii unaweza kupata toleo jipya zaidi.

Hatua ya 5: Flashing MicroPython Na Esptool.py

Flashing MicroPython Na Esptool.py
Flashing MicroPython Na Esptool.py
Flashing MicroPython Na Esptool.py
Flashing MicroPython Na Esptool.py

Kabla ya kuwasha firmware mpya ndani ya bodi ni wazo nzuri kufuta data yoyote ya hapo awali. Hili ni jambo ambalo unapaswa kufanya kila wakati ili firmware mpya itoke kwa hali safi.

Nenda mahali ulipoweka faili ya.bin. Tumia esptool.py kufuta flash.

Kwa Linux:

esptool.py --port / dev / ttyUSB0 futa_flash

Kwa Windows:

esptool.py - bandari COM3 futa_flash

Unaweza kulazimika kubadilisha bandari ya serial kwa amri yako kwa bandari ya serial ambayo bodi yako ya ESP8266 imeunganishwa. Ikiwa haujui nambari ya bandari ya ESP8266 yako, unaweza kuangalia IDE ya Arduino. Fungua tu IDE kisha ubonyeze kwenye Zana | Bandari. Unapaswa kuona bandari ya serial ya bodi yako ya ESP8266 iliyoorodheshwa hapo. Badilisha bandari ya serial kwa amri (/ dev / ttyUSB0) na bandari ya serial ya bodi yako.

Sasa kwa kuwa bodi imefutwa kabisa, unaweza kuwasha ujenzi wa MicroPython ambao umepakua tu. Hii pia imefanywa na amri ya esptool.py:

esptool.py --port / dev / ttyUSB0 --baud 460800 write_flash 0 esp8266-20190529-v1.11.bin

Amri hii itaandika yaliyomo kwenye faili ya MicroPython.bin kwa bodi kwenye anwani 0.

Hakikisha unabadilisha jina la faili ya firmware.bin katika amri (esp82688-2019-080529-v1.11.bin) kuwa ile ya firmware uliyopakua.

Mara firmware ikiwa imewekwa kwa mafanikio kwenye bodi yako ya ESP8266, unaweza kupata REPL kwenye bodi yako kupitia unganisho wa waya (bandari ya UART serial) au WiFi iliyofikiria.

Hatua ya 6: Kutumia MicroPython REPL Pamoja na Rshell

Kutumia MicroPython REPL Pamoja na Rshell
Kutumia MicroPython REPL Pamoja na Rshell
Kutumia MicroPython REPL Pamoja na Rshell
Kutumia MicroPython REPL Pamoja na Rshell

Sasa uko tayari kuanza MicroPython kwenye bodi yako ya ESP8266.

Kile nitakachoonyesha jinsi ya kuungana na haraka ya Python inayofanya kazi kwenye bodi yako. Hii inaitwa REPL, ambayo inasimama kwa "Read-Eval-Print-Loop". Huu ndio mwongozo wa kawaida wa Python ambao labda unatumiwa kuona unapofanya kazi na mkalimani wa kawaida wa Python, lakini wakati huu itakuwa ikiendesha kwenye bodi yako, na kuingiliana nayo utatumia unganisho la serial kwa kompyuta yako. Uko tayari?

Ili kuungana na bodi yako na kufungua kipindi cha REPL, ingiza amri ifuatayo:

rshell - bandari

Amri hii itakuleta kwenye msukumo wa rshell. Tazama picha hapo juu.

Ikiwa unafuata mafunzo haya kwenye Windows, kumbuka kuwa rshell ina historia ya shida wakati wa kutumia Windows.

Kwa hivyo ili kurekebisha aina hiyo:

rshell -a - bandari COM3

Kutoka kwa haraka hii unaweza kufanya majukumu ya usimamizi yanayohusiana na bodi yako ya microcontroller, na pia uanze Python REPL ambayo unaweza kutumia kuingiliana na bodi kwa wakati halisi. Kwa hivyo ingiza tu amri ifuatayo:

badilisha

Ili kuhakikisha kila kitu kinafanya kazi, andika sentensi rahisi ya chatu:

chapisha ("Hello World")

Hatua ya 7: Kudhibiti Pini Kutumia MicroPython

Kudhibiti Pini Kutumia MicroPython
Kudhibiti Pini Kutumia MicroPython
Kudhibiti Pini Kutumia MicroPython
Kudhibiti Pini Kutumia MicroPython

Katika hatua hii, tutajifunza jinsi ya kudhibiti pini za ESP8266 na MicroPython. Ili kufanya hivyo tutakuja na usanidi ambapo tutabadilisha hali ya LED iliyounganishwa na pini ya GPIO ya bodi ya ESP8266. Hii itakusaidia kuelewa jinsi ya kudhibiti matokeo ya dijiti kwa kutumia MicoPython.

Kujiandaa

Utahitaji vitu vifuatavyo ili kukamilisha HATUA hii:

1 x NodeMCU

1 x Nyekundu 5mm LED

1 x 220 ist Mpingaji

1 x Bodi ya mkate

Waya za Jumper

Jengo

Anza kwa kuweka LED kwenye ubao wa mkate. Unganisha ncha moja ya kipinga cha 220 to kwenye mguu mzuri wa LED (mguu mzuri wa LED kawaida huwa mrefu kuliko miguu miwili). Unganisha mwisho mwingine wa kontena ili kubandika D1 ya bodi ya ESP8266. Kisha unganisha mguu hasi wa LED kwenye pini ya GND ya bodi ya ESP8266. Uunganisho umeonyeshwa kwenye mchoro hapo juu.

Mara usanidi ukamilika, unganisha bodi ya ESP8266 kwenye kompyuta yako kupitia kebo ya USB.

Jinsi ya kufanya hivyo…

Andika nambari ifuatayo katika REPL yako:

# blink LED kila sekunde 1

def blink (pin = 5, time = 1) # blink function by default pin = 5, time = 1s import machine # moduli ya mashine inashikilia usanidi na njia kutoka kwa wakati kuagiza kulala # kuagiza kulala kwa ucheleweshaji wa LED = mashine. (led_pin, machine. PIN. OUT) # sanidi LED kama OUTPUT wakati ni Kweli: # endesha milele LED.thamani (1) # weka LED kwa usingizi wa hali ya juu (muda) # subiri sekunde 1 kwa default LED.thamani (0) # set LED kulala LOW (muda) # subiri sekunde 1 kwa chaguo-msingi

Chapa blink () kwenye kikao chako cha RPEL ili ujaribu nambari hii. Hii itapepesa LED iliyounganishwa na GPIO5 kila sekunde 1.

Unaweza kubadilisha pini na / au wakati kwa kupiga simu:

blink (pin =, time =)

Bonyeza ctrl + c ili kutoka kwa msimbo unaoendesha.

Unaweza kutumia MicroPython kusoma pembejeo kutoka kwa kushikamana na ESP8266. Endelea kwa hatua inayofuata ili kujifunza jinsi ya kufanya hivyo.

Angalia video ikiwa umekwama.

Hatua ya 8: Kufifia kwa LED

Kupunguza LED
Kupunguza LED
Kupunguza LED
Kupunguza LED

Katika hatua hii, tutajifunza jinsi ya kurekebisha mwangaza wa LED kwa kutumia potentiometer ya rotary. Tutatumia mbinu inayoitwa Pulse Width Modulation (PWM), inatuwezesha kupunguza mwangaza wa LED na hadi mipangilio 256.

Ilani: Pini zote za ESP8266 zinaweza kutumika kama pini ya PWM isipokuwa GPIO16 (D0).

Kujiandaa:

Utahitaji vitu vifuatavyo ili kukamilisha HATUA hii:

1 x NodeMCU

1 x Nyekundu 5mm LED

1 x 50 KΩ Rotary Potentiometer.

1 x Bodi ya mkate

Waya za Jumper

Jengo

Uunganisho umeonyeshwa kwenye mchoro hapo juu: Mara tu usanidi ukamilika, unganisha bodi ya ESP8266 kwenye kompyuta yako kupitia kebo ya USB.

Jinsi ya kufanya hivyo…

Andika nambari ifuatayo katika REPL yako:

#Kufifia kwa LED kila 0.5 kwa kusoma data kutoka kwa Potentiometer

mashine ya kuagiza kutoka wakati wa kuagiza kulala led_pin = 5 # pini iliyoongozwa POT = mashine. kitu na weka mzunguko hadi 500Hz wakati ni Kweli: LED_pwm.duty (POT.read ()) # pata thamani kutoka kwa sufuria na uiweke kulala usingizi wa mzunguko (0.5) # subiri 0.5

Hii itabadilisha mwangaza wa LED iliyounganishwa na GPIO 5 kwa kubadilisha thamani ya potentiometer.

Bonyeza ctrl + c ili kutoka kwa msimbo unaoendesha.

Angalia video ikiwa umekwama.

Hatua ya 9: Wapi Kutoka Hapa?

Hadi sasa tumeona jinsi ya kusanidi na kuendesha MicroPython kwenye bodi zilizo na ESP8266. tulijifunza jinsi ya kudhibiti pini ili kupepesa LED kisha tukaongeza potentiometer ili kudhibiti mwangaza wa LED kwa kutumia mbinu ya upanaji wa mpigo wa mpigo.

Sasa tunaweza kusoma data kutoka kwa sensa na kuipeleka kwenye wingu, tunaweza pia kuunda seva ya HTTP ambapo unaweza kuchapisha data zetu kwenye ukurasa rahisi wa wavuti, nk.

Hii inatupa maoni mengi ya mtandao wa vitu (IoT).

Hatua ya 10: Hitimisho

Hapo unayo! Nenda mbele na ushinde ulimwengu wa MicroPython.

ikiwa una swali lolote bila shaka unaweza kuacha maoni.

Ili kuona zaidi kuhusu kazi zangu tafadhali tembelea kituo changu cha YouTube:

myYouTube

myGitHub

myLinkedin

Asante kwa kusoma hii inayoweza kufundishwa na uwe na siku njema.

Tuonane.

Ahmed Nouira.

Ilipendekeza: