Posts tonen met het label ESP8266. Alle posts tonen
Posts tonen met het label ESP8266. Alle posts tonen

maandag 4 december 2023

ESP32 [3 : overdracht van de ESP8266 naar de ESP32 - S2 ]

Om eens te testen of de software kon overgezet worden van de ESP8266 naar de S2  heb ik de s/w een beetje moeten aanpassen.

De hardware is gelukkig identiek , zij het met andere benamingen, maar de pinnen komen overeen. 

 


 

Deze pinnummers moeten natuurlijk in de declaratie van de soft aangepast worden


Wel , het werkt goed.

Echter, toegang krijgen tot het S2 bord was niet zo simpel .Bij inpluggen van het bord via de USB -C kreeg ik geen connectie te zien en ook geen "device" in de lijst op Linux.Ik kreeg niets te zien , zelfs niet het blauwe ledje

Ik verwachtte ttyUSB0 onder de map devices, maar die was er niet.


Deze lijst is te vinden onder /dev

 



 Ook het gebruiken van de combinatie van de rst en het "0" drukknopje was nodig

Rst knopje indrukken en daarna het "0" knopje. Het "0" knopje lossen en daarna het rst knopje.

Uiteindelijk kwam het blauwe ledje te branden en ook zag ik een extra tty device maar het was niet ttyUSB0.

Het was ttyACM0


Dit was mij niet zo bekend en raar omdat de ESP8266 wel zich meldde met een ttyUSB0.

Ik heb dan maar eens het verschil opgezocht en in feite komt het hier op neer dat er enkel ttyUSB0 ( of ttyUSB1....) gemeld wordt als de aansluiting gebeurt via een " dedicated" device , zijnde een chip die de nodige drivers kunnen oproepen in de Linux kernel.

Zo'n chip kan van bv FTDI zijn of ook bekend is Prolific , SiLabs  enz...

Deze chip is wel aanwezig op  het ESP8266 bordje en was daardoor te zien als ttyUSB0.

Als er via ttyACMn gewerkt wordt dan is dit een generische verbinding rechtstreeks met de UART in de S2 chip en dit is hier ook het geval.Deze verbinding stamt eigenlijk nog uit de telex en  modem tijd en er kon ( kan) onderscheid gemaakt worden tussen data en/of commando's door een escape  commando geven met bv AT.

Eénmaal dit in orde kon ik ook  ttyACM0 selecteren in de IDE van Arduino en het programma laden en testen.

Wat ik wel ondervonden heb is , als ik het bordje laat werken op een externe voeding zonder USB kabel , het programma niet loopt.

Het was op te lossen door alle softwarelijnen die te maken had met de seriele poort uit te commentarieren. Dit is ook geen probleem omdat er toch geen PC aanhangt voor het doel dat ik het wil gebruiken.


Ik heb het bordje met het Lora shield getest in de nabijheid van een sterk antenneveld en dit bleef zorgeloos werken .




vrijdag 25 november 2022

LORA [ 4: Een sketch inladen en testen.]

Nu komt het echte werk.

We gaan proberen om enkele LoRa packets te verzenden .

Als handleiding heb ik volgende YT filmpje gevolgd. Althans voor een deel , want er waren wat probleempjes die we moesten oplossen .

 

https://www.youtube.com/watch?v=tO1hYr6hNa4

Using LoRa for P2P half-duplex long range communication  Sayanee Basu.

 

 

Dit voorbeeld is ook wat ik wil proberen , namelijk een P2P verbinding.

Zij gebruikt een Adafruit RFM95W board en ik natuurlijk het ESP8266 board.

Ik had voor alle zekerheid de connecties op mij boardje uitgetekend en dat kwam nu goed van pas ,want er is een verschil met de CS stuurlijn tussen die twee.

Daarom moet de soft worden aangepast . Ik wist ook niet goed hoe de registers van de ESP2866 aangesproken moesten worden , bij een Arduino is dat de pinnumer , maar is dat ook bij de ESP?

