Forum: Mikrocontroller und Digitale Elektronik Website mit Mikrocontroller


von Dominik L. (Gast)


Lesenswert?

Hallo!

Ich wende mich an dieses Forum weil ich auf der Suche nach einem 
Mikrocontroller bin.

Für ein Projekt dessen Vorgaben fix einzuhalten sind, möchten wir (Ich 
und zwei weitere Freunde) einen freiwilligen Zusatz realisieren.

Die Vorgaben der Pflichtaufgabe kann sicherlicht fast jeder moderne 
Mikrocontroller:

- 3.3V ODER 5V Versorgung
- 1x UART (rs232)
- 1x SPI (min. 8MHz)
- 8 GPIO Pins.
- 2 Analog Inputs

Bei der Aufgabe geht es darum verschiedne Geräte anzusteuern und Befehle 
über RS232 zu empfangen und bei Bedarf zu Antworten. Die Befehle sind 
meist 3-Stellig wie zb. "AW1" für Analog Wert Pin 1.


Nun zum Zusatz:
Da RS232 via PC heutzutage wohl nicht mehr all zu zeitgemäss sind, darf 
man i einer Freiwilligen Aufgabe eine alternative Eingabe/Auslesung 
realisieren.
Wie schwer zu erwarten, entschieden sich alle für "Web/IOT". Damit 
unsere Lösung etwas anders ist und sich von anderen abgrenzt, möchten 
wir eine Weboberfläche machen.

Die meisten anderen Teams versuchen eine Geräteabhänige Lösung (z.b. 
Android App) zu realisieren. Bei uns wäre es "Geräteunabhänig", also man 
gibt z.b. die IP ein, und erhält eine Website auf der man verschiedene 
Optionen anwählen kann, und Werte abrufen.

Das benötigt natürlich einen Mikrocontroller der
1.) Viel Speicher für die Website (ca. 1-5MB) hat
2.) Die nötige Rechenleistung


Nun möchten wir hier Nachfragen welcher Mikrocontroller sich dafür 
eignen würde?

Grundsätzlich dürfen natürlich auch 2 Mikrcontroller verwendet werden, 
die dann auf der Platine platzfinden. Eine fertige Lösung darf soll 
nicht benutzt werden (zb. "Externes Gerät anschliessen und dann die 
Werte per RS232 senden, denn das ganze soll dann als "ein Gerät" sein.

Grundsätzlich soll eine moderne, 1-seitige Website realisiert werden auf 
der Pins gesetzt bzw. deren Stand ausgelesen werden kann, ebenfalls 
sollen Analogwerte (auf "abfrage" oder optional "live) abelesen werden 
können.


Welchen Mikrocontroller bzw. welche IC's würded Ihr uns so empfehlen?


Viele Grüsse
Dominik

von Dieter F. (Gast)


Lesenswert?

Dominik L. schrieb:
> Die Vorgaben der Pflichtaufgabe kann sicherlicht fast jeder moderne
> Mikrocontroller:

Das sagen euch die Datenbätter.

Dominik L. schrieb:
> Das benötigt natürlich einen Mikrocontroller der
> 1.) Viel Speicher für die Website (ca. 1-5MB) hat
> 2.) Die nötige Rechenleistung

Dto. - wobei nicht unbedingt jeder MC Web-Fähigkeiten hat :-)

von Mick (Gast)


Lesenswert?

Am einfachsten und günstigsten wird wohl ein ESP8266 Modul sein.

von Max (Gast)


Lesenswert?

Dominik L. schrieb:
> Das benötigt natürlich einen Mikrocontroller der
> 1.) Viel Speicher für die Website (ca. 1-5MB) hat
> 2.) Die nötige Rechenleistung

Das benötigt weniger als Du glaubst (es sei denn es sollen fette 
Grafiken mit auf die Reise gehen). Für eine einfache HTML-Seite langt 
ein einfacher AVR mit wenigen KByte SRAM. Der kann diese dann via 
kleinem ESP8266 Modul über den Äther schicken. Klar kann letzteres die 
Aufgabe auch ganz allein erledigen.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Dominik L. schrieb:
> Wie schwer zu erwarten, entschieden sich alle für "Web/IOT". Damit
> unsere Lösung etwas anders ist und sich von anderen abgrenzt, möchten
> wir eine Weboberfläche machen.
>
> Die meisten anderen Teams versuchen eine Geräteabhänige Lösung (z.b.
> Android App) zu realisieren.

