Aansturen van een Wemos D1 Mini met MicroPython via wifi

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Podracer77
  • Registratie: Augustus 2017
  • Laatst online: 28-09 02:28
Mijn vraag

Ik wil graag een Wemos D1 Mini via het netwerk aan kunnen sturen, in dit geval om een ledstrip te bedienen, geprogrammeerd met MicroPython. Ik loop alleen tegen wat problemen aan.
Het lukt niet om met verschillende clients met mijn Wemos te verbinden, als ik met mijn telefoon op de webpagina zit die wordt gehost dan moet ik de Wemos eerst resetten voor ik met mijn PC naar dezelfde website kan gaan. In de code die ik heb staat de teller wel op maximaal 5 clients, maar dat lijkt niet te lukken. Of 1 apparaat opent genoeg sockets om gelijk alles vol te gooien, maar dit weet ik dus niet zeker.

Daarnaast heb ik het een en ander geautomatiseerd, het gaat namelijk om een ledstrip die ik aan wil hebben wanneer mijn PC ook aanstaat. Wanneer mijn PC namelijk aangaat wordt er via curl een verzoekje gedaan aan de ledstrip om aan te gaan.
code:
1
curl --data "led=on/off/toggle" 192.168.1.65/led

Dit werkt prima met de code die nu op mijn Wemos staat, welke via het Arduino IDE geprogrammeerd is.
https://github.com/ASdeWe...-desk/arduino/arduino.ino
Dan krijg ik gewoon netjes "Processed." terug. Maar wanneer ik dit doe met de MicroPython code die nu op mijn Wemos staat: https://github.com/ASdeWe...er/sketches/ledstrip-desk, te zien in boot.py en main.py. Dan werkt het via de webpagina op mijn Wemos vlekkeloos, maar wanneer ik eenzelfde soort curl request doe krijg ik als response heel de website terug.
code:
1
2
curl --data "led=on" 192.168.1.70
<html><head> <title>ESP Web Server</title> <meta name="viewport" content="width=device-width, initial-scale=1"><link rel="icon" href="data:,"> <style>html{font-family: Helvetica; display:inline-block; margin: 0px auto; text-align: center;}h1{color: #0F3376; padding: 2vh;}p{font-size: 1.5rem;}.button{display: inline-block; background-color: #e7bd3b; border: none; border-radius: 4px; color: white; padding: 16px 40px; text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}.button2{background-color: #4286f4;}</style></head><body> <h1>ESP Web Server</h1> <p>GPIO state: <strong>ON</strong></p><p><a href="/?led=on"><button class="button">ON</button></a></p><p><a href="/?led=off"><button class="button button2">OFF</button></a></p></body></html>


Relevante software en hardware die ik gebruik

Ik zit gebruik zelf Arch Linux, edit mijn code in de Arduino IDE wanneer het om Arduino sketches gaat en Sublime Text 3 voor MicroPython. Ik heb de micropython firmware op mijn Wemos geflashed met esptool en ik gebruik picocom om een REPL verbinding tot stand te brengen.
http://docs.micropython.o...tutorial/intro.html#intro

Wat ik al gevonden of geprobeerd heb

Gisteravond heb ik deze tutorial gevolgd: https://randomnerdtutoria...6-micropython-web-server/ en lukt het mij nu wel eindelijk om een werkende webserver te krijgen.
Het komt er denk ik op neer dat ik het fijn vind hoe het nu via de Arduino code werkt en het graag ook zo met MicroPython wil programmeren.

Ik hoop dat ik zo een beetje duidelijk ben geweest. Laat het graag weten als er nog iets mist, dan voeg ik dat toe.

Alle reacties


Acties:
  • 0 Henk 'm!

  • codeclap
  • Registratie: Juni 2015
  • Laatst online: 29-06-2024
Wat gebeurt er als je een GET request doet naar de volgende URL?

code:
1
192.168.1.70/?led=off

Acties:
  • +1 Henk 'm!

  • wautah91
  • Registratie: April 2010
  • Laatst online: 01-10 12:13
Heb je al ESPeasy geprobeerd? Met de PWM functies kun je dat voor een single color ledstrip zeer eenvoudig voor elkaar krijgen. Voor een RGB is het ook mogelijk, maar iets ingewikkelder.

Ik heb er twee blogposts over geschreven:

Enkele kleur ledstrip:
https://www.twoenter.nl/b...ting-sturen-met-domoticz/

RGB Ledstrip
https://www.twoenter.nl/b...trip-espeasy-en-domoticz/

Mijn smarthome blog artikelen over: Thuisaccu | Dynamische energieprijzen | Watermeter


Acties:
  • 0 Henk 'm!

  • Podracer77
  • Registratie: Augustus 2017
  • Laatst online: 28-09 02:28
wautah91 schreef op dinsdag 9 april 2019 @ 13:08:
Heb je al ESPeasy geprobeerd? Met de PWM functies kun je dat voor een single color ledstrip zeer eenvoudig voor elkaar krijgen. Voor een RGB is het ook mogelijk, maar iets ingewikkelder.

Ik heb er twee blogposts over geschreven:

Enkele kleur ledstrip:
https://www.twoenter.nl/b...ting-sturen-met-domoticz/

RGB Ledstrip
https://www.twoenter.nl/b...trip-espeasy-en-domoticz/
Ziet er leuk uit, maar ik wil toch liever zelf alles programmeren, en de requests daarna integreren in een andere website die ik ga maken voor niet alleen de ledstrip maar ook andere Wemos aangestuurde apparaten/frutsels.

Acties:
  • 0 Henk 'm!

  • Podracer77
  • Registratie: Augustus 2017
  • Laatst online: 28-09 02:28
codeclap schreef op dinsdag 9 april 2019 @ 13:06:
Wat gebeurt er als je een GET request doet naar de volgende URL?

code:
1
192.168.1.70/?led=off
Dankje, ik ga het vanavond even proberen.

EDIT: Het werkt! Dankjewel!

[ Voor 5% gewijzigd door Podracer77 op 09-04-2019 22:16 ]


Acties:
  • 0 Henk 'm!

  • codeclap
  • Registratie: Juni 2015
  • Laatst online: 29-06-2024
Even voor de zekerheid: snap je nu ook het verschil tussen de Arduino en de microPython variant?

Anders wil ik het dolgraag uitleggen!

Acties:
  • 0 Henk 'm!

  • Podracer77
  • Registratie: Augustus 2017
  • Laatst online: 28-09 02:28
codeclap schreef op woensdag 10 april 2019 @ 15:03:
Even voor de zekerheid: snap je nu ook het verschil tussen de Arduino en de microPython variant?

Anders wil ik het dolgraag uitleggen!
Volgens mij wel, als je het verschil bedoeld tussen Python en C++? Of de manier waar op je de code op een Wemos zet?
Nu ben ik eigenlijk wel benieuwd naar wat je uit wilt leggen.

Acties:
  • 0 Henk 'm!

  • codeclap
  • Registratie: Juni 2015
  • Laatst online: 29-06-2024
Podracer77 schreef op donderdag 11 april 2019 @ 07:23:
[...]


Volgens mij wel, als je het verschil bedoeld tussen Python en C++? Of de manier waar op je de code op een Wemos zet?
Nu ben ik eigenlijk wel benieuwd naar wat je uit wilt leggen.
In de zin van: het verschil tussen op request basis iets aan/uit zetten (zoals bij je MicroPython code) tegenover HTTP parameters (je Arduino code). :)

Acties:
  • 0 Henk 'm!

  • Podracer77
  • Registratie: Augustus 2017
  • Laatst online: 28-09 02:28
codeclap schreef op donderdag 11 april 2019 @ 09:53:
[...]


In de zin van: het verschil tussen op request basis iets aan/uit zetten (zoals bij je MicroPython code) tegenover HTTP parameters (je Arduino code). :)
Hier ben ik inderdaad wel benieuwd naar. Aangezien ik bij Arduino een POST request doe en bij MP een GET request.
Ik ben inmiddels al wel zo ver dat ik de GET request die binnenkomt goed kan parsen, zoals te zien op mijn github.
Pagina: 1