Étape 3: Préparation de la base de données et le schéma de traitement
Une des premières choses que je fais toujours est de générer un fichier de connecteur de base de données d’abattre sur l’écriture du code dans les fichiers principaux et doit figurer dans le répertoire principal.
My Fichier de connecteur de base de données SQL: db_connect.php
C’est le fichier de transformation, c’est le cheval de bataille du projet ! Je fais trois choses dans ce fichier qui va m’aider à visualiser ce qui se passe. J’ai d’abord voir mes données dans la fenêtre de dessin (draw) et puis j’ai imprimer les données sérielles avec elle a l’étiquette avant de l’envoyer à la base de données MySql, mais c’est simplement pour le dépannage et peut être omis une fois que vous avez il fonctionne correctement. Vous remarquerez que j’ai rupture les données dans un tableau avant de l’envoyer à la base de données MySql. J’ai aussi laissé dans le code pour l’envoyer vers un fichier CSV ou texte fichier simplement en changeant le « .txt » d’extension « .csv » et ajout de l’instruction « output.print » pour les éléments du tableau. Une fois que j’ai eu le MySql fonctionne correctement je n’est plus nécessaire pour créer le fichier csv ou txt. Vous noterez également l’utilisation de la bibliothèque de De.Bezier MySql dans laquelle j’ai ajouté un lien vers et il doit être installé afin que cette esquisse de travailler.
http://Bezier.de/Processing/libs/SQL/
Traitement des croquis : mysql_write_1.pde fichier
Il s’agit d’un fichier modifié originellement écrit par Tom Igoe
J’ai modifié le code pour adhérer à ma demande.
Tom si vous voyez ceci, Merci ! pour vos grands exemples.
Import processing.serial.* ;
Java.util Import ;
import java.text.* ;
Import de.bezier.data.sql.* ;
PrintWriter sortie ;
DateFormat fnameFormat = new SimpleDateFormat("yyMMdd_HHmm") ;
TimeFormat DateFormat = new SimpleDateFormat("hh:mm:ss") ;
String fileName ;
Serial myPort ; Le port série
String inString ; Chaîne d’entrée de port série
int lf = 10 ; Saut de ligne ASCII
PFont polices ;
Dbconnection MySQL ;
void setup() {}
Size(600,100) ;
println(Serial.List()) ;
myPort = nouvelle série (ce, Serial.list() [1], 9600) ;
myPort.clear() ;
Effacer la table de base de données
User String = « root » ;
Col de la chaîne = "" ;
String = « myurov » ;
DbConnection = nouveau MySQL (Thi, « localhost », base de données, l’utilisateur, pass) ;
Si {(dbconnection.connect())
DbConnection.Query ("aptc tronquée") ; effacer toutes les données de la table
DbConnection.Close() ;
}
Date de maintenant = new Date() ;
fileName = fnameFormat.format(now) ;
fileName = « lectures » ;
sortie = createWriter (fileName + « .txt ») ; Enregistrez le fichier dans le dossier du sketch « .csv » ou « .txt »
myPort.bufferUntil(lf) ;
}
{} void draw()
Background(0) ;
texte ("reçu:" + inString, 10,50) ;
}
void serialEvent(Serial p) {}
Delay(1000) ;
inString = p.readString() ;
String timeString = timeFormat.format (new Date()) ;
output.Print(timeString) ;
output.Print(",") ;
output.println(inString) ;
Ici j’ai soit afficher le code dans un fichier ou à l’écran
Pour atteindre le fichier j’ajouterais la sortie «. » pour le début des déclarations « println »
Aussi, je prends les données sérielles et casser vers le haut et crée un tableau des données.
println (« Message reçu à » + timeString + ":") ;
println(inString) ;
Lectures de String = (inString) ;
Liste de chaînes [] = split (lectures, ',') ;
println ("pression barométrique =" liste [0] + « inHg ») ;
println ("température =" liste [1] + « \u00B0 F ») ;
println ("Altitude =" liste [2] + « Ft ») ;
println ("magnétomètre Raw axe X =" + liste [3] + "") ;
println ("magnétomètre Raw axe Y =" + liste [4] + "") ;
println ("magnétomètre Raw axe Z =" + liste [5] + "") ;
println ("magnétomètre à bractées AxeX =" + liste [6] + "") ;
println ("magnétomètre mise à l’échelle l’axe Y =" + liste [7] + "") ;
println ("magnétomètre mise à l’échelle des axes Z =" + liste [8] + "") ;
println ("magnétomètre rubrique =" + liste [9] + "") ;
println ("magnétomètre rubrique degrés =" liste [10] + « \u00B0 degrés ») ;
caractère spécial pour degrés « www.ascii-code.com/ » u00XX = HEX / /
Remarque : la dernière ligne des déclarations println fera une ligne d’alimentation après la variable de la liste.
println() ;
User String = « root » ;
Col de la chaîne = "" ;
Base de données de chaîne = « myurov » ;
se connecter à la base de données du serveur « localhost »
DbConnection = nouveau MySQL (Thi, « localhost », base de données, l’utilisateur, pass) ;
Si {(dbconnection.connect())
maintenant envoyer des données vers la base de données
DbConnection.Execute ("INSERT INTO aptc (pression, température, altitude, rxaxis, ryaxis, rzaxis, sxaxis, syaxis, szaxis, rubrique, hddegrees) VALUES (' « + list[0]+"','"+list[1]+"','"+list[2]+"','"+list[3]+"','"+list[4]+"','"+list[5]+"','"+list[6]+"','"+list[7]+"','"+list[8]+"','"+list[9]+"','"+list[10]+"'); ») ;
DbConnection.Close() ; sans cela, j’ai reçu une erreur « too many connections » après environ 4 minutes.
Il y a plusieurs façons de gérer les erreurs de base de données persistance c’est tout simple.
}
}
keyPressed() Sub {}
output.Flush() ; Écrit les données restantes dans le fichier
output.Close() ; Termine le fichier
Exit() ; Arrête le programme
}