Den Arduino Internet Gizmo (20 / 22 steg)

Steg 20: Hur programmet fungerar



The Arduino gizmo programvara tänds den färgskiftande lysdioder, sedan går in i en slinga läsa RFID-taggar, att göra lysdioderna på gizmo tävla i cirklar när en tagg läses, och skickar sedan informationen till datorn. En översikt över delarna av programmen följer - det finns detaljerade kommentarer i koden som förklarar varje rad. Programmet visas i de första tre diagram.

  • Linje 8 låter programmet använder SoftwareSerial biblioteket som används för att kommunicera med RFID-läsare
  • Rader 10-16 ange Arduino stiften används av programmet
  • Linje 18-23 definiera de variabler som används i programmet
  • Linje 28-36 körs när Arduino är första påslagen eller återställa. Denna kod tänds den Färgskiftande LED krets, initierar anslutningen till datorn och RFID-kortläsare och initierar lysdioder ovanpå gizmo.
  • 41-71 är huvudloop för programmet. Denna loop körs tills Arduino är avstängd eller återställa. Den första sak gjort i en slinga är att kontrollera om RFID-läsare har läst några data och huruvida data läsa anger början av ett tag. Om så är fallet:
    • Linjerna 44-53 läsa data från RFID-läsare till etiketten har varit helt läsa.
    • Rader 55-63 skicka data till PC. Tre datum skickas: greven av Taggar läst hittills, den tid som etiketten lästes och tagg-ID som lästes. Räkna och tid används inte av programmet på datorn men finns för felsökning ändamål och är användbara om du vill använda den här koden för andra Arduino RFID-projekt.
    • Linjer 64-68 stängs tillfälligt den RFID-kortläsaren, gör lysdioderna på gizmo racen runt om och sedan sover en kort tid. RFID-läsare är tillbaka på och programmet loopar tillbaka till toppen.
  • 74-88 är en subrutin att gör lysdioderna på gizmo belysa i sekvens och tycks tävla runt i cirklar. Indata till subrutinen är antalet gånger att tävla runt och antalet millisekunder att hålla varje LED belysta.
  • Linjerna 90-98 är en subrutin som initierar stiften för lysdioderna och sätter dem vara utgångsstift.

