NETWORKING: PIN THE TAIL ON THE HEADLESS RASPBERRY PI

eager to get deeper into robotics after dipping my toe in the water with my BB-8 droid, I purchased a Raspberry Pi 3 model B. The first step was to connect to it. but while it has built-in 802.11n wireless, I at first didn’t have a wireless access point, though I eventually did get one. That indicated I went through different ways of finding it and connecting to it with my desktop computer. definitely there are others seeking to do the same so let’s take a look at the secret incantations used to connect a Pi to a computer directly, and indirectly.

Why connect to the Pi from my desktop computer? After all, there are small monitors and keyboards that hackers frequently use to make Pi laptops and Pi tablets. Since I was going to be embedding the Pi in various robots,  I saw no need to purchase a separate monitor and keyboard for it, but I did look a little into doing so.

My desktop’s monitor uses a VGA connector but the VGA-to-HDMI adapter I gotten along with the Pi didn’t work. Also, my desktop’s ancient KeyTronic keyboard uses a PS/2 connector so that wasn’t usable either. though PS/2-to-USB adaptors do exist, my research showed that I’d need the one that has USB smarts in it, as my keyboard predates USB and has no such electronics of its own. (But it does have sweet, deep tactile keys!) My Pi would remain headless, and I’d program it by connecting to it from my desktop computer.

Connecting directly by means of Ethernet Cable

My home modem was also ancient, having no wireless. It also had only one Ethernet port. That indicated I could connect my desktop computer either to the modem or to the Raspberry Pi but not both at the same time. So on unboxing the Pi, the only way to connect it to my computer was to unplug the Ethernet cord from the modem and plug it into the Pi instead. That indicated no Internet access while working with the Pi, hardly ideal, but good enough to see if the Pi worked at all.

But for my computer to speak to the Pi, I needed the Pi’s IP address. For those not familiar with IP addresses, they consist of 4 numbers ranging from 0 to 255 separated by dots. ឧទាហរណ៍:

169.254.95.208

It’s really a 32-bit number but it’s written that way for readability.

Network and Sharing center in Windows
IP address and subnet mask

Going to the Windows control panel on my desktop and then the Network and Sharing Center, I could see that a network now existed.

Clicking on view status and going deeper I found some beneficial information. The first was the IP address of the desktop computer, 169.254.95.208. The IPv4 tells me that it’s using Internet Protocol version 4. The IP addresses in IPv6 differ at least in that they’re four times as long.

Further, the presence of the IPv4 Subnet Mask, 255.255.0.0 told me that a subnet, or subnetwork, had been formed between the two machines. A subnet is a group of machines making up a smaller network that may or may not be a part of a larger one. Their IP addresses all start with the same binary values, though just how lots of bits at the beginning they have in common varies. how do you know which bits are common?

Using the subnet mask
That’s where the subnet mask comes in. To find out which bits, take the subnet mask and do a bitwise and with the IP address of a maker on that subnet. As the diagram shows, the result in my case was 169.254.0.0, indicating that the Pi’s IP address must start with 169.254. another way of writing the subnet mask is in CIDR notation. In CIDR notation the IP address is followed by a / and then the number of shared bits. In this case it would be 169.254.0.0/16. The last two numbers are zeros but they need not be considering that the 16 tells you what to keep. This CIDR notation will come in helpful shortly.

Though the 169.254 was shared, that still left 65,536 (256×256) possible combinations for the two remaining numbers. To scan the network, going through every possible combination of numbers, I used nmap, downloadable from nmap.org.

‘nmap -sn’ scan results
As shown in the snapshot, I ran it in a cygwin window though there are GUI versions available too. I used the following command line.

nmap -sn 169.254.0.0/16

Note that the subnet mask is given using CIDR notation. The section about the Raspberry Pi that you see in the snapshot appeared after around 10 minutes, indicating that it took that long to scan from 169.254.0.0 to 169.254.37.77, the Pi’s IP address. even though that was what I was looking for, I left it going anyway and the full scan took just over forty-four minutes. during that time it also found my desktop computer, the host from which it was doing the scan. had the Pi’s IP address been 169.254.255.255 then it would have taken the full forty-four minutes before finding it.

