INHOUDSOPGAWE:

Koppel u framboos Pi aan die internet: 9 stappe
Koppel u framboos Pi aan die internet: 9 stappe

Video: Koppel u framboos Pi aan die internet: 9 stappe

Video: Koppel u framboos Pi aan die internet: 9 stappe
Video: Kleuters op familiefeest 😂 2024, Julie
Anonim
Koppel u Raspberry Pi aan die internet
Koppel u Raspberry Pi aan die internet

In hierdie les leer u hoe u 'n webwerf kan skep, data kan versamel met behulp van die wêreldwye web en API's kan gebruik om beelde op Tumblr en Twitter te plaas.

Stap 1: Kliënt en bediener

In die rekenaar is kliënt-bediener 'n sagtewaremodel wat uit twee dele bestaan: 'n kliënt en 'n bediener. Beide kommunikeer oor 'n rekenaarnetwerk of saam op dieselfde rekenaar. Die kliënt is 'n program of 'n rekenaar met sagteware wat daarop staatmaak om diensversoeke aan 'n bediener te rig. Die bediener is 'n rekenaarprogram of 'n toestel wat hierdie versoeke kan aanvaar, dit kan verwerk en die gevraagde inligting aan die kliënt kan teruggee. Soms is dit lastig om uit te vind wat dit is wanneer u met masjiene werk wat verskeie take tegelyk doen. Hier is 'n paar kenmerke om u te help om 'n kliënt en 'n bediener van mekaar te onderskei.

Klanteienskappe:

  • Dit is die eerste aktiewe
  • Stuur versoeke na die bediener
  • Dit verwag en ontvang antwoorde van die bediener
  • Gewoonlik is direkte interaksie met eindgebruikers deur gebruik te maak van enige gebruikerskoppelvlak, soos 'n grafiese gebruikerskoppelvlak

Bediener eienskappe:

  • Dit is aanvanklik passief
  • Dit luister, gereed om te reageer op versoeke wat deur kliënte gestuur word
  • as 'n versoek kom, antwoord die aangevraagde data aan die kliënte
  • Eindgebruikers kommunikeer gewoonlik nie direk met 'n bediener nie, maar gebruik 'n kliënt.
Beeld
Beeld

'N Algemene voorbeeld van 'n kliënt- en bedienerverhouding is 'n webblaaier (kliënt) wat webbladslêers wat op 'n webbediener aangebied word, versoek en ontvang.

Stap 2: Skep 'n plaaslike webbediener

Die Raspberry Pi kan 'n webbediener word deur 'n bedienertoepassing te installeer en uit te voer. Twee gewilde open source bedienertoepassings is: NGINX (uitgespreek engine x) en Apache. In hierdie les sal u Apache gebruik, want dit is met hierdie skrywe sterker gedokumenteer. Dit maak dit makliker om aanlyn antwoorde te soek namate u leer.

U Raspberry Pi bied 'n webwerf aan wat toegang tot enige toestel op dieselfde netwerk kan hê. Laat ons begin!

Stap 3: Installeer Apache

Installeer die apache2 -pakket. Die -y -vlag beantwoord die veiligheidsvraag wat vooraf geïnstalleer is, vir u.

sudo apt -get install apache2 -y

Apache bevat 'n toets -HTML -lêer wat 'n plekhouerwebblad genereer om die installasie mee te toets. Hierdie toets -HTML -lêer kom in die wortelgids van Apache. Apache is standaard ingestel om in hierdie gids webdokumente te soek om inhoud binne 'n webblaaier te skep. Om na hierdie toetsbladsy te kyk en te bevestig dat Apache inderdaad korrek geïnstalleer is, trek dit in u webblaaier op deur hierdie URL -adres in te tik:

localhost/

As Apache korrek geïnstalleer is, sal u die Apache -toetswebblad in die blaaier sien:

Beeld
Beeld

Vind die IP -adres van u Raspberry Pi