Python gizmo programmet körs på datorn och loopar väntar på data skickas med Arduino. När data tas emot, letar programmet upp tagg-ID i en tabell att hitta den associerade webbplatsen. Om tagg-ID i tabellen, använder programmet en Python kallas "webbrowser" för att öppna en ny flik i standard som webbläsare på datorn och ladda webbsidan. Webbläsaren inte är igång, kommer att "webbrowser" starta om. Om inte är tagg-ID i tabellen, program skapas en HTML-fil med ett felmeddelande med tagg-ID och visar det i en ny flik i webbläsaren. Ett exempel visas i den sista bilden. Programmet visas i fjärde, femte, sjätte och sjunde diagram. En översikt över programmet följande:

  • Linjerna 12-15 importera bibliotek för att skapa och skriva till filer, kommunicera med Arduino, analysera data skickas från Arduino och styra webbläsaren.
  • 20-34 är tabellen (ordbok i Python termer) används för att associera etiketten IDs med webbplatser. Varje rad har tio tecken RFID-tagg-ID och en HTTP-länk till webbplatsen. Observera att den första-taggen har "quit" för webbadressen. Om denna tagg läses, avslutas programmet. Nya märken kan läggas genom att duplicera den sista raden och ersätter tagg-ID med den nya taggen och sätta på den webbplatsen du vill använda för etiketten.
  • Linje 37 definierar vilken COM-port som används för kommunikation med Arduino. Detta är samma COM del som används av Arduino utveckling programvaran för att ladda den kompilerade programmet till Arduino. Du bör ändra detta för att matcha ditt system.
  • Linje 42 är namnet på den fil som skapas när en okänd tagg läses. Denna fil skapas i katalogen där du installerade Python. I mitt fall var det "c:\Python27".
  • Rader 45-54 använda pySerial biblioteket för att ansluta till Arduino. Meddelanden kommer att visas i fönstret Python som anger om anslutningen gjordes eller inte.
  • Linje 56 kontroller för att se om anslutningen var framgångsrik. Om anslutningen gjordes, fortsätter behandlingen annars programmet avslutas.
  • Linje 58 anger en variabel som används för att avgöra om en dubblett tagg har lästs. Tanken är att förhindra samma webbplats öppnas i webbläsaren om RFID-läsare råkar läsa etiketten mer än en gång när den placeras över läsaren.
  • Linjerna 62-63 använda "pySerial" biblioteket för att läsa data från Arduino.
  • Linje 66 kontroller för att se om data har lästs.
  • Linjerna 68-74 användning "shlex" biblioteket för att bryta data från Arduino i tre delar: greven, tiden och tagg-ID.
  • Linje 76-78 anropa en funktion för att slå upp webbplatsen baserat på taggen ID. Tagg-ID och webbplats i Python visas i fönstret Python konsolen för felsökning ändamål.
  • Linjerna 81-82 kontrollera om detta är den särskilda taggen används för att stoppa programmet och om så, programmet avslutas loopen och programmet avslutas.
  • Line 86 kontroller för att se om etiketten just läst är samma som det föregående. I så fall loopar det tillbaka till toppen.
  • Linje 87 använder "webbrowser" biblioteket att starta webbläsaren om inte körs och öppna en ny flik för webbplatsen.
  • Linje 88 sparar etiketten läste just att förhindra att dubblerade platser visas. Programmet loopar sedan tillbaka för att vänta på en annan tagg.
  • Linjerna 90-104 är den funktion som används för att slå upp på webbplatser som är associerade med tagg-ID:
    • Linje 93 kontrollerar om tagg-ID finns i ordlistan
    • Linje 94 returnerar webbplatsen om tagg-ID var i ordlistan.
    • Linjerna 98-100 bygga HTML för felmeddelandet för okända taggen.
    • Linjer 101-103 använda "sys" biblioteket för att skapa en HTML-fil, skriva HTML-kod till filen och stäng filen. Om filen redan finns, och HTML-koden i filen ersätts med nya HTML.
    • Linje 104 Returnerar namnet på filen. Tillbaka i huvudprogrammet, kommer webbläsaren öppna denna fil i stället för en webbplats och visa felmeddelandet.
  • Linjerna 107-111 kan du köra programmet från kommandoraden och passera i namn av COM-port som en parameter i stället för att modifiera programvaran. Se nästa steg för detaljer om hur man använder detta.

Jag har testat programvaran med olika webbläsare: "webbrowser" biblioteket fungerar bra med Firefox, Safari och Internet Explorer. Det fungerar inte korrekt med Opera.

Se Steg
Relaterade Ämnen

Enkel Internet Gizmo

jag publicerade nyligen en instructable kallas den "Arduino Internet Gizmo" som kombinerar en RFID-kortläsaren, en Arduino och en massa lysdioder och andra komponenter för att skapa en enhet som använder RFID-kort för att Visa favorit webbsidor...

Ansluta en Xbox 360 till en datorskärm (BONUS! ANSLUTER DEN TILL INTERNET, VIA DIN DATOR!)

Ok, jag vet att mycket av det här är frustrerande, och det tog mig evigheter att göra, eftersom jag räkna det ut på min egen, men ni hade tur, eftersom jag bara göra det här ser lätt.VAD DETTA INSTRUCTABLE KOMMER ATT VISA DIG HUR MAN GÖR:-Koppla upp...

Driver den Arduino Mega med litiumbatteri

detta är en liten och kort handledning som förklarar steg för steg hur du ansluter Mega litium ryggsäck öppen källkod hårdvara skölden till Arduino Mega, ge den batteritid, och tillåta Mega vara untethered från datorn.Delarna var alla tagna från liqu...

GOduino - den Arduino Uno + Motor Driver klon

uppdateringar4/4/2012: den pcb versionen med variabelt varvtal, GOduino II, är på min blogg http://techbitar.blogspot.com/2012/04/goduino-ii-motor-driver-arduino-uno.html och här29/3/2012: rättelser till motor belastning beräkningar avsnitt.14/3/2012...

Arduino Internet kontrollerad skrivbordslampa

detta är ett litet projekt jag gjorde för att styra min skrivbordslampa över internet.Steg 1: Vad du behöverEn linux-webbserver med PHP, en arduino, ett relä och några andra komponenter.Steg 2: Ladda upp din kod till arduinoLadda upp följande kod til...

Arduino Internet kontrollerad ledde