The Pi’s IP address continued to be 169.254.37.77 across shutdowns and so scanning again was not necessary.

Starting Up A terminal and VNC Desktopputty សម្រាប់ស្ថានីយ SSH
ផ្ទៃតុ VNC

ឥឡូវខ្ញុំបានភ្ជាប់វាខ្ញុំត្រូវការស្ថានីយដែលដំណើរការសែលសុវត្ថិភាព (អេសអេស) ចូលក្នុងភីអាយអេសនៅលើកុំព្យូទ័រលើតុ។ ការតំឡើងស្ថានីយនេះគ្រាន់តែជាបញ្ហានៃការទាញយកកម្មវិធី Putty ពេញនិយមហើយដំណើរការវា។ នៅក្នុងផ្នែកវេនខ្ញុំបានបំពេញអាសយដ្ឋាន IP របស់ PI, ច្រកកំពង់ផែ 22 ហើយបានធ្វើឱ្យប្រាកដថា ssh ត្រូវបានជ្រើសរើស។ ដែលបានបើកបង្អួចស្ថានីយដែលមានប្រអប់បញ្ចូលចូល។ ឈ្មោះអ្នកប្រើលំនាំដើមគឺភីអាយហើយពាក្យសម្ងាត់គឺ Raspberry ។ ជាការពិតណាស់រឿងដំបូងដែលខ្ញុំបានធ្វើគឺដំណើរការឧបករណ៍ប្រើប្រាស់ Passwd ដើម្បីផ្លាស់ប្តូរពាក្យសម្ងាត់។

ម៉្យាងវិញទៀតអ្នកអាចទទួលបានស្ថានីយក្រាហ្វិកជំនួសឱ្យការប្រើប្រាស់ VNC ។ នេះគឺជាផ្ទៃតុក្រាហ្វិកដែលដំណើរការក្នុងបង្អួចមួយនៅលើកុំព្យូទ័រលើតុអ្នកប៉ុន្តែពិតជាស្ថានីយចូលក្នុងភីអាយ។

ការភ្ជាប់ដោយមធ្យោបាយអ៊ីសឺរណិតដោយប្រើរ៉ោតទ័រឥតខ្សែ

វាមិនយូរប៉ុន្មានបន្ទាប់ពីទទួលបានភីអាយរបស់ខ្ញុំដែលខ្ញុំបានធ្វើការសម្រេចចិត្តប្តូរទៅបន្សំម៉ូឌុល Roger ដែលឥតខ្សែ / ជាតិសរសៃ។ ជាប្រាក់រង្វាន់ការធ្វើឱ្យប្រសើរនេះក៏រួមបញ្ចូលផងដែរនូវច្រកអ៊ីសឺរណិតជាច្រើន។ ខ្ញុំបានតំឡើងកុំព្យួទ័រផ្ទៃតុរបស់ខ្ញុំដើម្បីប្រើឥតខ្សែប៉ុន្តែខ្ញុំមិនអាចធ្វើដូចគ្នាសម្រាប់ភីអាយបានទេ។ ខ្ញុំត្រូវធ្វើការកំណត់រចនាសម្ព័ន្ធមួយចំនួននៅលើភីអាយដើម្បីរៀបចំឥតខ្សែហើយដូច្នេះខ្ញុំត្រូវភ្ជាប់ដោយប្រើអ៊ីសឺរណិតជាមុន។

