Mi e' stato possibile provare il Vonets VAP11G, un bridge Ethernet-WiFi, ovvero un sistema per instradare il traffico da e per Wifi su una porta Ethernet. E' molto utile in casi nei quali un dispositivo non ammetta una scheda Wi-Fi (per esempio un MacMini senza Airport) e Arduino con il solo shield Ethernet.
Si tratta di un prodotto a basso costo e parente povero del Netgear WNCE2001 e come tale e' privo di alcune funzionalita'. La configurazione avviene soltanto mediante programma dedicato che funziona solo sotto Windows. Ricercando su internet ho trovato questo script in Python che dovrebbe servire per configurare il VAP11G ma per la mia esperienza non ha funzionato
L'alimentazione avviene tramite cavo USB oppure tramite alimentatore esterno
Funziona molto bene con Arduino+shield Ethernet, basta avere l'accortezza di accendere un po' prima il Vortes in modo da fargli aggianciare il WiFi e poi accendere l'Arduino
mercoledì 4 settembre 2013
martedì 3 settembre 2013
Ottenere il numero di Like su una pagina Facebook (2)
Per ottenere il numero di Like su una pagina direttamente da browser si puo' lanciare il seguente comando
http://api-read.facebook.com/restserver.php?format=xml&method=fql.multiquery&pretty=0&queries={%22page_info%22%3A%22select%20name%2Cfan_count%2Cpage_url%2Ctype%20from%20page%20where%20page_id%20IN%20(266068113416863)%22}&sdk
dove si deve modificare il solo Id pagina (in questo caso 266068113416863)
http://api-read.facebook.com/restserver.php?format=xml&method=fql.multiquery&pretty=0&queries={%22page_info%22%3A%22select%20name%2Cfan_count%2Cpage_url%2Ctype%20from%20page%20where%20page_id%20IN%20(266068113416863)%22}&sdk
dove si deve modificare il solo Id pagina (in questo caso 266068113416863)
Ottenere il numero di Like su una pagina Facebook
Diciamo che vogliamo visualizzare da programma il numero di Like su una pagina Facebook per esempio questa
https://www.facebook.com/SAAM.Firenze
Per prima cosa si deve conoscere l'id della pagina che si ottiene usando OpenGraph
http://graph.facebook.com/?ids=https://www.facebook.com/SAAM.Firenze
che produce il seguente risultato. Circa alla fine si trova
"id": "266068113416863",
che e' il numero desiderato
-----------------------------------
a questo punto si puo' scrivere una semplice applicazione Facebook che tramite le Api ci riporti il valore di Like (che come si vede dall'interfaccia Web e' di 259) Come si vede, a parte le chiavi dell'applicazione non e' necessario passare nessun access token od avere permessi particolari
--------------------------------------
<?
require_once '../src/facebook.php';
$appid = '673135956xxxxxx';
$appsecret = 'dde6cfb07dbb769c7efxxxxxx';
$facebook = new Facebook(array(
'appId' => $appid,
'secret' => $appsecret,
'cookie' => false,
));
$like = array(
'method' => 'fql.query',
'query' => 'select fan_count from page where page_id=266068113416863;'
);
$result = $facebook->api($like);
print $result[0]['fan_count'];
?>
--------------------------------------
https://www.facebook.com/SAAM.Firenze
Per prima cosa si deve conoscere l'id della pagina che si ottiene usando OpenGraph
http://graph.facebook.com/?ids=https://www.facebook.com/SAAM.Firenze
che produce il seguente risultato. Circa alla fine si trova
che e' il numero desiderato
-----------------------------------
{
"https://www.facebook.com/SAAM.Firenze": {
"about": "Istruttore e Responsabile di sala: Alessandro Battistini Iacopo Venni Lorenzo Leoni",
"category": "Sports venue",
"description": "La sede di Firenze della Sala d'Arme Achille Marozzo svolge ampio lavoro di ricerca sulla scherma del medioevo e del rinascimento. Finalmente, dopo lungo tempo passato sullo studio sui trattatisti toscani, si sono aperti, per la prima volta, corsi sulle tecniche di combattimento della antica scuola di scherma fiorentina.",
"hours": {
"tue_1_open": "20:30",
"tue_1_close": "23:00",
"thu_1_open": "20:30",
"thu_1_close": "23:00"
},
"is_published": true,
"location": {
"street": "Via Pistoiese angolo Viuzzo della Cavalla",
"city": "Florence",
"state": "",
"country": "Italy",
"zip": ""
},
"parking": {
"street": 1,
"lot": 0,
"valet": 0
},
"phone": "+39 339 66.83.646",
"price_range": "$$$ (30-50)",
"talking_about_count": 67,
"username": "SAAM.Firenze",
"website": "http://www.achillemarozzo.it/sale/firenze.php",
"were_here_count": 0,
"id": "266068113416863",
"name": "Sala d'arme Achille Marozzo - Firenze",
"link": "http://www.facebook.com/SAAM.Firenze",
"likes": 259,
"cover": {
"cover_id": 366553573368316,
"source": "http://sphotos-b.ak.fbcdn.net/hphotos-ak-prn1/s720x720/64899_366553573368316_453567495_n.jpg",
"offset_y": 55,
"offset_x": 0
}
}
}
-----------------------------------a questo punto si puo' scrivere una semplice applicazione Facebook che tramite le Api ci riporti il valore di Like (che come si vede dall'interfaccia Web e' di 259) Come si vede, a parte le chiavi dell'applicazione non e' necessario passare nessun access token od avere permessi particolari
--------------------------------------
<?
require_once '../src/facebook.php';
$appid = '673135956xxxxxx';
$appsecret = 'dde6cfb07dbb769c7efxxxxxx';
$facebook = new Facebook(array(
'appId' => $appid,
'secret' => $appsecret,
'cookie' => false,
));
$like = array(
'method' => 'fql.query',
'query' => 'select fan_count from page where page_id=266068113416863;'
);
$result = $facebook->api($like);
print $result[0]['fan_count'];
?>
Rfid su Nexus S
Sono riuscito ad farmi prestare un tag Rfid da 13.56 MHz per testare la capacita' NFC di Nexus S. La storia racconta che la funzione di lettura/scrittura di Rfid era stata implementata all'interno di Android senza documentarla e che e' stata scoperta (e sfruttata) da alcuni utilizzatori
Per la prova ho usato un normale tag di sola lettura da 13.56 Mhz ed il programma NFC Reader, del quale sono disponibili anche i sorgenti su GitHub
L'antenna fa il suo lavoro anche se non e' molto sensibile (il tag va letteralmente strusciato sulla cover del telefono)
Per la prova ho usato un normale tag di sola lettura da 13.56 Mhz ed il programma NFC Reader, del quale sono disponibili anche i sorgenti su GitHub
L'antenna fa il suo lavoro anche se non e' molto sensibile (il tag va letteralmente strusciato sulla cover del telefono)
Tethering e Hotspot Android per Debian
Ho scoperto (quasi per caso dato che uso sempre l'hotspot portatile su Android) che collegando il cavo USB ed impostando il Tethering USB, Debian si connette ad Internet senza nessuna altra impostazione....molto comodo
Lettore RFID RC522 su Arduino
Il lettore RFID RC522 e' forse il sistema meno costoso per leggere i tag Rfid a 13.56 MHz in quanto il suo costo arriva al minimo anche a 5 dollari su E-Commerce cinesi
L'interfaccia e' a sette cavi
MOSI: Pin 11 / ICSP-4
MISO: Pin 12 / ICSP-1
SCK: Pin 13 / ISCP-3
SS: Pin 10
RST: Pin 9
(possono essere modificati da programma i pin 9 e 10)
oltre ovviamente ai due collegamenti di alimentazione a GND e 3.3V
La mia versione del lettore mostra le scritte solo sul lato superiore e quindi, quando montato sulla breadboard, non si riesce a leggere la pedinatura. Per comodita' metto questa foto del medesimo lettore ma con le scritte sul lato inferiore per facilitare il montaggio
La programmazione della scheda viene effettuata mediante la libreria che si trova a questo indirizzo
Per la lettura di un tag si puo' impiegare l'esempio CardRead compreso nella libreria stessa (attenzione: ogni lettura viene confrontata con l'ultima acquisita e se uguale non mostra niente a schermo se non una fila di puntini)
versione corta
------------------------------------------
#include <SPI.h>
#include <RFID.h>
#define SS_PIN 10
#define RST_PIN 9
RFID rfid(SS_PIN, RST_PIN);
// Setup variables:
int serNum0;
int serNum1;
int serNum2;
int serNum3;
int serNum4;
void setup()
{
Serial.begin(9600);
SPI.begin();
rfid.init();
}
void loop()
{
if (rfid.isCard()) {
if (rfid.readCardSerial()) {
serNum0 = rfid.serNum[0];
serNum1 = rfid.serNum[1];
serNum2 = rfid.serNum[2];
serNum3 = rfid.serNum[3];
serNum4 = rfid.serNum[4];
String Id = String(rfid.serNum[0],HEX)+String(rfid.serNum[1],HEX)+String(rfid.serNum[2],HEX)+String(rfid.serNum[3],HEX)+ String(rfid.serNum[4],HEX);
Serial.println(Id);
}
}
rfid.halt();
}
-----------------------------------
-----------------------------------
/**
* Read a card using a mfrc522 reader on your SPI interface
* Pin layout should be as follows (on Arduino Uno):
* MOSI: Pin 11 / ICSP-4
* MISO: Pin 12 / ICSP-1
* SCK: Pin 13 / ISCP-3
* SS: Pin 10
* RST: Pin 9
*
* Script is based on the script of Miguel Balboa.
* New cardnumber is printed when card has changed. Only a dot is printed
* if card is the same.
*
* @version 0.1
* @author Henri de Jong
* @since 06-01-2013
*/
#include <SPI.h>
#include <RFID.h>
#define SS_PIN 10
#define RST_PIN 9
RFID rfid(SS_PIN, RST_PIN);
// Setup variables:
int serNum0;
int serNum1;
int serNum2;
int serNum3;
int serNum4;
void setup()
{
Serial.begin(9600);
SPI.begin();
rfid.init();
}
void loop()
{
if (rfid.isCard()) {
if (rfid.readCardSerial()) {
if (rfid.serNum[0] != serNum0
&& rfid.serNum[1] != serNum1
&& rfid.serNum[2] != serNum2
&& rfid.serNum[3] != serNum3
&& rfid.serNum[4] != serNum4
) {
/* With a new cardnumber, show it. */
Serial.println(" ");
Serial.println("Card found");
serNum0 = rfid.serNum[0];
serNum1 = rfid.serNum[1];
serNum2 = rfid.serNum[2];
serNum3 = rfid.serNum[3];
serNum4 = rfid.serNum[4];
//Serial.println(" ");
Serial.println("Cardnumber:");
Serial.print("Dec: ");
Serial.print(rfid.serNum[0],DEC);
Serial.print(", ");
Serial.print(rfid.serNum[1],DEC);
Serial.print(", ");
Serial.print(rfid.serNum[2],DEC);
Serial.print(", ");
Serial.print(rfid.serNum[3],DEC);
Serial.print(", ");
Serial.print(rfid.serNum[4],DEC);
Serial.println(" ");
Serial.print("Hex: ");
Serial.print(rfid.serNum[0],HEX);
Serial.print(", ");
Serial.print(rfid.serNum[1],HEX);
Serial.print(", ");
Serial.print(rfid.serNum[2],HEX);
Serial.print(", ");
Serial.print(rfid.serNum[3],HEX);
Serial.print(", ");
Serial.print(rfid.serNum[4],HEX);
Serial.println(" ");
} else {
/* If we have the same ID, just write a dot. */
Serial.print(".");
}
}
}
rfid.halt();
}
-----------------------------------
L'interfaccia e' a sette cavi
MOSI: Pin 11 / ICSP-4
MISO: Pin 12 / ICSP-1
SCK: Pin 13 / ISCP-3
SS: Pin 10
RST: Pin 9
(possono essere modificati da programma i pin 9 e 10)
La mia versione del lettore mostra le scritte solo sul lato superiore e quindi, quando montato sulla breadboard, non si riesce a leggere la pedinatura. Per comodita' metto questa foto del medesimo lettore ma con le scritte sul lato inferiore per facilitare il montaggio
La programmazione della scheda viene effettuata mediante la libreria che si trova a questo indirizzo
Per la lettura di un tag si puo' impiegare l'esempio CardRead compreso nella libreria stessa (attenzione: ogni lettura viene confrontata con l'ultima acquisita e se uguale non mostra niente a schermo se non una fila di puntini)
versione corta
------------------------------------------
#include <SPI.h>
#include <RFID.h>
#define SS_PIN 10
#define RST_PIN 9
RFID rfid(SS_PIN, RST_PIN);
// Setup variables:
int serNum0;
int serNum1;
int serNum2;
int serNum3;
int serNum4;
void setup()
{
Serial.begin(9600);
SPI.begin();
rfid.init();
}
void loop()
{
if (rfid.isCard()) {
if (rfid.readCardSerial()) {
serNum0 = rfid.serNum[0];
serNum1 = rfid.serNum[1];
serNum2 = rfid.serNum[2];
serNum3 = rfid.serNum[3];
serNum4 = rfid.serNum[4];
String Id = String(rfid.serNum[0],HEX)+String(rfid.serNum[1],HEX)+String(rfid.serNum[2],HEX)+String(rfid.serNum[3],HEX)+ String(rfid.serNum[4],HEX);
Serial.println(Id);
}
}
rfid.halt();
}
-----------------------------------
-----------------------------------
/**
* Read a card using a mfrc522 reader on your SPI interface
* Pin layout should be as follows (on Arduino Uno):
* MOSI: Pin 11 / ICSP-4
* MISO: Pin 12 / ICSP-1
* SCK: Pin 13 / ISCP-3
* SS: Pin 10
* RST: Pin 9
*
* Script is based on the script of Miguel Balboa.
* New cardnumber is printed when card has changed. Only a dot is printed
* if card is the same.
*
* @version 0.1
* @author Henri de Jong
* @since 06-01-2013
*/
#include <SPI.h>
#include <RFID.h>
#define SS_PIN 10
#define RST_PIN 9
RFID rfid(SS_PIN, RST_PIN);
// Setup variables:
int serNum0;
int serNum1;
int serNum2;
int serNum3;
int serNum4;
void setup()
{
Serial.begin(9600);
SPI.begin();
rfid.init();
}
void loop()
{
if (rfid.isCard()) {
if (rfid.readCardSerial()) {
if (rfid.serNum[0] != serNum0
&& rfid.serNum[1] != serNum1
&& rfid.serNum[2] != serNum2
&& rfid.serNum[3] != serNum3
&& rfid.serNum[4] != serNum4
) {
/* With a new cardnumber, show it. */
Serial.println(" ");
Serial.println("Card found");
serNum0 = rfid.serNum[0];
serNum1 = rfid.serNum[1];
serNum2 = rfid.serNum[2];
serNum3 = rfid.serNum[3];
serNum4 = rfid.serNum[4];
//Serial.println(" ");
Serial.println("Cardnumber:");
Serial.print("Dec: ");
Serial.print(rfid.serNum[0],DEC);
Serial.print(", ");
Serial.print(rfid.serNum[1],DEC);
Serial.print(", ");
Serial.print(rfid.serNum[2],DEC);
Serial.print(", ");
Serial.print(rfid.serNum[3],DEC);
Serial.print(", ");
Serial.print(rfid.serNum[4],DEC);
Serial.println(" ");
Serial.print("Hex: ");
Serial.print(rfid.serNum[0],HEX);
Serial.print(", ");
Serial.print(rfid.serNum[1],HEX);
Serial.print(", ");
Serial.print(rfid.serNum[2],HEX);
Serial.print(", ");
Serial.print(rfid.serNum[3],HEX);
Serial.print(", ");
Serial.print(rfid.serNum[4],HEX);
Serial.println(" ");
} else {
/* If we have the same ID, just write a dot. */
Serial.print(".");
}
}
}
rfid.halt();
}
lunedì 2 settembre 2013
Creazione di post automatici su Facebook con RFID(5)
Questo riepilogo non è disponibile.
Fai clic qui per visualizzare il post.
Iscriviti a:
Post (Atom)
Change Detection with structural similarity
L'idea di base e' quella di cercare le differenze tra le due immagini sottostanti Non e' immediatamente visibile ma ci sono dei ...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...