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.