Digital Electronics

Netwerken: pin de staart op de headless raspberry pi

enthousiast om dieper in robotica te worden nadat ik mijn teen in het water dompelt met mijn BB-8 droid, kocht ik een Raspberry PI 3-model B. De eerste stap was om verbinding te maken eraan. Maar hoewel het heeft ingebouwd 802.11n draadloos, had ik in het begin geen draadloos toegangspunt, hoewel ik uiteindelijk er een heeft gekregen. Dat gaf aan dat ik verschillende manieren heb doorgemaakt om het te vinden en ermee verbinding te maken met mijn desktopcomputer. Zeker zijn er anderen die op zoek zijn naar hetzelfde, dus laten we de geheime incantaties bekijken die worden gebruikt om een ​​PI rechtstreeks aan te sluiten op een computer, en indirect.

Waarom maakt u verbinding met de PI van mijn desktopcomputer? Er zijn tenslotte kleine monitoren en toetsenborden die hackers vaak gebruiken om PI-laptops en PI-tabletten te maken. Omdat ik de PI in verschillende robots zou insluiten, zag ik het niet nodig om er een afzonderlijke monitor en toetsenbord voor te kopen, maar ik zag er een beetje mee bezig.

De monitor van mijn desktop maakt gebruik van een VGA-connector, maar de VGA-To-HDMI-adapter die ik meegemaakt met de PI werkte niet. Ook gebruikt het oude Keytronic-toetsenbord van mijn desktop een PS / 2-connector, dus dat was ook niet bruikbaar. Hoewel PS / 2-tot-USB-adapters bestaan, liet mijn onderzoek zien dat ik degene nodig had die USB Smarts erin heeft, omdat mijn toetsenbord usb prediveert en geen eigen elektronica heeft. (Maar het heeft een zoete, diepe tactiele toetsen!) Mijn PI zou hoofdloos blijven en ik zou het programmeren door er verbinding mee te maken vanaf mijn desktopcomputer.

Rechtstreeks verbinden met behulp van Ethernet-kabel

Mijn huismodem was ook oud, zonder draadloos. Het had ook slechts één Ethernet-poort. Dat gaf aan dat ik mijn desktopcomputer kon aansluiten op het modem of naar de Raspberry PI, maar niet allebei tegelijkertijd. Dus bij Unboxing van de PI, was de enige manier om het op mijn computer aan te sluiten om het Ethernet-koord uit het modem te halen en in plaats daarvan in de PI aan te sluiten. Dat gaf geen internettoegang aan tijdens het werken met de PI, nauwelijks ideaal, maar goed genoeg om te zien of de PI helemaal werkte.

Maar voor mijn computer om met de PI te praten, had ik het IP-adres van de PI nodig. Voor degenen die niet bekend zijn met IP-adressen, bestaan ​​ze uit 4 nummers variërend van 0 tot 255 gescheiden door stippen. Bijvoorbeeld:

169.254.95.208

Het is echt een 32-bits nummer, maar het is op die manier geschreven voor leesbaarheid.

Netwerk- en delencentrum in Windows

IP-adres en subnetmasker

Naar het Windows-configuratiescherm op mijn desktop en vervolgens het netwerk en het delencentrum, kon ik zien dat er nu een netwerk bestond.

Als u op de weergave-status klikt en dieper gaat, vond ik een aantal nuttige informatie. De eerste was het IP-adres van de desktopcomputer, 169.254.95.208. De IPv4 vertelt me ​​dat het gebruik van Internet Protocol-versie 4. De IP-adressen in IPv6 verschillen tenminste in dat ze vier keer zo lang zijn.

Verder vertelde de aanwezigheid van het IPv4-subnetmasker, 255.255.0.0 me dat een subnet- of subnetwerk, werd gevormd tussen de twee machines. Een subnet is een groep machines die een kleiner netwerk maken dat al dan niet deel uitmaakt van een grotere. Hun IP-adressen beginnen allemaal met dezelfde binaire waarden, hoewel hoe veel bits aan het begin gemeenschappelijk hebben varieert. Hoe weet je welke bits veel voorkomen?

Het subnetmasker gebruiken
Dat is waar het subnetmasker binnenkomt. Om erachter te komen welke bits, neem het subnetmasker en doe een beetje en met het IP-adres van een maker op dat subnet. Naarmate het diagram wordt weergegeven, was het resultaat in mijn geval 169.254.0.0, wat aangeeft dat het IP-adres van de PI moet beginnen met 169.254. Een andere manier van schrijven van het subnetmasker is in CIDR-notatie. In CIDR-notatie wordt het IP-adres gevolgd door een / en vervolgens het aantal gedeelde bits. In dit geval zou het 169.254.0.0/16 zijn. De laatste twee nummers zijn nullen, maar ze hoeven niet te overwegen dat de 16 je vertelt wat je moet houden. Deze CIDR-notatie zal binnenkort handig zijn.

Hoewel de 169.254 werd gedeeld, heeft dat nog steeds 65.536 (256 × 256) mogelijke combinaties voor de twee resterende cijfers achtergelaten. Om het netwerk te scannen, door elke mogelijke combinatie van cijfers te gaan, gebruikte ik NMAP, downloadbaar van NMAP.org.

