This shows you the differences between two versions of the page.
|
iothings:laboratoare:lab5 [2022/04/06 15:19] cosmin.chenaru [Exerciții] |
iothings:laboratoare:lab5 [2022/04/06 19:35] (current) cosmin.chenaru [Exerciții] |
||
|---|---|---|---|
| Line 9: | Line 9: | ||
| O scurtă introducere cu cele mai folosite construcții în Python găsim [[https://randomnerdtutorials.com/micropython-programming-basics-esp32-esp8266|aici]]. | O scurtă introducere cu cele mai folosite construcții în Python găsim [[https://randomnerdtutorials.com/micropython-programming-basics-esp32-esp8266|aici]]. | ||
| + | ==== 2. Documentația MicroPython pentru ESP32 ==== | ||
| + | |||
| + | MicroPython este o implementare optimizată a limbajul de programare Python3, destinată microcontroller-elor cu puține resurse disponibile, ce conține un mic subset din funcționalitatea standard a limbajului. | ||
| + | |||
| + | Documentația pentru ESP32 o avem [[https://docs.micropython.org/en/latest/esp32/quickref.html|aici]]. | ||
| ==== Exerciții ==== | ==== Exerciții ==== | ||
| - | === Ex. 1 === | + | === Ex. 1 - WiFi Scan === |
| Scanați retelele WiFi locale folosind următorul program: | Scanați retelele WiFi locale folosind următorul program: | ||
| Line 26: | Line 31: | ||
| </code> | </code> | ||
| - | O scurtă documentație găsiți [[https://docs.micropython.org/en/latest/library/network.WLAN.html|aici]] | + | Un mic exemplu cu partea de retea găsim [[https://docs.micropython.org/en/latest/library/network.WLAN.html|aici]] |
| + | |||
| + | === Ex. 2 - Web Server === | ||
| + | |||
| + | Urmăriți [[https://randomnerdtutorials.com/esp32-esp8266-micropython-web-server|acest]] tutorial pentru a porni un server web. Testați conexiunea din browser și aprindeți led-ul din pagina web. | ||
| + | |||
| + | <note> | ||
| + | Tutorialul din link-ul de mai sus folosește aplicația uPyCraft, dar noi vom folosi tot aplicația Tonny. | ||
| + | </note> | ||
| + | |||
| + | {{:iothings:laboratoare:lab5-web-server-2.png?300|}} | ||
| + | |||
| + | === Ex. 3 - Simularea unei intreruperi === | ||
| + | |||
| + | Folosiți programul de mai jos pentru a "asculta" interuperi pe PIN-ul 23. | ||
| + | |||
| + | <code> | ||
| + | from machine import Pin | ||
| + | from time import sleep | ||
| + | |||
| + | shortCircuit = False | ||
| + | |||
| + | def handle_interrupt(pin): | ||
| + | global shortCircuit | ||
| + | shortCircuit = True | ||
| + | print("Interrupt") | ||
| + | |||
| + | led = Pin(2, Pin.OUT) | ||
| + | |||
| + | # Setting a ping on 3.3 volts | ||
| + | highVoltagePin = Pin(22, Pin.OUT) | ||
| + | highVoltagePin.value(1) | ||
| + | |||
| + | # This pin should receive 3.3 volts to trigger an interrupt | ||
| + | pir = Pin(23, Pin.IN) | ||
| + | |||
| + | pir.irq(trigger=Pin.IRQ_RISING, handler=handle_interrupt) | ||
| + | |||
| + | while True: | ||
| + | if shortCircuit: | ||
| + | led.value(1) | ||
| + | sleep(1) | ||
| + | led.value(0) | ||
| + | print('Interrupt stopped!') | ||
| + | shortCircuit = False | ||
| + | </code> | ||
| + | |||
| + | Din cauza lipsei unui device fizic care să livreze o întrerupere, vom pune PIN-ul 22 pe 1 logic (3.3 volți) iar cu ajutorul unui pix vom scurt-circuita PIN-ul 23. | ||
| + | |||
| + | {{:iothings:laboratoare:lab5-scurt-circuit.jpg?300|}} | ||
| + | |||
| + | Dacă nu merge cu un pix, puteți încerca cu partea de grafit dintr-un creion mecanic. | ||
| + | |||
| + | {{:iothings:laboratoare:lab5-scurt-circuit-grafit.jpg|}} | ||
| + | |||
| + | Sau in cel mai ne-ingineresc caz, cu o furculiță :). | ||
| ===== Resurse ===== | ===== Resurse ===== | ||
| * https://randomnerdtutorials.com/getting-started-thonny-micropython-python-ide-esp32-esp8266/ | * https://randomnerdtutorials.com/getting-started-thonny-micropython-python-ide-esp32-esp8266/ | ||
| * https://randomnerdtutorials.com/micropython-programming-basics-esp32-esp8266/ | * https://randomnerdtutorials.com/micropython-programming-basics-esp32-esp8266/ | ||