Nicht sehr geschickt. Nicht umsonst gibt es standardisierte 
IoT-Protokolle.

> Bei uns wäre es "Geräteunabhänig", also man
> gibt z.b. die IP ein, und erhält eine Website auf der man verschiedene
> Optionen anwählen kann, und Werte abrufen.

Auch nicht so geschickt im praktischen Gebrauch. Schließlich will man 
automatisieren und sich nicht in GUIs einen Wolf zusammenklicken müssen.

Aber egal, für ein bisschen Basteln, Hausaufgaben, Kurspunkte, usw. kann 
man das schon machen.

> Das benötigt natürlich einen Mikrocontroller der
> 1.) Viel Speicher für die Website (ca. 1-5MB) hat

5MB? Jetzt übertreibt mal nicht. 5MB braucht man wenn man richtig 
scheiße Webseiten mit ranzigen JavaSkript-Frameworks zusammenklebt.

> 2.) Die nötige Rechenleistung

Viel wichtiger: Ein vorhandener TCP/IP Stack und das Ethernet-Interface, 
zum Beispiel RMII. TCP/IP und Ethernet ist nämlich eine ganz andere 
Nummer als RS232.

> Nun möchten wir hier Nachfragen welcher Mikrocontroller sich dafür
> eignen würde?

Schon was dickeres, weil man dann mehr "rumsauen" kann, statt die Zeit 
mit Optimierungen zu verbringen. Beispielsweise ein Board wie 
http://www.st.com/en/evaluation-tools/nucleo-f429zi.html

Kostet so um die 25 Euro.

> Grundsätzlich dürfen natürlich auch 2 Mikrcontroller verwendet werden,
> die dann auf der Platine platzfinden. Eine fertige Lösung darf soll
> nicht benutzt werden (zb. "Externes Gerät anschliessen und dann die
> Werte per RS232 senden, denn das ganze soll dann als "ein Gerät" sein.

Ok, d.h. das Board dürft ihr eventuell so nicht verwenden. Trotzdem 
würde ich mit dem fertigen Board anfangen, denn:

- Parallele SW und HW Entwicklung möglich
- Für das Board gibt es den Schaltplan, BOM, Layout (Gerbers)
- TCP/IP Stack (mehrere) verfügbar
- Kommt mit einem Programmer den man auch für ein eigenes Board 
verwenden kann

: Bearbeitet durch User
von Einer K. (Gast)


Lesenswert?

Dominik L. schrieb:
> - 3.3V ODER 5V Versorgung
> - 1x UART (rs232)
> - 1x SPI (min. 8MHz)
> - 8 GPIO Pins.
> - 2 Analog Inputs
> - 5MByte Webspace
> - WLAN
(leicht von mir erweitert)

Naja....

Vorschlag:
ESP8266-12E Hauptprozessor
- 3.3V
- 80/160 MHz Takt
- WLAN
- 1x UART
- 1x SPI (min. 8MHz)??? Doku befragen
- 8 GPIO Pins. (knapp, eher nicht genug wenn SPI/I2C/UART genutzt wird)
- 1 Analog Input
- 4MByte Flash (1MB Programm + 3MB SPIFFS evtl. für Webspace)

Zusatz:
ATMega328P als Slave über I2C mit dem ESP verbunden
- 3,3V oder 5V
- 5(7) Analog Input
- viele Digitale IO
- 1 UART
- 1 SPI
usw.

An beiden:
- SD Karte möglich
- UART zu USB Wandler
- UART zu RS232 Wandler

von Stefan F. (Gast)


Lesenswert?

Momentan bekommt man alternativ zum ATmega328 auch STM32F103C8T6 Module 
ungefähr zum selben Preis. Die sind in fast jeder Hinsicht 
Leistungsstärker.

Eine andere theoretische Möglichkeit wären Module, die den ESP8285 
verwenden. Die können bis zu 6 I/O Pins mehr haben, als der ESP8266. 
Leider konnte ich kein Modul finden, wo die zusätzlichen Pins 
herausgeführt sind.

Man könnte den ESP8266 auch mit einem I²C Expander oder einen 
Schieberegister erweitern. Das hätte den Vorteil, dass man nur einen µC 
Programmieren muss.

Vielleicht gefällt Dir dieser Artikel: 
https://www.amazon.de/gp/product/B074ZJVL5D/ref=s9u_simh_gw_i1

in Kombination mit einem PCF8574 oder einem 74HC595.

Infos zu den ESP Chips: http://stefanfrings.de/esp8266/index.html

von c-hater (Gast)


Lesenswert?

Dominik L. schrieb:

> Nun zum Zusatz:
> Da RS232 via PC heutzutage wohl nicht mehr all zu zeitgemäss sind, darf
> man i einer Freiwilligen Aufgabe eine alternative Eingabe/Auslesung
> realisieren.
> Wie schwer zu erwarten, entschieden sich alle für "Web/IOT". Damit
> unsere Lösung etwas anders ist und sich von anderen abgrenzt, möchten
> wir eine Weboberfläche machen.

Häh? Wo ist jetzt das Besondere eurer Lösung?

> Das benötigt natürlich einen Mikrocontroller der
> 1.) Viel Speicher für die Website (ca. 1-5MB) hat
> 2.) Die nötige Rechenleistung