‘NMAP -SN’ Scan Resultaten
Zoals getoond in de momentopname, rende ik het in een Cygwin-venster, hoewel er ook GUI-versies beschikbaar zijn. Ik heb de volgende opdrachtregel gebruikt.

NMAP -SN 169.254.0.0/16

Merk op dat het subnetmasker wordt gegeven met behulp van CIDR-notatie. De sectie over de Raspberry PI die je in de momentopname ziet verscheen na ongeveer 10 minuten, wat aangeeft dat het zo lang duurde om te scannen van 169.254.0.0 tot 16.254.37.77, het IP-adres van de PI. Hoewel dat was waar ik naar op zoek was, verliet ik het toch en de volledige scan duurde net meer dan vijfenveertig minuten. Gedurende die tijd vond het ook mijn desktopcomputer, de gastheer waar het de scan aan het doen was. Had het IP-adres van de PI 169.254.255.255, dan zou het de volledige vijfenveertig minuten hebben genomen voordat ze het vonden.

Het IP-adres van de PI bleef 169.254.37,77 in de shutdowns en dus opnieuw scannen was niet nodig.

Opstarten van een terminal- en vnc-desktopPuTTY for SSH terminal

VNC desktop

Now that I had it connected, I needed a terminal running a safe shell (SSH) into the Pi on the desktop computer. Setting up the terminal was simply a matter of downloading the popular PuTTY program and running it. In the Session section, I filled in the Pi’s IP address, port 22, and made sure SSH was selected. That opened up a terminal window with a login prompt. The default username is pi and the password is raspberry. Of course the first thing I did was run the passwd utility to change the password.

Alternatively you can get a graphical terminal instead using VNC. This is a graphical desktop that runs in a window on you desktop computer but is really a terminal into the Pi.

Connecting by means of Ethernet using A Wireless Router

It wasn’t long after getting my Pi that I made a decision to switch to a wireless router / fiber modem combo. As a bonus, this upgrade also includes multiple Ethernet ports. I set up my desktop computer to use wireless, but I couldn’t do the same for the Pi just yet. I had to do some configuration on the Pi to set up the wireless, and so I had to connect using Ethernet first.

Router network information in a browser
Connecting to the router with Ethernet was far much easier than the direct-connection method covered above considering that no scanning was involved. Once I’d connected the Pi using an Ethernet cable, I simply brought up a browser on my desktop computer and typed the router’s IP address into the browser’s URL bar at the top. This is an address like 192.168.1.1 or 192.168.2.1, but with http:// in front of it, though some browsers don’t need the http://. check your router/modem manual.

What you see depends on your modem, but mine displayed a network graph at the bottom with the Pi’s IP address, 192.168.2.14. with that I was able to bring up a terminal using PuTTY as described above.

If you want to remain using Ethernet between your Pi and the modem then you’re done. but I wanted to go wireless so that my robots could wander around without a trailing Ethernet cable. now that I had a terminal into the Pi I could go on to the next step.

Connecting Wirelessly

The Raspberry Pi 3 model B has wireless built-in, but if you have a version without wireless then you can also get a wireless dongle that plugs into one of the Pi’s USB ports. Before you can connect to the headless Pi wirelessly, you’ll still need to connect to it using one of the above methods first, and do some configuration on the Pi.

I brought up a terminal and logged in as described above. I needed to put my wireless network name and network password into the configuration file /etc/wpa_supplicant/wpa_supplicant.conf.  But for safety reasons, I didn’t want the password to be in plain text.

Using wpa_passphrase and editing wpa_supplicant.conf
Editing wpa_supplicant.conf
So I ran wpa_passphrase “bobsnetname” “bobsnetpassword” and highlighted the output, which in this terminal, copies the highlighted text to the clipboard. “bobsnetname” and “bobsnetpassword” are of course fictitious.

I then edited /etc/wpa_supplicant/wpa_supplicant.conf and pasted from the clipboard by right-clicking. The pasted text still included a line with the password in clear text. It was commented out but nonetheless, visible, so I deleted it.

After saving, and exiting the editor I disconnected the Ethernet cable. A running program called wpa-supplicant should have taken only a few seconds after the file was changed to notice it and get the wireless going. And so after waiting a few seconds I ran ping google.com. Het werkte. The Pi was connected wirelessly.

Had it not been then I could have restarted it manually by running sudo wpa_cli reconfigure. This also reports the interface name, wlan0 in my case.

Running ‘ifconfig wlan0’
To additionally test it, and to get the Pi’s IP address, I ran ifconfig wlan0 and looked for the IP address beside the inet addr. It was there and with it I could connect to the Pi and start programming robots.

Those were my experiences in connecting to my Raspberry Pi, but we know that there are lots of Raspberry Pi users on Hackaday. What methods have you used, what traps have you found and what ideas do you have for getting out of them? let us know in the comments so that others don’t fall into them too.

Leave a Reply

Your email address will not be published. Required fields are marked *