U kan die localhost -adres gebruik om toegang tot die webblad te verkry terwyl u op die Raspberry Pi is. Om toegang tot die webblad vanaf 'n ander rekenaar te verkry, benodig u die IP -adres van u Raspberry Pi. Om die IP -adres in LXTerminal te vind:

ifconfig

Beeld
Beeld

U kan dit ook op die tafelblad vind as u die wyser oor die WiFi -ontvangssimbool hou.

Beeld
Beeld

Stap 4: Maak 'n statiese webbladsy

U Raspberry Pi kan nou 'n webblad en al die inhoud wat daarop gepubliseer word, huisves. Daar is twee basiese soorte webblaaie: staties en dinamies. 'N Statiese bladsy bevat inhoud wat nie verander nie. 'N Dinamiese bladsy kan veranderende data soos sensorlesings of die veranderende tyd en datum vertoon.

Kom ons begin met 'n statiese bladsy. Om een te skep, moet u 'n taal genaamd HTML gebruik. As u na 'n webblad gaan, is die eerste ding wat u sien waarskynlik 'n index.html -bladsy. Hierdie bladsy is die standaardbladsy wat 'n blaaier wys as 'n ander bladsy nie gespesifiseer is nie. Apache soek standaard na die index.html -lêer hier:

/var/www/html

Dit word die dokumentwortel genoem, en dit is 'n verborge vouer. Dit is bedoel vir die hou van webblaaie. Gaan daarheen en kyk rond:

cd/var/www/html

ls

U sal die standaard toetsindeks.html -lêer sien. As u die standaardlêer wil stoor, hernoem dit na iets soos defaultIndex.html met die mv -opdrag.

sudo mv index.html defaultIndex.html

as u dit nie wil stoor nie, verwyder die lêer met die rm -opdrag:

sudo rm index.html

Nou kan u u eie index.html -lêer skep en begin redigeer:

sudo nano index.html

Onthou om sudo te gebruik; die www- en html -dopgehou is die eiendom van root, sodat u as root moet optree om lêers in die kaarte te skep, te wysig en te manipuleer.

Basiese HTML -bladsy

HTML is 'n taal wat diep ingaan. Jy kan baie daarmee doen. As u meer wil weet, gaan na die webwerf van W3Schools, waar u baie tutoriale kan vind oor hoe u HTML kan gebruik om 'n webwerf te bou. Ons begin met 'n eenvoudige HTML -bladsy.

Vertel eers die blaaier watter weergawe van HTML u gebruik. Hierdie dokument word verklaar as 'n HTML5 -dokument:

Begin met die html en body tags:

Die grootste deel van u inhoud gaan tussen die body tags. Maak die eerste reël 'n opskrif met die h1 -merker. Die getal na die "h" definieer die belangrikheid van die opskrif wat die grootte van die lettertipe beïnvloed. Gebruik die p -tag om 'n paragraaf te definieer:

My Raspberry Pi het 'n webwerf

Wat moet ek hier sit?

Sluit die bladsy af deur die liggaam en html en etikette te sluit:

Stoor die dokument met die agtervoegsel.html en besoek localhost in u blaaier. U sal u webwerf sien!

Beeld
Beeld

Wat moet u op die webblad plaas? Kom ons plaas 'n prentjie, of beter nog, die animateMe.gif! Om enige bate op hierdie webblad te kan vertoon, moet dit in Apache se dokumentwortel geplaas word. U moet dit kopieer en plak sodat dit ook in u boof/fotos -gids bly. Gebruik die cp-opdrag om 'n lêer in die opdraglyn te plak en te plak. CD eers na u tuisgids:

cd ~

Kopieer en plak die animateMe-g.webp

sudo cp boof/fotos/animateMe.gif/var/www/html

Gaan terug na die html -gids:

cd/var/www/html

Maak die index.html -lêer weer oop sodat u die prentjie kan byvoeg:

sudo nano index.html

Gebruik die img -tag om 'n prent op 'n HTML -bladsy te definieer en in te sluit. Plaas die volgende reël tussen die opskrif en paragraaf.