ព័ត៌មានបណ្តាញរ៉ោតទ័រនៅក្នុងកម្មវិធីរុករក
ការភ្ជាប់ទៅរ៉ោតទ័រជាមួយអ៊ីសឺរណិតគឺងាយស្រួលជាងវិធីសាស្រ្តភ្ជាប់ដោយផ្ទាល់ដែលគ្របដណ្តប់ខាងលើដោយពិចារណាថាគ្មានការស្កេនណាមួយដែលពាក់ព័ន្ធទេ។ នៅពេលដែលខ្ញុំបានភ្ជាប់ PI ដោយប្រើខ្សែអ៊ីសឺរណិតខ្ញុំគ្រាន់តែបាននាំយកកម្មវិធីរុករកនៅលើកុំព្យូទ័រលើតុរបស់ខ្ញុំហើយបានវាយបញ្ចូលអាសយដ្ឋាន IP របស់រ៉ោតទ័រទៅក្នុងរបារ URL របស់កម្មវិធីរុករកនៅខាងលើ។ នេះគឺជាអាស័យដ្ឋានដូច 192.168.1 ឬ 192.168.2.1 ប៉ុន្តែជាមួយ http: // នៅពីមុខវាទោះបីជាកម្មវិធីរុករកមួយចំនួនមិនត្រូវការ http: // ។ ពិនិត្យមើលសៀវភៅដៃរបស់អ្នក / ម៉ូឌឹមម៉ូឌឹមរបស់អ្នក។

អ្វីដែលអ្នកឃើញអាស្រ័យលើម៉ូដឹមរបស់អ្នកប៉ុន្តែអណ្តូងរ៉ែបានបង្ហាញក្រាហ្វបណ្តាញនៅខាងក្រោមជាមួយអាសយដ្ឋាន IP របស់ PI, 192.168.2.14 ។ ជាមួយនឹងអ្វីដែលខ្ញុំអាចនាំឱ្យមានស្ថានីយដោយប្រើ putty ដូចដែលបានពិពណ៌នាខាងលើ។

ប្រសិនបើអ្នកចង់នៅតែប្រើអ៊ីសឺរណិតរវាងភីអាយរបស់អ្នកនិងម៉ូដឹមបន្ទាប់មកអ្នកបានធ្វើរួច។ ប៉ុន្តែខ្ញុំចង់ទៅឥតខ្សែដើម្បីឱ្យមនុស្សយន្តរបស់ខ្ញុំអាចវង្វេងនៅជុំវិញដោយគ្មានខ្សែកាបអ៊ីសឺរណិត។ ឥឡូវខ្ញុំមានស្ថានីយចូលក្នុងភីអាយខ្ញុំអាចបន្តទៅជំហានបន្ទាប់។

ភ្ជាប់ដោយឥតខ្សែ

ម៉ូដែល Raspberry PI 3 B មានម៉ាស៊ីនឥតខ្សែដែលបានភ្ជាប់មកជាមួយប៉ុន្តែប្រសិនបើអ្នកមានកំណែដោយគ្មានខ្សែបន្ទាប់មកអ្នកក៏អាចទទួលបានដុងឥតខ្សែដែលភ្ជាប់ទៅក្នុងរន្ធ USB របស់ PI ដែរ។ មុនពេលដែលអ្នកអាចភ្ជាប់ទៅនឹងក្បាលដែលគ្មានក្បាលដោយឥតខ្សែអ្នកនឹងនៅតែត្រូវការភ្ជាប់ទៅវាដោយប្រើវិធីសាស្រ្តមួយក្នុងចំណោមវិធីខាងលើជាមុនហើយធ្វើការកំណត់រចនាសម្ព័ន្ធមួយចំនួននៅលើភី។

ខ្ញុំបានយកស្ថានីយមួយហើយចូលដូចបានរៀបរាប់ខាងលើ។ ខ្ញុំត្រូវដាក់ឈ្មោះបណ្តាញឥតខ្សែរបស់ខ្ញុំនិងលេខកូដបណ្តាញចូលទៅក្នុងឯកសារកំណត់រចនាសម្ព័ន្ធ /etc/wpa_suplicant/wpa_supplicant.conf ។ ប៉ុន្តែសម្រាប់ហេតុផលសុវត្ថិភាពខ្ញុំមិនចង់ឱ្យពាក្យសម្ងាត់នៅក្នុងអត្ថបទធម្មតាទេ។

ការប្រើប្រាស់ WPA_APAPARPHRAFHAFE និងការកែសម្រួល WPA_SIPPlicant.conf
ការកែសម្រួល WPA_SUPPlicant.conf
ដូច្នេះខ្ញុំបានរត់ Wpa_pasphraff “BobsnetName” “BobnetPassword” ហើយបានរំលេចលទ្ធផលដែលនៅក្នុងស្ថានីយនេះចម្លងអត្ថបទដែលបានបន្លិចទៅក្តារតម្បៀតខ្ទាស់។ “Bobsnetname” និង “Bobsnetpassword” គឺជាការពិតណាស់។

បន្ទាប់មកខ្ញុំបានកែសម្រួល /etc/wpa_suplicant/wpa_supplicant.conf ហើយបិទភ្ជាប់ពីក្តារតម្បៀតខ្ទាស់ដោយចុចខាងស្តាំ។ អត្ថបទបិទភ្ជាប់នៅតែបញ្ចូលបន្ទាត់ដែលមានពាក្យសម្ងាត់នៅក្នុងអត្ថបទច្បាស់។ វាត្រូវបានធ្វើអត្ថាធិប្បាយចេញប៉ុន្តែទោះយ៉ាងណាអាចមើលឃើញដូច្នេះខ្ញុំបានលុបវាចោល។

បន្ទាប់ពីសន្សំហើយចេញពីកម្មវិធីនិពន្ធដែលខ្ញុំបានផ្តាច់ខ្សែអ៊ីសឺរណិត។ កម្មវិធីដែលកំពុងដំណើរការមួយដែលមានឈ្មោះថា WPA-SENCHAND គួរតែចំណាយពេលតែពីរបីវិនាទីប៉ុណ្ណោះបន្ទាប់ពីឯកសារត្រូវបានផ្លាស់ប្តូរដើម្បីជូនដំណឹងវាហើយទទួលបានឥតខ្សែ។ ដូច្នេះហើយបន្ទាប់ពីរង់ចាំពីរបីវិនាទីខ្ញុំបានរត់ Ping Google.com ។ វាដំណើរការ។ ភីអាយត្រូវបានភ្ជាប់ដោយឥតខ្សែ។

ប្រសិនបើវាមិនត្រូវបានគេអញ្ចឹងខ្ញុំអាចចាប់ផ្តើមវាឡើងវិញដោយដៃដោយដំណើរការ sudo wpa_cli កំណត់រចនាសម្ព័ន្ធឡើងវិញ។ នេះក៏រាយការណ៍ផងដែរឈ្មោះចំណុចប្រទាក់, WLAN0 ក្នុងករណីរបស់ខ្ញុំ។

កំពុងដំណើរការ ‘ifconfig wlan0’
ដើម្បីសាកល្បងបន្ថែមវានិងទទួលបានអាសយដ្ឋាន IP របស់ Pi, ខ្ញុំបានរត់ទៅ Ifconfig WLAN0 ហើយស្វែងរកអាសយដ្ឋាន IP នៅក្បែរ inet inde indr ។ វានៅទីនោះហើយជាមួយវាខ្ញុំអាចភ្ជាប់ទៅនឹងភីអាយអាយហើយចាប់ផ្តើមសរសេរកម្មវិធីរ៉ូបូត។

អ្នកទាំងនោះគឺជាបទពិសោធន៍របស់ខ្ញុំក្នុងការភ្ជាប់ទៅនឹង Raspberry Pi របស់ខ្ញុំប៉ុន្តែយើងដឹងថាមានអ្នកប្រើប្រាស់ Raspberry Pi ជាច្រើននៅលើការ Hackaday ។ តើអ្នកបានប្រើវិធីណាខ្លះតើអន្ទាក់អ្វីដែលអ្នកបានរកឃើញហើយតើអ្នកមានគំនិតអ្វីខ្លះដែលអ្នកមានសម្រាប់ចេញពីពួកគេ? សូមឱ្យយើងដឹងនៅក្នុងមតិយោបល់ដូច្នេះអ្នកដទៃមិនធ្លាក់ចូលក្នុងពួកគេផងដែរ។

Back to top