Smart Home/utrymme Monitor (4 / 5 steg)
Steg 4: kodning!
Koden visas nedan kan användas i Arduino ide.
För att få 1sheeld måste bibliotek arbetar du följa den officiella 1sheeld att få igång tutorial här
Koden har överförts till min Github sida:
Projekt av Geeve George
#define CUSTOM_SETTINGS
#define INCLUDE_TEXT_TO_SPEECH_SHIELD
#define INCLUDE_VOICE_RECOGNIZER_SHIELD
#define CUSTOM_SETTINGS
#define INCLUDE_MIC_SHIELD
#define INCLUDE_SMS_SHIELD
/ * Inkluderar 1Sheeld bibliotek. */
#include
int ledPin = 13.
float sinVal;
int toneVal;
/ * Ett kommando som ska jämföras. */
CONST char firstCommand [] = "vad är temperaturen nu";
/ * Ett kommando som ska jämföras. */
CONST char secondCommand [] = "hur är vädret idag";
/ * Ett kommando som ska jämföras. */
CONST char thirdCommand [] = "gjorde jag lämna lamporna på";
CONST char fourthCommand [] = "lampor";
CONST char fifthCommand [] = "lights off";
CONST int pinTemp = A0; stift av temperaturgivare
float temperatur;
int B = 3975;
float resistens.
/ * Ett namn för LED på stift 13. */
int pinLight = A1;
void setup()
{
/ * Starta kommunikation. */
OneSheeld.begin();
/ * Ange LED stift. */
pinMode(ledPin,OUTPUT);
pinMode (8, OUTPUT);
}
void loop()
{
/ * Kontrollera alltid om ett nytt röstkommando fått. */
IF(VoiceRecognition.isNewCommandReceived())
{
/ * Kontrollera om röstkommandot är den önskade. */
IF(!Strcmp(firstCommand,VoiceRecognition.getLastCommand()))
{
int val = analogRead(pinTemp); få analoga värde
Resistance=(float)(1023-val) * 10000/val; få motstånd
temperatur = 1 / (log (motstånd/10000) /B+1/298.15)-273.15;
int n = temperatur;
String stringMsg = "The temperatur är:";
stringMsg += String(n);
stringMsg += "grad celcius sir";
Konvertera vårt budskap till en karaktär array för att tweet det Twitter
char msg [140];
stringMsg.toCharArray (msg, 140);
TextToSpeech.say(msg);
}
/ * Kontrollera om röstkommandot är den önskade. */
annat if(!strcmp(secondCommand,VoiceRecognition.getLastCommand()))
{
int val = analogRead(pinTemp); få analoga värde
Resistance=(float)(1023-val) * 10000/val; få motstånd
temperatur = 1 / (log (motstånd/10000) /B+1/298.15)-273.15;
int n = temperatur;
String stringMsg = "The temperatur är:";
stringMsg += String(n);
stringMsg += "grad celcius sir";
Konvertera vårt budskap till en karaktär array för att tweet det Twitter
char msg [140];
stringMsg.toCharArray (msg, 140);
om (n > = 40) {
/ * 1Sheeld svarar med hjälp av text till tal. */
TextToSpeech.say ("vädret är ganska hård sir");
}
annars om (n > = 30 & & n < = 39) {
TextToSpeech.say ("det är ganska varmt utanför sir");
}
annars om (n > = 27 & & n < = 29) {
TextToSpeech.say ("vädret är ganska varm sir");
}
annars om (n > = 23 & & n < = 26) {
TextToSpeech.say ("vädret är bra sir");
}
annars om (n > = 18 & & n < = 22) {
TextToSpeech.say ("vädret är måttlig sir");
}
annars om (n > = 14 & & n < = 17) {
TextToSpeech.say ("det är en milt väder sir");
}
annars om (n > = 10 & & n < = 13) {
TextToSpeech.say ("det är en ganska svalt väder sir");
}
annars om (n > = 6 & & n < = 9) {
TextToSpeech.say ("det är ett kallt väder sir");
}
annars om (n > = 0 & & n < = 5) {
TextToSpeech.say ("det är en mycket kallt väder sir");
}
}
/ * Kontrollera om röstkommandot är den önskade. */
annat if(!strcmp(thirdCommand,VoiceRecognition.getLastCommand()))
{
IF(analogRead(1) > 500) {
TextToSpeech.say ("Ja sir du har kvar lamporna på");
}
annat if(analogRead(1) < 500) {
TextToSpeech.say ("sir lamporna är avstängda");
}
}
}
annat if(!strcmp(fourthCommand,VoiceRecognition.getLastCommand()))
{
digitalWrite 13, hög.
}
annat if(!strcmp(fifthCommand,VoiceRecognition.getLastCommand()))
{
digitalWrite 13, låg.
}
}
Du kan hämta repo här: https://github.com/GeeveGeorge/AIHomeAutomation/blob/master/ai.ino