Maak die bladsy in die blaaier oop en dit sal so lyk, behalwe met u eie stylvolle selfie -GIF.

Beeld
Beeld

Stap 5: Voeg 'n bietjie styl by

Die bladsy lyk effens vaal. Geen kleur en geen styl nie. Dit is waar CSS inkom. Dit is 'n taal wat hand in hand met HTML werk om 'n webblad aantrekliker en visueel kreatiewer te maak. U sal dit hier net raak, maar as u meer wil leer, moet u meer oor die W3schools leer.

As voorbeeld, laat ons die kleur van die agtergrond verander deur CSS by u HTML -lêer te voeg. Daar is verskillende maniere om u webwerf met CSS te styl. Vir hierdie klas gebruik u die styletikette om CSS in u HTML -lêer in te sluit.

Plaas die volgende reëls tussen die eerste html- en body -tags bo -aan u HTML -bladsy:

body {background-color: powderblue;} etikette. Dit sal so lyk:

Beeld
Beeld

liggaam {agtergrond-kleur: poeierblou;}

Beeld
Beeld

Stap 6: Installeer PHP

In plaas van 'n statiese bladsy, kan u 'n dinamiese bladsy maak wat kan verander sonder dat u lêers handmatig daarheen laai. 'N Gewilde manier om dit te doen is om 'n skripttaal genaamd PHP te gebruik. Om PHP op die Raspberry Pi te gebruik, moet u dit eers installeer met modulepakket vir Apache:

sudo apt-get install libapache2-mod-php5 php5 -y

Stap 7: Maak 'n dinamiese webbladsy

Kombineer PHP met HTMLA's solank PHP -kode in etikette voorkom, kan u dit in 'n HTML -lêerstruktuur insluit. As voorbeeld, kombineer u huidige HTML- en PHP -skrifte en maak die teks groter met behulp van HTML -etikette.

Laat ons 'n eenvoudige PHP -script insluit wat die datum en tyd vertoon. Plak die volgende oral tussen die etikette:

Stoor die lêer met Ctrl + o, maar verander die uitbreiding van.html na.php, wat 'n nuwe lêer stoor. Om die blaaier nie te verwar nie, verwyder die ou.html -weergawe:

sudo rm index.html

Herlaai localhost in u webblaaier. Die uitset sal so lyk:

Beeld
Beeld

Ok, so wat is die verskil? Dit lyk soos 'n gewone HTML -bladsy, nie waar nie? Herlaai die bladsy en kyk na die magie. Die wonder dat die tyd sal verander! Dit is PHP en die ingeboude datum () -funksie waarmee u 'n dinamiese webblad kan maak.

Stap 8: Skep 'n Tumblr API -kliënt

Die Raspberry Pi kan inligting van ander sagtewaretoepassings aanlyn aanvra en kry via 'n API (Application Programming Interface). Met 'n API is dit maklik vir iets soos die Raspberry Pi om al die data van 'n webwerf deur te sny om net die nuttige dinge te bekom. Laat u Raspberry Pi met Tumblr, Twitter en weather.com praat om te tweet, foto's te plaas en weervoorspellings te vertoon.

Framboos Pi en Tumblr

Die volgende oefening skep 'n gesprek tussen u Raspberry Pi en Tumblr. As die kliënt sal u Raspberry Pi Tumblr vra vir gegewensbrokkies, sodat dit beelde kan oplaai na die eksterne bediener van Tumblr, wat veroorsaak dat die beelde op 'n Tumblr -rekening geplaas word. Om 'n Raspberry Pi met 'n API te laat werk, is daar waarskynlik reeds 'n biblioteek wat u kan gebruik. Vir Tumblr is daar Pytumblr. 'N Kliënt word in 'n Python-program geskep met behulp van 'n ingeboude funksie wat in Pytumblr geskep is. Hierdie funksie gebruik vier magtigingskodes wat deur Tumblr gegenereer word:

  • verbruikersleutel
  • verbruikersgeheim
  • token sleutel
  • teken geheim