Zur Auslieferung einer Webseite reichen auch sehr kleine µC bezüglich 
der Rechenleistung bereits vollkommen aus. Jedenfalls, wenn nicht 200000 
Clients gleichzeitig die Seite abrufen, sondern nur eine Zahl im kleinen 
einstelligen Bereich. Übrigens: Mit einer hinreichend großen Zahl 
gleichzeitiger Abrufe kriegt man JEDE Hardwarebasis dazu, dass sie nix 
mehr ausliefert. Oder was glaubst du, was DoS-Angriffe tun?

Und natürlich ist der angegebene Speicherbedarf völlig überzogen. Eine 
einfache Webseite passt in sehr wenige kB Speicher. Naja, wenn's etwas 
hypsch sein soll, werden wohl ein paar Bitmaps fällig, die kosten 
natürlich etwas mehr Speicher, bei sinnvoller Aufbereitung der Grafiken 
aber auch nicht so sehr viel mehr. Jedenfalls nix, was nicht auch schon 
ein kleiner 8Bitter+SD-Card hinreichend schnell ausliefern könnte...

Wer glaubt, es wäre mehr nötig, kann nur einfach nicht wirklich 
programmieren. That's all...

von Nop (Gast)


Lesenswert?

Hannes J. schrieb:

> 5MB? Jetzt übertreibt mal nicht. 5MB braucht man wenn man richtig
> scheiße Webseiten mit ranzigen JavaSkript-Frameworks zusammenklebt.

Selbst wenn man JQuery verwendet, zieht das nur so um die 100kB in der 
minifizierten Version. Das braucht man aber auch nur, wenn man 
interaktive, zustandsbehaftete Sachen einbauen will. Ein paar Buttons 
(mit Feedback) und sogar kleine Animationen kann man auch mit HTML und 
CSS machen.

von Stefan F. (Gast)


Lesenswert?

> Das braucht man aber auch nur, wenn man
> interaktive, zustandsbehaftete Sachen einbauen will.

Du meinst, das kann man dafür benutzen.

Die Browser unterscheiden sich nicht mehr so sehr, wie zu IE4 Zeiten. 
Damals war jQuery kaum vermeidbar, heute ist es tatsächlich nur noch 
nice to have.

von Blackbird (Gast)


Lesenswert?

Alles schön und gut. Aber wie gut sind denn die Programmmierfähigkeiten 
des Teams?


Blackbird

von Nop (Gast)


Lesenswert?

Stefan U. schrieb:

> Du meinst, das kann man dafür benutzen.

Es ist zumindest bequem, und man bekommt zahllose Anwendungen, die man 
nur noch anpassen muß.

> Damals war jQuery kaum vermeidbar, heute ist es tatsächlich nur noch
> nice to have.

Du meinst, man solle stattdessen in Javascript direkt programmieren? 
Kann man natürlich machen, aber dann ist die eigentliche Anwendung halt 
wesentlich mehr Code, den man obendrein auch noch testen und debuggen 
muß.