Gelukkig bleek achteraf dat ik het cijfer dat achteraan de benaming zat ( bv GPIO14) ik gewoon 14 mag declareen in de soft.

De soft is op Github te vinden en wel hier:

https://github.com/sandeepmistry/arduino-LoRa#semtech-sx1276777879-wiring

Je kan de gehele zip overhalen of zelf onder examples de INO file open doen en alles kopieren en in een nieuwe sketch plakken .

Ik heb hetzelfde voorbeeld genomen als in YT en de duplex genomen , ook al test ik maar met één board.

Zorg ervoor dat je eerst het boardje selecteert ( bij mij LOLIN Wemos D1 mini clone)

 

Dit is een deel van de sketch:

 

De omkaderde lijnen moet juist ingesteld worden . de csPin moet zekers 2 zijn met onze configuratie ,de andere , daar ben ik nog niet zekers over maar het werkt.

Héél belangrijk ! Stel de juiste frequentie in . In EU is dat 868, de E6 wilt zeggen 10 tot de 6de macht.( MHz dus)

Dan de sketch compileren en opladen naar het board.

Indien geen compileerfouten zou alles moeten werken .Start het board niet , dan zit er een kleine resetknop opzij het board.

Start de Serial Monitor op 9600 Baud  in de IDE en volg mee wat er gebeurt.


 


 Op mijn SDR stick zie ik het volgende:


De horizontale strepen zijn de packets ( chirps) van het LoRa boardje.

Test 1 geslaagd !




LORA [ 3: De Software : installeren en configureren van de IDE]

Nu moeten we de software kant aanpakken . Zoals beschreven kan de ESP2866 geprogrammerd worden vanuit de Arduino IDE.

Dus 

Stap 1:

Installeer de Arduino IDE. Ik heb versie 2.0.2

https://www.arduino.cc/en/software#future-version-of-the-arduino-ide

Stap 2:

Installeer in de IDE de voorbeeld-sketches voor onze ESP8266

Ga naar Github :  https://github.com/esp8266/Arduino

en haal het  Arduino-master.zip -bestand overen plaats deze in de Arduino map op uw PC.

Voor Windows weet ik het niet maar voor mijne Linux is dat onder mijn homedirectory/user




 U hoeft deze zip niet uit te pakken en deze bevat allemaal nieuwe sketches speciaal voor ons en andere ESP8266 boardjes

 

Als je een .zip bestand wilt toevoegen vanuit een andere map (bv Downloads) kan dit via  <Sketch> <include library> <Add.ZIP Library> Normaal moet je de nieuwe zip niet uitpakken !

Stap 3:

We moeten ook nog ons board bekend maken in de IDE. Dit wordt gedaan door een .json bestand. Hiervoor gaan we terug naar Github in dezelfde repository als hierboven en kopieren  de link beginnend e met https://arduino.......



Open de IDE en ga naar <File> <Preferences> en plak de link zoals te zien in onderstaande afbeelding in het veld " Additional board manager URL's "



Nu kunnen we kijken of ons board aanwezeig is in de IDE.

Ga naar <Tools> en zoek  <Board manager> , dit kan naargelang uw arduino versie anders voorkomen dan bij mij. Als je de manger open hebt zie je iets zoals onderstaande afbeelding( hier IDE versie 2.02)


Klik op de INSTALL knop en na installatie zul je onder <Tools> < board> <esp8266> allemaal nieuwe boardjes zien zitten . Wij gebruiken het (LOLIN) Wemos D1 mini en in mijn geval de clone.


Stap 4. Als laatste moet je nog de COM poort instellen waarmee je de soft overzet naar het boardje . In mijn Linux is dat /dev/ttyUSB0 maar in Windows zal dat de één of andere COM poortnummer zijn.

Sluit eerst je boardje aan en kijk dan in de IDE onder <Tools> <Port> welke je kan kiezen.

Hier komt de mosterd van :

https://www.youtube.com/watch?v=Q6NBnPfPhWE


donderdag 24 november 2022