Voordat u die API van Tumblr kan gebruik, moet u vier hierdie sleutels kry (soortgelyk aan wagwoorde). Om hulle te kry, volg hierdie stappe:

  1. Skep 'n gratis Tumblr -rekening en meld aan.
  2. Registreer 'n aansoek. U hoef slegs basiese inligting te gee, soos 'n titel (probeer "My Raspberry Pi"), beskrywing, e -pos en webwerf (gebruik hierdie as u nie een het nie). Na registrasie kry u 'n verbruikersleutel en 'n verbruikersgeheim. Kopieer en plak dit op 'n veilige plek, soos 'n tekslêer of e -pos. Om weer toegang daartoe te verkry, gaan na u Tumblr -rekeningbladsy, kies instellings in die rekeningkieslys en klik op programme.
  3. Meld aan by die ontwikkelaarkonsole met u sleutel- en geheime magtigingskodes. Klik op toelaat wanneer u gevra word of u dit namens u wil plaas.
  4. Sodra u by die ontwikkelaarkonsole aangemeld het, sien u voorbeeldkode in verskillende tale. Klik op die oortjie Python en kopieer die OAuth -blok, of klik op Toon sleutels in die boonste spyskaart om die token -sleutel en geheime kodes te sien, tesame met die twee kodes wat u reeds het.

Kom ons werk hierdie kodes en maak 'n Python -program wat die animateMe-g.webp

Installeer eers Pytumblr:

sudo apt-get update

sudo pip installeer pytumblr

CD vanaf u tuisgids in die boof -gids en skep 'n Python -lêer:

cd boef

Skep u lêer met die IDLE -redakteur om dit makliker te maak om u baie lang magtigingskodes te plak en te plak. Plaas dit in u testPytumblr.py -lêer en werk die vier sleutels en u gebruikersnaam by:

invoer pytumblr

# Verifieer via OAuth, kopieer vanaf https://api.tumblr.com/console/calls/user/info client = pytumblr. TumblrRestClient ('your_consumer_key', 'your_consumer_secret', 'your_token', 'your_token_secret') client.create_photo ('your_account_username', state = "gepubliseer", tags = ["raspberrypi", "picamera"], data = "fotos/animateMe.gif") druk ("opgelaai")

Die program merk die opgelaaide foto vir u met "raspberrypi" en "picamera". As u wil, kan u hierdie etikette verwyder, vervang of byvoeg. Dit word gestoor in 'n veranderlike genaamd etikette wat gebruik word in client.create_photo ().

Druk F5 om die program uit te voer. Daar sal 'n fout wees … maar u het reeds Pytumblr geïnstalleer, hoekom sê Python dat dit nie die module kan vind nie? Dit is omdat Pytumblr nie Python 3 ondersteun nie; dit werk slegs in Python 2*. Maak die Python 2 IDLE -redakteur oop en knip en plak u kode, skryf die Python 3 -program oor en voer dit dan uit. As die-g.webp

Dit is die opwindende deel! Gaan na u Tumblr -bladsy en kyk na die GIF! Verander "gepubliseer" in u program na "konsep" as u eerder konsepplasings wil skep.

Beeld
Beeld

*Nadat hierdie klas gepubliseer is, het 'n ander github -gebruiker die oorspronklike gevurk en ondersteuning vir Python 3 vir sekere opdragte bygevoeg.

As die pos nie verskyn nie, moet u seker maak dat u u vier sleutels en Tumblr -gebruikersnaam korrek ingevoer het en dat die internetverbinding van u Pi aktief is. U kan u script ook vanaf die opdragreël gebruik met Python 2 (cd na u map boof as u nog nie daar is nie):

luislangtoetsPytumblr.py

Stap 9: Neem 'n skermkiekie van Tumblr en/of webwerf

Skep 'n webwerf om 'n-g.webp

Aanbeveel: