
English: 
Hello YouTubers, here is the guy with the
Swiss accent.
In video #112 I introduced the LoRa technology
and in episode #115 We built a gateway for
the LoRaWAN network.
Today, we will create the missing link: We
will build a sensor node which can connect
to the things network and will send some messages.
In a future episode, of course, I will also
check, if we get a few miles of range…
So, let’s start.
From the past videos, we know, that we have
to find a module which is capable to communicate
in the 868 MHz band (at least for Europe).
If we search our usual source, we get a big
choice of such modules:
SI4463
SI4432

French: 
Bonjour les YouTubeurs, voici le gars avec
l'accent suisse. Dans la vidéo #112, j'ai
présenté la technologie LoRa et à l'épisode
#115 nous avons construit une passerelle
pour le réseau LoRaWAN. Aujourd'hui, nous
créerons le chaînon manquant: nous construirons
un nœud LoRa pour capteur qui peut se brancher
au réseau Internet des objets et enverra
des messages. Dans un prochain épisode,
bien sûr, je vérifierai aussi, si nous obtenons
quelques kilometres de portée ...
Alors,
commençons.
À partir des dernières vidéos,
nous savons qu'il faut trouver un module
capable de communiquer dans la bande de
868 MHz (du moins pour l'Europe). Si nous
recherchons chez notre source habituelle,
nous obtenons un grand choix de ces modules:
SI4463
SI4432
CC1101
Modules

English: 
CC1101
ASK/FSK Modules
RFM69HW
RFM95W
NRF905
SX1276
RFM12B
Each of these boards are based on another
chip.
Each of these chips needs another library.
Fortunately, we get libraries for all of them.
Most of the modules can be purchased for the
315/433/868/915MHz bands.
This does not mean, that one module can be
used for all bands.
The passive components on the boards like
capacitors and inductors are optimized only
for one band.
This means, that you have to decide the band
when you order the module.
The prices for the modules also vary.

French: 
ASK / FSK
RFM69HW
RFM95W
NRF905
SX1276
RFM12B
Chaque module de ce tableau est basé sur une
puce différente. Chacun de ces chips a besoin
d'une bibliothèque différente. Heureusement,
il existe des librairies pour chacune des
puces.
La plupart des modules peuvent être
achetés pour les bandes 315/433/868/915MHz.
Cela ne signifie pas, qu'un seul module
peut être utilisé pour toutes les bandes.
Les composants passifs sur les modules comme
les condensateurs et les inductances ne
sont optimisés que pour une bande. Cela signifie
que vous devez décider de la fréquence lorsque
vous commandez le module.
Les prix des modules
varient également. Par exemple, vous obtenez

French: 
un module RFM69HW pour moins de 3 $. Le
RFM95W du même fournisseur coûte au moins
7 $. Alors, pouvons-nous simplement utiliser
le module le moins cher ou existe-t-il une
autre différence entre ces modules?
Nous
avons déjà vu que la bande de fonctionnement
et les librairies nécessaires peuvent être
différentes. Quoi d'autre? Si deux humains
veulent se parler, nous devons être assez
proches pour nous entendre. Et parce que
nos oreilles sont réglées sur la même bande
de fréquence que la bouche de notre homologue,
nous nous entendons. Mais ce n'est pas suffisant.
Nous devons également utiliser la même langue,
ou l'un des deux doit comprendre plus d'une
langue. Sinon, nous entendons ce que l'autre
personne dit, mot à mot, mais nous ne comprenons
pas. Une chose similaire se produit dans
les systèmes radio. Même si l'émetteur et

English: 
For example, you get a RFM69HW module for
less than 3$.
The RFM95W from the same supplier costs at
least 7$.
So, can we just use the cheapest module or
is there another difference between these
modules?
We already saw that the operating band and
the needed libraries can be different.
What else?
If two humans want to talk to each other,
we have to be close enough to hear each other.
And because our ears are tuned to the same
“frequency band” as the mouth of our counterpart,
we hear each other.
But this is not sufficient.
We also have also to use the same language,
or one of the two has to understand more than
one language.
Otherwise, we hear what the other person says,
word by word, but we do not understand.
A similar thing happens in radio systems.

English: 
Even if the sender and the receiver are tuned
to the same frequency, they also have to use
the same modulation principle.
Modulation is used to “load” your data
to the channel.
As an example I use FSK modulation, which
means frequency shift keying.
With this modulation principle, we chose two
frequencies, let’s say 868 MHz minus 100
Hz and 868MHz plus 100 Hz.
If we want now to transport a logical zero,
the transmitter sends the 868 minus 100 frequency.
If we want to transport a logical one, it
uses the 868 plus 100 Hz frequency.
The receiver on the other hand, knows, if
it “hears” a minus frequency that it is

French: 
le récepteur sont réglés sur la même fréquence,
ils doivent également utiliser le même principe
de modulation. La modulation est utilisée
pour "injecter" vos données sur le canal.
Par exemple, j'utilise la modulation FSK,
c'est-à-dire le changement de fréquence.
Avec ce principe de modulation, nous avons
choisi deux fréquences, disons 868 MHz moins
100 Hz et 868MHz plus 100 Hz. Si nous voulons
maintenant transporter un zéro logique,
l'émetteur envoie la fréquence 868 moins
100. Si nous voulons transporter un 1 logique,
il utilise la fréquence 868 plus 100 Hz.
Le
destinataire, d'autre part, sait, s'il «entend»
une fréquence inférieur qu'il s'agit d'un

English: 
a logical zero and vice versa.
So, it can rebuild the logical signal.
Why is this necessary?
Without that, we just could mount an antenna
to the sending pin and one on the receiving
pin of our Arduinos.
Just try it and you will discover, that this
does not work…
At least not over a long distance.
If we now check the data sheets of our modules,
we see, that they speak and understand three
completely different “languages”
1.
FSK or GFSK or OOK
2.
MSK or GMSK
3.
LoRa
Each of these languages have many dialects,
and if you want to have a successful communication,
also the dialects have to be the same.
This is, why often people use the same chips
on both sides of their networks.

French: 
zéro logique et vice versa. Ainsi, il peut
reconstruire le signal logique.
Pourquoi
cela est-il nécessaire? Sans cela, nous
pourrions tout simplement placer une antenne
sur la broche d'envoi et un fil sur une
broche de réception de nos Arduinos. Essayez-le
et vous découvrirez que cela ne fonctionne pas ...
Du moins certainement pas sur une
longue distance.
Si nous vérifions maintenant
les fiches techniques de nos modules, nous
voyons qu'ils parlent et comprennent trois
"langues" complètement différentes
1. FSK, GFSK ou OOK
2. MSK ou GMSK
3. LoRa
Chacune de ces langues a de nombreux dialectes,
et si vous voulez avoir une communication
réussie, les dialectes doivent être identiques.
C'est pourquoi, souvent, les gens utilisent
les mêmes puces des deux côtés de leurs
réseaux. De cette façon on est sûr que l'expéditeur

English: 
Then, they are sure, that the sender and the
receiver understand each-other.
So, for our purpose, we only can choose the
RFM95W or the SX1276 modules, because only
these understand, in addition to other modulation
principles, also LoRa.
So, they are quite talented modules…
Unfortunately, they are also the most expensive
ones.
And because LoRa technology is patented, the
RFM95W module behaves very similar to the
SX1276.
Hope got a license to build this chip from
Semtech.
As an advantage, we can use the same libraries
for both modules.
So, the first two decisions are done.
I use a RFM95W module on 868 MHz and the modulation
will be LoRa, because the Gateway only accepts

French: 
et le récepteur se comprennent.
Donc, pour
notre besoin, nous ne pouvons choisir que
les modules RFM95W ou SX1276, car seulement
ceux-ci comprennent, en plus des autres
principes de modulation, également LoRa.
Donc, ce sont des modules assez talentueux ...
Malheureusement, ils sont aussi les
plus couteux. Et comme la technologie LoRa
est brevetée, le module RFM95W se comporte
de façon très semblable au SX1276. Hope RF
a obtenu une licence pour construire cette
puce de Semtech. Comme avantage, nous
pouvons utiliser les mêmes librairies pour
les deux modules. Donc, les deux premières
décisions sont prises. J'utilise un module
RFM95W à 868 MHz et la modulation sera LoRa,

English: 
this “language”.
Just to avoid some confusion: The RFM95W modules
use RF96 chips.
This got me confused at first.
This time we do not use an ESP8266 as a microcontroller
because we will communicate through LoRa and
do not need Wi-Fi.
And because we want to use our nodes for measuring
data, we profit from the many pins, especially
also analog pins, and the vast number of compatible
sensors of the Arduino.
And there is a nice Dragino shield for the
Arduino available.
I use it instead of soldering wires to the
RFM95W.
In addition, the module has the needed level
shifters from 5 to 3.3 volt already built-in.
So, the price is more than ok compared to
the “barebone” module.

French: 
car la Passerelle n'accepte que cette "langue".
Juste pour éviter une certaine confusion:
les modules RFM95W utilisent des chips RF96.
Cela m'a confondu au début. Cette fois,
nous n'utilisons pas un ESP8266 comme microcontrôleur
parce que nous communiquerons via LoRa et
ne nécessitons pas de Wi-Fi. Et parce que
nous voulons utiliser nos noeuds pour mesurer
les données, nous profitons des nombreuses
broches, en particulier des broches analogiques,
ainsi que du grand nombre de capteurs compatibles
avec Arduino. Et il y a un belle carte d'interface
Dragino pour l'Arduino disponible. Je l'utilise
au lieu de souder des fils sur le RFM95W.
En outre, le module possède les convertisseurs
de niveau requis de 5 à 3,3 volts déjà intégrés.
Donc, le prix est plus que correct par rapport
au module à nu "barebone". Maintenant,
nous avons tout le nécessaire pour notre

English: 
Now we have everything necessary for our LoRa
node.
I just plug the Dragino shield onto the Arduino
Uno and make sure, that the jumpers are set
like in this picture.
Otherwise, it might not work.
Please do not forget to connect the antenna
before you power the Arduino.
Next, we need a library for our hardware which
is compatible with the LoRaWAN network.
It is written by IBM in Switzerland.
I do not exactly know, why they wrote such
a library, it might have a relation with the
fact, that IBM is also the inventor of the
MQTT protocol.
This library is called “LMIC” and had
to be ported to the Arduino IDE and therefore
looks a little different than what we are
used to.
You see this for example in the way the pins
are defined.
They are defined in a structure, not as we
are used, as #defines.
Nevertheless, these definitions are important.

French: 
noeud LoRa. Je viens de brancher l'interface
Dragino sur l'Arduino Uno et assurez-vous
que les cavaliers sont réglés comme dans
cette image. Sinon, cela pourrait ne pas
fonctionner. N'oubliez pas de connecter
l'antenne avant d'alimenter l'Arduino. Ensuite,
nous avons besoin d'une librairie pour notre
matériel compatible avec le réseau LoRaWAN.
Elle est écrit par IBM en Suisse. Je ne
sais pas exactement pourquoi IBM a écrit
une telle librairie, il pourrait avoir une
relation avec le fait que IBM est également
l'inventeur du protocole MQTT. Cette librairie
s'appelle "LMIC" et a dû être porté pour
l'IDE Arduino et est donc un peu différente
de ce que nous sommes habitués de voir.
Vous voyez cela par exemple dans la façon
dont les broches sont définies. Ils sont
définis dans une structure, non comme nous
l'utilisons, comme avec des #defines. Néanmoins,
ces définitions sont importantes. J'ai eu

English: 
I had to find this out the hard way and it
costed me quite a long time to find the right
definition of these pins for the Dragino board.
So, here they are:
If you want to wire a bare module to your
Arduino, take care that your wiring is reflected
in these definitions.
Otherwise you just scratch your head, and
nothing goes.
So, we use the “hello world” example for
our first experiment.
You find the link in the description.
In addition to the pin definition, another
area of the sketch is important: The different
“keys” used by LoRaWAN.
You find them here and they are called: Network
key, application key, and device address.
But where do we find these numbers?
We have to remember, that we want to connect
our node via a gateway to the TTN network.
So, we have to go to their homepage, and there,
to the console.

French: 
de la difficulté à trouver ça et cela m'a
pris beaucoup de temps pour déterminer la
bonne définition de ces broches pour l'interface
du Dragino. Donc, voici: si vous souhaitez
câbler un module nu à votre Arduino, veillez
à ce que votre câblage soit reflété dans
ces définitions. Sinon, vous vous grattez
la tête, et rien ne fonctionne. Donc, nous
utilisons l'exemple «Hello World» pour notre
première expérience. Vous trouvez le lien
dans la description. En plus de la définition
de broche, une autre zone de notre programme
est importante: les différentes
«clés» utilisées par LoRaWAN. Vous les trouverez
ici et elles sont appelées: clé réseau,
clé d'application et adresse de l'appareil.
Mais où trouvons-nous ces chiffres? Nous
devons nous rappeler que nous voulons connecter
notre nœud via une Passerelle vers le réseau
TTN. Donc, nous devons aller à leur page
d'accueil et un fois rendu, à la console.

French: 
C'est la même page que nous avons utilisée
pour définir notre Passerelle. Mais maintenant,
nous devons passer à la partie des applications.
Ici, nous devons créer une nouvelle application
et lui donner un nom. Je l'appelle "YouTube
Explanation". Assurez-vous, vous respectez
les conventions de dénomination et entrez
une description. Ensuite, vous avez à choisir
le gestionnaire. Maintenant, vous voyez
une application EUIS et une clé d'accès.
Les deux nombres ne sont actuellement pas
importants. Nous voyons également que cette
application n'a pas de dispositifs définis.
C'est donc la prochaine étape à suivre.
Nous créons un tel dispositif. Nous entrons
notre nom et un "faux" EUI. Ensuite, nous
sauvegardons le dispositif. La méthode d'activation
est OTA, mais notre appareil ne peut être

English: 
This is the same page we used to define our
gateway.
But now, we have to go to the applications
part.
Here, we have to create a new application
and give it a name.
I call it “YouTube Explanation”.
Make sure, you comply with the naming conventions
and enter a description.
Then, you chose the handler.
Now, you see an Application EUIS and an access
key.
Both numbers are currently not important.
We see also, that this application has no
devices defined.
So, that is the next step to do.
We create such a device.
We enter our name and a “fake” EUI.
Then, we save the device.

English: 
The activation method is OTA, but our device
can only be activated with the ABP method.
So, we go into the settings tab and change
that.
Now, we get the needed keys for our sketch.
Fortunately, you can just click on this button,
and you get the string exactly as needed in
the sketch.
Make sure, that “msb” is shown.
Just cut- and paste the Network session key
into the NWskey , the App session key into
appskey, and the device address into devaddr.
Make sure, you add a 0x in front of the devaddr.
Now we are ready to go and we can compile
and upload the sketch.
Make sure, your node can receive signals from
the nearest gateway.
In my case, this is not very hard, because
it is only a few centimeters away…
Now, the magic should start and the node should
log into the TTN network and start to send

French: 
activé que par la méthode ABP. Nous entrons
donc dans l'onglet paramètres et modifions
cela. Maintenant, nous obtenons les clés
nécessaires pour notre esquisse "sketch".
Heureusement, vous pouvez simplement cliquer
sur ce bouton, et vous obtenez la chaîne
exactement conforme au besoin de l'esquisse
"sketch". Assurez-vous que "msb" s'affiche.
Il suffit de couper et coller la clé de
session réseau dans la touche NWskey, la
clé de la session de l'application dans appskey
et l'adresse de l'appareil dans devaddr.
Assurez-vous, vous ajoutez un 0x devant
le devadd. Maintenant, nous sommes prêts
à partir et nous pouvons compiler et télécharger
l'esquisse. Assurez-vous que votre noeud
peut recevoir des signaux depuis la passerelle
la plus proche. Dans mon cas, ce n'est pas
très difficile, car elle se trouve à quelques
centimètres ... Maintenant, la magie devrait
commencer et le nœud devrait se brancher

English: 
messages.
During testing, we have to pay attention to
the “fair access policy”.
It limits the time we can use a gateway, even
if it is our own one.
TTN’s policy is as follows:
• An average of 30 seconds’ uplink time
on air, per day, per device.
• At most 10 downlink messages per day,
including the ACKs for confirmed uplinks.
Which means:
For 10 bytes of payload, this translates in
(approx.):
• 20 messages per day at SF12
• 500 messages per day at SF7
You find the link to this policy in the description.
But what are SF12 and SF7?
SF means “Spreading factor” and explains,
how data is transferred over the air.
The lower the number, the faster the transmission.

French: 
au réseau TTN et commencer à envoyer des
messages. Au cours des essais, nous devons
faire attention à la «politique d'accès
équitable». Cela limite le temps que nous
pouvons utiliser une passerelle, même si
c'est la notre. La politique de TTN est
la suivante:
• Un temps de liaison de 30
secondes en moyenne par jour, par dispositif.
• Au plus 10 messages par liaison descendante
par jour , y compris les ACK pour les confirmations.
Cela signifie: pour 10 octets de charge utile,
cela se traduit par (environ):
• 20 messagespar jour à SF12 
• 500 messages par jourà SF7
Vous trouvez le lien vers cette politique
dans la description. Mais qu'est-ce que
SF12 et SF7? SF signifie "Spreading Factor"
facteur d'étalement et définie comment les
données sont émis dans les airs. Plus le

English: 
But of course, if your channel is somehow
disturbed exactly during this short transmission,
nothing arrives at the gateway.
If you use higher SF numbers, the transmission
takes longer and the chance for a successful
arrival is therefore higher, but also the
air time is longer.
So, always use the smallest SF factor possible
for your communication if you need many messages
per day.
And th highest, if you want to be more sure
it arrives.
And no, I did not test what happens, if you
exceed this limit.
Are there other SF numbers outside the range
from 7 to 12 available?
At least, the node software only accepts those
SFs.
After this theoretical excursion, we return
to the console.
And really, messages arrived.
And the message, again is two bytes long and
the two asci letters are “hi”.
If we open the message, we see, which gateway
was the receiver of the message.

French: 
nombre est petit, plus la transmission est
rapide. Mais, bien sûr, si votre chaîne
est perturbée lors de cette courte transmission,
rien n'arrive à la passerelle. Si vous utilisez
des SF plus élevés, la transmission prend
plus de temps et la chance d'une arrivée
réussie est donc plus élevée, mais aussi
le temps d'antenne est plus long. Donc,
utilisez toujours le plus petit facteur SF
possible pour votre communication si vous
avez besoin de plusieurs messages par jour.
Et un SF plus élevé, si vous voulez être
plus sûr qu'il arrive. Et non, je n'ai pas
testé ce qui se passe, si vous dépassez
cette limite.
Après cette excursion théorique, nous
retournons à la console. Et vraiment, des
messages sont arrivés. Et le message, encore
deux octets de long et les deux lettres
ascii sont "hi". Si nous ouvrons le message,
nous voyons, quelle passerelle était le

French: 
destinataire du message. Je suppose qu'il
est également possible qu'un message soit
reçu par deux passerelles ou plus. Donc,
nous devrions voir cela ici. J'essaierai
plus tard cette semaine à partir d'une colline
près de chez moi. Là, je devrais pouvoir
me connecter à plus d'une passerelle.
Un autre fait est également intéressant: Le
canal utilisée pour la communication change
avec chaque message. Au moins, nous voyons,
que chaque message utilisait un canal différent,
l'un après l'autre. Ceci est particulièrement
important, car si un canal est bloqué pendant
plus longtemps par un autre signal. Nous
avons donc encore la probabilité, qu'au moins
tous les autres messages peuvent être transférés
et reçues. Nous voyons également le SF qui
a été utilisé par mon noeud. Et je peux
facilement le changer ici dans l'esquisse
"sketch". Ainsi, c'est la fin des travaux

English: 
I assume, that it is also possible, that a
message is received by two or more gateways.
Then, we should see this here.
I will try this later in the week from a hill
near my home.
There, I should be able to connect to more
than one gateway.
Another fact is also interesting: The channel
used for the communication changes with every
message.
At least, we see, that each message used a
different channel, one after the other.
This is particularly important, if one channel
is blocked for a longer time by another signal.
Then, we still have the chance, that at least
all other messages can be transferred.
We see also the SF which was used by my node.
And I can easily change it here in the sketch.
So, this is the end of the works in the lab.
Now, I will place the gateway outside my house
and try the node in the “wilderness”.

French: 
dans l'atelier. Maintenant, je vais placer
la passerelle à l'extérieur de ma maison
et essayer le nœud dans la "nature". J'espère,
cette vidéo a été utile ou au moins intéressante.
Au revoir.

English: 
I hope, this video was useful or at least
interesting for you.
Bye