Zumal der eigentliche Grund, wieso Webseiten lahm laden, ja nicht das 
bißchen JS und JQuery ist, sondern immer mehr und immer größere Bilder 
sowie immer mehr Dateien von zig Domains, die im Wesentlichen dem 
Ausspionieren des Nutzers dienen.

Wobei man heute, wenn es nicht zustandsbehaftet sein muß, ja auch sehr 
viel mit CSS machen kann, beispielsweise das komplette Layout inklusive 
Anpassung auf unterschiedliche Fenstergrößen.

von Frank K. (fchk)


Lesenswert?

Dominik L. schrieb:

> Die meisten anderen Teams versuchen eine Geräteabhänige Lösung (z.b.
> Android App) zu realisieren. Bei uns wäre es "Geräteunabhänig", also man
> gibt z.b. die IP ein, und erhält eine Website auf der man verschiedene
> Optionen anwählen kann, und Werte abrufen.

Ich habe das mal vor Jahren mit einem kleinen PIC18F67J60 gemacht. Der 
hat Ethernet eingebaut, 128k Flash, 4k RAM, kostet 3.50€ in 10'er Packs 
und die damit realisierte Schaltbox läuft seitdem 24/7 ohne irgendwelche 
Probleme. IP-Stack und Webserver gibts von Microchip, das kann man 
einfach so benutzen. Die Webseite hat nur wenige kByte.

Heutzutage würde man vielleicht so etwas wählen:

http://www.ti.com/lit/ds/symlink/cc3220moda.pdf

Ist ein Cortex M4 mit WiFi, Antenne, TCP/IP-Stack und allem, was man 
dafür so braucht. Und mit ETSI Funkzulassung.

Du kannst Dir ja mal so ein EIntwicklungsboard besorgen, bevor Du Dir 
Deine eigene Platine machst.

http://www.ti.com/tool/launchcc3220modasf

fchk

von stromverdichter (Gast)


Lesenswert?

Dominik L. schrieb:
> Grundsätzlich dürfen natürlich auch 2 Mikrcontroller verwendet werden,
> die dann auf der Platine platzfinden. Eine fertige Lösung darf soll
> nicht benutzt werden (zb. "Externes Gerät anschliessen und dann die
> Werte per RS232 senden, denn das ganze soll dann als "ein Gerät" sein.

Hallo Dominik,
wenn ich das richtig lese, fallen damit eigentlich alle fertigen Module 
wie z.B. ESP8266 raus. Ich weiß nicht, wie es um eure Fertigkeiten 
steht, aber anhand der Aufgabenstellung dürftet ihr gerade erst am 
Fußende des Wissensberges "Elektronik" stehen.

Einen Wlan-Chip auf eigenem Board zum laufen zu bekommen dürfte zuviel 
für euch sein. Ulrich Radig hat mal ein tolles Projekt gezeigt, in dem 
er mit einem Atmel128 einen fertigen Webserver zeigt und eine 
Netzwerk-Schnittstelle implementiert. Sein Webserver könnte eure GPIOs 
anzeigen und schalten. Zum lernen wäre das sicherlich der beste Ansatz.
http://www.ulrichradig.de/home/index.php/avr/webserver

von Pollin gab es auch mal den passenden Bausatz dazu:
https://www.mikrocontroller.net/articles/AVR_Net-IO_Bausatz_von_Pollin

Um die Diskussion in die richtige Richtung zu lenken müsstest du 
dringend folgendes mitteilen:
Über welche Fähigkeiten verfügt ihr 
(Hardware-Layout/Programmiersprachen)
wieviele Mannstunden habt ihr zur Verfügung  (Teamgröße und Zeit die ihr 
einbringen wollt)
Über welche Technik verfügt ihr  (Programmer/Oszi/LA)

Und vor allem, was dürft ihr verwenden und was darf es kosten.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Frank K. schrieb:
> Und mit ETSI Funkzulassung.
Die (hoffentlich) erfolgreiche Modulintegration muss trotzdem 
nachgewiesen werden...

Dominik L. schrieb:
> Eine fertige Lösung darf soll nicht benutzt werden
Definiere das genauer. Auch ein hochintegrierter uC ist eine fast 
fertige Lösung...
Und was müsst ihr jetzt eigentlich machen? Software oder Hardware oder 
beides? Wann muss das Ganze fertig sein? Und wieviel Zeit habt ihr 
dafür?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.