add more code

master
clemens 2017-10-10 21:48:45 +02:00
parent 2d655e4115
commit 610ca471dc
3 changed files with 77 additions and 5 deletions

View File

@ -17,3 +17,5 @@ services:
- ./src/:/flask/
env:
- FLASK_APP=server.py
ports:
- 5000:5000

View File

@ -2,4 +2,5 @@ from python:3-alpine
RUN pip install Flask
WORKDIR /flask
ENV FLASK_APP server.py
EXPOSE 5000
CMD ["flask", "run"]

View File

@ -117,8 +117,9 @@ Cooler: \href{https://micropython.org/}{MicroPython}
\item Basiert auf Python 3
\item Frei \& Open Source
\item Einige Funktionalität eingeschränkt (z.B. Multithreading)
\item Verscheidene Boards/Controller unterstützt
\item Verscheidene Boards/Controller unterstützt: PyBoard, ESP32, \dots
\end{itemize}
Lowlevel: C, Arduino Studio
\end{frame}
\section{Setup}
@ -222,7 +223,6 @@ import webrepl_setup
\begin{lstlisting}[caption={C\&C Server},label=cnc]
from flask import Flask, request
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello ESP8266!"
@ -232,22 +232,81 @@ def log(id):
\end{lstlisting}
Starten:
\begin{itemize}
\item[!] pip install Flask
\item python server.py
\item docker-compose up (server.py in src/)
\item FLASK\_APP=server.py flask run
\end{itemize}
\end{frame}
\begin{frame}[fragile]{Daten übertragen}
\begin{lstlisting}[caption={HTTP Requests},label=http]
import urequests
host = "http://your.host.ip.here:5000"
response = urequests.get(host)q
print(response)
import machine
board_id = int.from_bytes(machine.unique_id(), 'little')
payload = '{"board": "{id}"}'.format(id=board_id)
json_header = {'Content-Type': 'application/json'}
post_url = "{host}/id/{id}".format(host=host, id=board_id)
urequests.post(post_url, data=data, headers=json_header)
\end{lstlisting}
\end{frame}
\section{Basteln}
\subsection{Blinkende LED}
\begin{frame}{LEDs}
\begin{frame}{LED anschließen}
TODO schema
\end{frame}
\begin{frame}[fragile]{LEDs}
\begin{lstlisting}[caption={LED},label=led]
import machine, time, math
pin = machine.Pin(0, machine.Pin.OUT)
pin.on()
pin.off()
pwm = machine.PWM(pin)
pwm.duty(512)
pwm.deinit()
def pulse(l, t):
for i in range(20):
l.duty(int(math.sin(i / 10 * math.pi) * 500 + 500))
time.sleep_ms(t)
led = machine.PWM(machine.Pin(2), freq=1000)
pulse(led, 50)
for i in range(10):
pulse(led, 20)
\end{lstlisting}
\end{frame}
\subsection{Schalter und Taster}
\begin{frame}[fragile]{Input}
TODO: schema
\begin{lstlisting}[caption={Input},label=input]
import machine
pin = machine.Pin(0, machine.Pin.IN, machine.Pin.PULL_UP)
status = pin.value()
def callback(p):
print('changed', p)
pin.irq(trigger=machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING, handler=callback)
\end{lstlisting}
\end{frame}
\subsection{Sensoren}
\subsection{Push}
\begin{frame}[fragile]{Sensoren}
TODO: schema
\begin{lstlisting}[caption={Sensoren},label=senors]
import dht
import machine
d = dht.DHT22(machine.Pin(4))
d.measure()
d.temperature()
d.humidity()
\end{lstlisting}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@ -262,4 +321,14 @@ Starten:
\normalsize
\end{frame}
\section*{Ausblick}
\begin{frame}{Was geht noch?}
\begin{itemize}
\item \url{https://learn.adafruit.com/micropython-hardware-i2c-devices/overview}
\item \url{http://luftdaten.info/}
\item \url{https://micropython-on-esp8266-workshop.readthedocs.io/en/latest/index.html}
\item MQTT, \href{http://nsq.io/}{nsq.io}
\end{itemize}
\end{frame}
\end{document}