HejI detta projekt som jag kommer att kontrollera ledde 's tråg en webbsidor. Du kan öppna din webbläsare och kontrollera de lysdioder.Koden som anges när laddat upp och ansluten till internet skapar det en webbserver i nätverket och du helt enkelt a...

Arduino Internet tid klienten

UPPDATERA! 11/15/2015Lagt till en WiFi och uppladdningsbart batteri alternativ (steg 10).UPPDATERA!Lade till 12h / 24h switch och Standard / sommartid växla! Se steg 7 & 8.Har du någonsin velat en klocka som höll exakt tid till en officiell källa? De...

Arduino Internet (utan Wifi sköld)

i detta instructable jag ska visa dig hur du ansluter din arduino till internet, det finns många sätt att göra detta. Man använda en Ethernet shield men dess fast och inte mycket närgångna att använda, på andra är wifi det kan vara det bästa sättet a...

Skanna den Arduino I2C bussen för anslutna I2C enheter med Visuino

I2C Enheter och moduler är allmänt tillgänglig och mycket populär i Arduino projekt. Varje I2C -enhet har en adress vanligtvis fast eller konfigurerbara av byglar. När du arbetar med I2C -enheten, är den första uppgiften att upptäcka vad är enhetens...

Skapa den Arduino drivs LED growbox

för ett tag sedan märkte jag många människor som använder Arduino controller för alla sorters hem projekt. Jag visste att jag bara * hade * att ha en.Efter jag fick det med posten och utforska dess möjligheter, slog det mig att skulle detta göra det...

Den trasiga internet upptågen

i detta instructable jag visar dig hur du inaktiverar någons internet temporally.Observera att inte jag är ansvarig för allt som kan gå fel med detta tilltag. (Inklusive stämma eller fängelse tid.)Som sagt, är detta en mycket lätt upptåg att fixa, ef...

Hur till restaurera den Arduino UNO R3 ATmega16U2 Firmware med Arduino IDE

Om du har en behov till Re-blixt ATmega16U2 chip med stock firmware återställa Arduino UNO tillbaka till det normala, detta sker ofta på kommandoraden med hjälp av avrdude eller dfu-programmer, eller med programmet Windows Flip. Den lättare väg för m...

Styra konstruktioner som används i den Arduino programmeringen

Vi kommer att ge information om användning och funktion av kontrollstrukturen används i Arduino programmering.Mer information: http://www.robimek.com/arduino-programlamada-kullanilan-kontrol-yapilari/Steg 1: "İf, annars om annat" struktur:En av...

Hur till sätta fast den Arduino Nano till en yta med

Hej till er alla och grettings från Portugal.För en tid som jag har spelat twith arduino Nano.Sedan början som jag hada problemet om hur man fixar Nano till en yta på grund av de mycket små hål i styrelsen (dess enda 1,7 mm).Tillsammans med min svärf...

Tutorial 1 - den Arduino och skärbräda

grunderna för Arduino och bakbord....

Hacka en Arduino ISP Shield för AtTiny45 / AtTiny85

Detta är hur till hacka en Evil Mad forskare Lab Arduino Internet-sköld så att du kan använda Arduino miljö för att programmera några fiffiga lilla mikrokontroller.Arduino är en stor liten utvecklingsmiljö för att skapa elektroniska projekt http://ww...

Bygga din Internet kontrollerad Video-Streaming Robot med Arduino och Raspberry Pi

< the Instructable och koden är redo. Njut! Lämna en kommentar med du feedback! >Jag är (aka LiquidCrystalDisplay / Itay), en 14 år gammal student från Israel lärande i Max Shein Junior High School för avancerad vetenskap och matematik. Jag gör dett...

Hur till: ansluta din Arduino till Internet som en webbserver

SAKERNAS INTERNET... < kö blixtar och åska >Det är vad alla coola barnen gör dessa dagar. Varför ska de ha allt roligt? Låt oss ställa in en Arduino som en webbserver som vem som helst, var som helst kan visa. Varför skulle vi göra en sådan sak? Möj...

Hur man gör den enklaste bakbord Arduino Uno... NÅGONSIN! -Breduino! (& Hur ladda upp skisser rakt till det!) With Additional Hardware Options - UPDATED - JULY 2013

Steg 1: Avsnitt 1 - byggnad reglerade 5 volts strömkälla! Okay now before i start, something about my notes for my step-by-step PICTURE instructables that i Love to create:"Jag brukade märka alla mina bilder i min instructables men det verkar instruc...