Hello à tous,
Alors voilà j'aurais besoin de votre aide je ne sais comment faire
J'ai une database ou dedans il y a diverses profils avec des informations ( temps température et niveau ) j'ai mis un id auto incrémente aussi.
Ce que je dois faire c'est lorsque je dit un prénom dans la reconnaissance vocale ( elle fonctionne, elle reconnais les voix ) elle se connecte à la base de données avec le prénom dit juste avant et récupère ses informations.
Une petite idée de comment faire svp ? Je suis en local
Si la reconnaissance vocale fonctionne il faut introduire le prénom reconnu dans la requête vers la base de donnée.
fdufnews:
Si la reconnaissance vocale fonctionne il faut introduire le prénom reconnu dans la requête vers la base de donnée.
Justement comment faire ceci ?
C'est-à-dire qu'avec le peu d'informations que tu donnes on peut difficilement t'aider. On est pas devin!
Quelle librairie de reconnaissance vocale?
Quel code fais-tu tourner actuellement qui reconnait la voix?
Quelle information retourne la reconnaissance vocale?
Quel type de base de données cherches-tu à interroger?
Comment sont construite les requête?
Si tu postais ton code on y verrait peut-être plus clair aussi.
fdufnews:
C'est-à-dire qu'avec le peu d'informations que tu donnes on peut difficilement t'aider. On est pas devin!
Quelle librairie de reconnaissance vocale?
Quel code fais-tu tourner actuellement qui reconnait la voix?
Quelle information retourne la reconnaissance vocale?
Quel type de base de données cherches-tu à interroger?
Comment sont construite les requête?
Si tu postais ton code on y verrait peut-être plus clair aussi.
Falconn:
Justement comment faire ceci ?
J'utilise easy vr 3.0
#include "Arduino.h"
#if !defined(SERIAL_PORT_MONITOR)
#error "Arduino version not supported. Please update your IDE to the latest version."
#endif
#if defined(SERIAL_PORT_USBVIRTUAL)
// Shield Jumper on HW (for Leonardo and Due)
#define port SERIAL_PORT_HARDWARE
#define pcSerial SERIAL_PORT_USBVIRTUAL
#else
// Shield Jumper on SW (using pins 12/13 or 8/9 as RX/TX)
#include "SoftwareSerial.h"
SoftwareSerial port(12, 13);
#define pcSerial SERIAL_PORT_MONITOR
#endif
#include "EasyVR.h"
EasyVR easyvr(port);
//Groups and Commands
enum Groups
{
GROUP_1 = 1,
};
enum Group1
{
G1_CORENTIN = 0,
G1_YLANN = 1,
G1_ALEXIS = 2,
G1_THOMAS = 3,
};
int8_t group, idx;
int led=2;
void setup()
{
// setup PC serial port
pcSerial.begin(9600);
pinMode(led,OUTPUT);
// bridge mode?
int mode = easyvr.bridgeRequested(pcSerial);
switch (mode)
{
case EasyVR::BRIDGE_NONE:
// setup EasyVR serial port
port.begin(9600);
// run normally
pcSerial.println(F("---"));
pcSerial.println(F("Bridge not started!"));
break;
case EasyVR::BRIDGE_NORMAL:
// setup EasyVR serial port (low speed)
port.begin(9600);
// soft-connect the two serial ports (PC and EasyVR)
easyvr.bridgeLoop(pcSerial);
// resume normally if aborted
pcSerial.println(F("---"));
pcSerial.println(F("Bridge connection aborted!"));
break;
case EasyVR::BRIDGE_BOOT:
// setup EasyVR serial port (high speed)
port.begin(115200);
// soft-connect the two serial ports (PC and EasyVR)
easyvr.bridgeLoop(pcSerial);
// resume normally if aborted
pcSerial.println(F("---"));
pcSerial.println(F("Bridge connection aborted!"));
break;
}
while (!easyvr.detect())
{
Serial.println("EasyVR not detected!");
delay(1000);
}
easyvr.setPinOutput(EasyVR::IO1, LOW);
Serial.println("EasyVR detected!");
easyvr.setTimeout(5);
easyvr.setLanguage(5);
group = GROUP_1; //<-- start group (customize)
}
void action();
void loop()
{
easyvr.setPinOutput(EasyVR::IO1, HIGH); // LED on (listening)
Serial.print("Say a command in Group ");
Serial.println(group);
easyvr.recognizeCommand(group);
do
{
// can do some processing while waiting for a spoken command
}
while (!easyvr.hasFinished());
easyvr.setPinOutput(EasyVR::IO1, LOW); // LED off
idx = easyvr.getWord();
if (idx >= 0)
{
// built-in trigger (ROBOT)
// group = GROUP_X; <-- jump to another group X
group = GROUP_1;
return;
}
idx = easyvr.getCommand();
if (idx >= 0)
{
// print debug message
uint8_t train = 0;
char name[32];
Serial.print("Command: ");
Serial.print(idx);
if (easyvr.dumpCommand(group, idx, name, train))
{
Serial.print(" = ");
Serial.println(name);
}
else
Serial.println();
easyvr.playSound(0, EasyVR::VOL_FULL);
// perform some action
action();
}
else // errors or timeout
{
if (easyvr.isTimeout())
Serial.println("Timed out, try again...");
int16_t err = easyvr.getError();
if (err >= 0)
{
Serial.print("Error ");
Serial.println(err, HEX);
}
}
}
void action()
{
switch (group)
{
case GROUP_1:
switch (idx)
{
case G1_CORENTIN:
digitalWrite(led,HIGH);
// write your action code here
// group = GROUP_X; <-- or jump to another group X for composite commands
break;
case G1_YLANN:
digitalWrite(led,HIGH);
// write your action code here
// group = GROUP_X; <-- or jump to another group X for composite commands
break;
case G1_ALEXIS:
digitalWrite(led,LOW);
// write your action code here
// group = GROUP_X; <-- or jump to another group X for composite commands
break;
case G1_THOMAS:
digitalWrite(led,LOW);
// write your action code here
// group = GROUP_X; <-- or jump to another group X for composite commands
break;
}
break;
}
}
Ma db est en local en mysql j'utilise Xampp.
Dans ma DB pour le prenom Corentin l'id est de 13. Je cherche alors une fois avoir dit "corentin" qu'il récupère les informations pour cette ID
Si l'Arduino a accès au réseau, il se connecte à la base de donnée et il fait une requête avec le prénom retourné par la reconnaissance vocale.
Si l'Arduino n'a pas accès au réseau, il faut que tu crées une passerelle en utilisant Serial entre l'Arduino et ton PC pour que le PC fasse la requête.
fdufnews:
Si l'Arduino a accès au réseau, il se connecte à la base de donnée et il fait une requête avec le prénom retourné par la reconnaissance vocale.
Si l'Arduino n'a pas accès au réseau, il faut que tu crées une passerelle en utilisant Serial entre l'Arduino et ton PC pour que le PC fasse la requête.
Je vais utiliser une carte arduino Ethernet pour faciliter le tous.
Comment faire cette requête justement?