Inleiding
Om WiFI op
microcontrollers te vervangen door wired ethernet, of om een module die geen
WiFi mogelijkheden heeft, uit te breiden met netwetrk connectivity kunnen we
deze microcontroller uitbreiden met een ethernet module, bijvoorbeeld een
ENC28J60.
Een
toepassing zou kunnen zijn om de SIP module via ethernet ipv wifi te doen, wifi
is onbetrowbaar gebleken, waardoor deze nu op een raspberry draait, omdat deze
ethernet heeft. Met de ethernet module kan de SIP module met een ESP oid
gemaakt worden en is de rasp niet nodig.
Deze module
is een SPI module, met aansluitingen (ENC = module side):
- ENC SO -> SPI MISO <-
microcontroller pin
- ENC SI -> SPI MOSI <- microcontroller pin
- ENC SCK -> SPI clock <- microcontroller pin
- ENC CS -> SPI chip select <- microcontroller pin
- ENC VCC -> 3V3 pin <- microcontroller pin
- ENC GND -> Gnd pin <- microcontroller pin
Tutorials gebruiken de Arduino Ethershield library (development has
stopped) en de Ethercard library (de nieuwste). EthernetENC is wellicht nog beter, is verbetering van
the UIPEthernet library. Zie https://github.com/jandrassy/EthernetENC.
Mogelijke kandidaat is ook Ethersia lib, deze kan IP V6 aan.
Zie bijvoorbeeld: https://www.instructables.com/Add-Ethernet-to-any-Arduino-project-for-less-than-/
Als we deze op een ESP NodeMCU (ESP Nr 11) willen gebruiken,
zijn de aansluitingen als volgt (copied van Hardware Power Control):
- ENC SO
-> SPI MISO <- microcontroller pin D6 (GPIO12), breadboard Wit
- ENC SI -> SPI MOSI <- microcontroller pin D7 (GPIO13) , breadboard
Blauw
- ENC SCK -> SPI clock <- microcontroller pin D5 (GPIO14), breadboard
Oranje
- ENC CS -> SPI chip select <- microcontroller pin D8 D2 (GPIO15) ,
breadboard Geel (D8 kan niet, boot fails if pulled HIGH
- ENC VCC -> 5V/3V3 pin <- microcontroller pin 5V/3V3, breadboard Rood
(werkt op 5V en 3V3)
- ENC GND -> Gnd pin <- microcontroller pin GND, breadboard Zwart
- ENC RST -> Reset <- microcontroller pin D1 (GPIO5) , breadboard Paars
30 Jan 24: JanDrassy
EtherENC lib werkt, DHCPAdressPrinter example lukte, kreeg IP adres .101, met
eigen mac adres (48:65:52:6F:2D:00, betekent HeRo- en dan een volgnummer). Heb wel in EtherENC
Ethernet.h moeten aanpassen, timeouts stonden op 60000 en 4000 (is 60 en 4
seconden) dit is veel te lang, dan krijg je een Soft Wachdog reset.
Teruggebracht naar respectievelijk 1000 en 1000 en dan werkt ‘t, met 10000 en
4000 werkt ’t ook.
Het lukte
maar 1 keer met de DHCPAdresPrinter, daarna WebServer test gedaan, maar deze
zei steeds cable not connected. Klopt wel want oranje LED op UTP port knippert
(groen brandt wel). Ook daarna deed DHCPAdresPrinter ’t niet meer. Dit kwam
doordat D8 als CS werd gebruikt, maar de ESP boot niet als D8 HIGH is. Met CS
op D2 lukt ’t wel. Webserver test doet ’t ook (met vast IP adres
192.168.178.101). Waarschijnlijk werd ook de Ethernet.init te vroeg gedaan,
deze is nu na de Serial.init. Met deze wijzigingen gaat ’t nu steeds goed.
Next wordt
kijken of we een HenkLIN SIP Server met LAN kunnen maken, met de HeRo_SIOP
library, als vervanger van de Rasp versie.
Als basis
wordt de code van HenkLIN_SIP_Server gebruikt, deze gebruikt al de HeRo_SIOP
library.
Omdat
Ethernet LAN en NTP niet samengaat (NTPClient_Generic krijg ik niet werkend),
gaat het werken met tijd anders worden:
NTP is niet
echt nodig, de GUI/Client heeft toegang tot de huidige tijd, dus kan bij
connectie een epoch tijd sturen, waarna de server zelf verder kan. Dit kan
volledig in de HeRo_SIOP library.