LORA [ 2: De Hardware]

 Als hardware heb ik een paar modulekes in mijn schoot geworpen gekregen.

Deze al dan niet clones komen uit China.

Na wat onderzoek bleek ik de volgende modules in mijn bezit te hebben:

1.Lora module : Een sx1276 compatibele module, genaamd HPD13A


 

Onderkant

Bovenkant

 

 

2.Breakoutboard: Om bovenstaande module op te plaatsen en over te kunnen gaan naar SIL header connectors.De beschrifting zegt : Lora Node Micro

 


3.Een Wemos D1 mini  clone , genaamd D1 m1n1. Deze bevat een processor van het type ESP8266 met de nodige randcomponenten zoals een 3V3 regulator , een USB hardware driver en een micro USB aansluiting. Alsook 4MB geheugen en een blauw ledje. Als laatste heeft deze ook WiFI aan boord.

 


 

Hierbij het schema:

 

Deze processor zou kunnen omgaan met Arduino code , dus dat is mooi meegenomen.


Ik heb een kladschemaatje gemaakt omdat de aansluitbenamingen niet éénduidig zijn .

Elk boardje heeft wel zijn eigen scriptie en dat maakt het alleen maar verwarrend , want uiteindelijk gaan we de LoRa module moeten aansturen/uitlezen via een SPI verbinding en de stuurlijnen zullen moeten kloppen met de code in de software.

SPI is nieuw voor mij , maar we komen er wel uit.


Het resultaat van dit tekenen is dat de benaming van de I/O op het schema van Wemos uiteindelijk overeenkomt met de benaming op het HPDA13A boardje.

Bv : GPIO14 komt overeen met 14  op de HDPA13A print. Dit is het clock signaal.

De chipselect loopt dan weer naar GPIO 2 , dit zal ik in de gaten moeten houden in de soft

 

De frequentie waarop dit alles werkt is gebonden aan reglementen en is voor EU 868 MHz . Dit is een zo'n genaamde ISM band en beperkt in frequentie , vermogen en tijdsbezetting van de kanalen.


Naschrift: 30 nov 2022:

Ik heb het blokschema opnieuw geplaatst.Er was een pin verkeerdelijk benoemd. 

Pin 4 en 5 zijn nu juist ingetekend en zijn ook de I²C lijnen die men zou kunnen gebruiken om een OLED display aan te sluiten .



Het nieuwe blokschema


Nog een belangrijke opmerking:

De diodes zijn wel degelijk nodig als je ABP en vermoedelijk ook OTAA wilt doen en vormen in mijn ogen een OF poort .

 

De signalen die uit de module komen op IO0 ( DI0) en I01 ( DIO1) zijn gebruikt om respectievelijk CAD en RX timeout uit te sturen . Deze worden dan in de soft als één interrupt gezien 

De diode op IO2( DIO2) is niet gebruikt.

 

Zie dit stukje soft:

const lmic_pinmap lmic_pins = {
.nss = 2, // chip select on feather (rf95module) CS
.rxtx = LMIC_UNUSED_PIN,
.rst = 0, // reset pin
.dio = {15, 15, LMIC_UNUSED_PIN}, // assumes external jumpers [feather_lora_jumper]
// DIO1 is on JP1-1: is io1 - we connect to GPO6
// DIO1 is on JP5-3: is D2 - we connect to GPO5
};
 
 
 
Er wordt dus tweemaal naar pin 15 verwezen ( OF-poort knooppunt  ) voor de interrupts en de laatste  IO wordt gedeclareerd als LMIC unused pin. 

De commentaren in dat stukje  soft zijn voor ons niet geldig !
 
 

woensdag 23 november 2022

LORA [ 1: Het LORA bos]

Een zijsprongetje naar het LORA gebeuren .

Ik wil een P2P opzetten via tweemaal twee lora modules  ,maar als je YT bekijkt is het weer het spelletje van de bomen en het bos.

De modules zijn een  ESP8266 en een Wemos clone D1 mini

Zal terzijnertijd hier iets over posten .