Arduino contrôlée ruche spécialiste / désodorisant (8 / 9 étapes)

Étape 8: Arduino Code

#include « MAX31855.h »
#include « LiquidCrystal.h »

#include « Adafruit_MAX31855.h »

Innovente lcd (12, 11, 5, 4, 3, 2) ;

const int turnonAudioboard = 13 ;

const int audioTrigger0 = A0 ;

const int audioTrigger1 = A1 ;

const int audioTrigger2 = A2 ;

const int audioTrigger3 = A3 ;

const int audioTrigger4 = A4 ;

const int fanRelay = 10 ; //

const int heaterRelay = 9 ; contrôles des résistances

const int countthreshold = 100 ; réinitialise les valeurs max et min toutes les 100 secondes

const int startfrequency = 300 ; régler la fréquence de départ des bips

const int numberofbeepsmax = 50 ; la valeur de la maximumnumber de bips possible

int fancountdown = 0 ;

int i ;

int count = 5 ;

int freq = 0 ;

bips int = 0 ;

int beepthreshold = -10 ; La valeur ci-dessus qui bips commencent à sonner

int
beepBeepThreshold = 0 ;

int audioCount0 = 0 ;

int audioCount1 = 0 ;

int audioCount2 = 0 ;

int audioCount3 = 0 ;

int audioCount4 = 0 ;

int alarmpotvalue = 500 ;

int tempsetpoint = 160 ;

int blowersetpoint = 20 ;

int bloweron = 0 ;

int zeropotvalue = 0 ;

int thermocoupleSOPin = 8 ;

int thermocoupleCSPin = 7 ;

int thermocoupleCLKPin = 6 ;

variables de température :

double point de consigne ;

double chaleur ;

double sortie ;

double jonction ;

MAX31855 thermocouple (thermocoupleSOPin, thermocoupleCSPin, thermocoupleCLKPin) ;

void setup()

{

pinMode (audioTrigger0, sortie) ;

digitalWrite(audioTrigger0,HIGH) ; Basse déclenche le son audio sur la carte de FX

pinMode (audioTrigger1, sortie) ;

digitalWrite(audioTrigger1,HIGH) ; Basse déclenche le son audio sur la carte de FX

pinMode (audioTrigger2, sortie) ;

digitalWrite(audioTrigger2,HIGH) ; Basse déclenche le son audio sur la carte de FX

pinMode (audioTrigger3, sortie) ;

digitalWrite(audioTrigger3,HIGH) ; Basse déclenche le son audio sur la carte de FX

pinMode (audioTrigger4, sortie) ;

digitalWrite(audioTrigger4,HIGH) ; Basse déclenche le son audio sur la carte de FX

Delay(500) ;

pinMode (turnonAudioboard, sortie) ;

digitalWrite (turnonAudioboard, HIGH) ;

pinMode (fanRelay, sortie) ; initialiser la goupille de relais du ventilateur comme sortie

pinMode (heaterRelay, sortie) ;

digitalWrite (fanRelay, basse) ; désactiver le relais du ventilateur.

digitalWrite (heaterRelay, basse) ;

ton (A5, 400, 100) ; joue un son de 400 hz pour 100 ms

LCD.Begin(20,4) ; définir la dimension de l’écran lcd

LCD.Clear() ; Écran à cristaux liquides clair

lcd.setCursor(2,0) ; LCD.Print ("Varroa Blaster") ;

Delay(2000) ;

ton (A5, 400, 100) ; joue un son de 400 hz pour 100 ms

lcd.setCursor(2,1) ; LCD.Print (« chèvre Industries ») ;

Delay(2000) ;

noTone (A5) ;

Lire la température actuelle

chaleur = thermocouple.readThermocouple(CELSIUS) ;

chaleur = chaleur-3 ; //
ajustement pour le point d’ébullition de l’eau

En cas de problème de thermocouple

Si ((heat == FAULT_OPEN) || (chaleur == FAULT_SHORT_GND) ||
(Heat == FAULT_SHORT_VCC))

Delay(500) ;

Delay(500) ;

Si le pot est trop chaud :

while(Heat >
100) {}

chaleur = thermocouple.readThermocouple(CELSIUS) ;

chaleur =
chaleur-3 ;

LCD.Clear() ;

lcd.setCursor(0,0) ; LCD.Print ("Veuillez patienter tout en") ;
lcd.setCursor(0,1) ; LCD.Print ("les dispositif cools") ;
lcd.setCursor(0,2) ; LCD.Print ("ci-dessous à 100");lcd.print((char)223);lcd.print("C") ;
lcd.setCursor (0,3); lcd.print ("Probe
Temp:");LCD.Print(Heat);LCD.Print((Char)223);LCD.Print("C.") ;

ton (A5, 300,
100) ; joue un son de 300 hz à 100ms

Delay(3000) ;

}

Si (chaleur < 90) //plays audio0 quand la température (chaleur) est les à 90 degrés C.

{

digitalWrite(audioTrigger0,LOW) ; Faible
le son audio sur la carte de FX

Delay(500) ;

digitalWrite(audioTrigger0,HIGH) ;

}

else {}

while(Count>0) {}

LCD.Clear() ;

lcd.setCursor(4,0) ; LCD.Print("Starting") ;
lcd.setCursor(2,1) ; LCD.Print("vapourisation") ;
lcd.setCursor(0,3) ; LCD.Print("Count:") ; lcd.setCursor(6,3) ;
LCD.Print(Count) ; lcd.setCursor(8,3) ;
LCD.Print("Temp:");LCD.Print(Heat);LCD.Print((Char)223);LCD.Print("C") ;

ton (A5, 400 100) ;

Count = count -1 ;

Delay(1000) ;

noTone (A5) ;

}

}

void loop()

{

Lire la température actuelle

chaleur = thermocouple.readThermocouple(CELSIUS) ;

chaleur = chaleur-3 ;

jonction = thermocouple.readJunction(CELSIUS) ;

En cas de problème de thermocouple

Si ((heat == FAULT_OPEN) || (chaleur == FAULT_SHORT_GND) ||

(Heat == FAULT_SHORT_VCC))

blowersetpoint = 20 ;

chaleur = 17 ; ligne temporaire pour le débogage

LCD.Clear() ;

lcd.setCursor(0,0) ; LCD.Print ("temps de souffler:") ; lcd.setCursor(10,0);lcd.print(blowersetpoint,DEC) ;
lcd.setCursor(14,0);lcd.print("Secs.") ;

lcd.setCursor(0,1) ; LCD.Print ("Temp set point:") ; lcd.setCursor(15,1) ;
LCD.Print(tempsetpoint,DEC);LCD.SetCursor(18,1);LCD.Print((Char)223);LCD.Print("C") ;

lcd.setCursor(0,2);lcd.print("Int.Temp:");lcd.print(junction);lcd.print((char)223);lcd.print("C") ;

lcd.setCursor (0,3); lcd.print (Temp:");lcd.print(heat);lcd.print((char)223);lcd.print("C") de sonde » ;

If
((Heat>100) & &(heat<105) & &(audioCount1<1)) //plays audio1 quand la température (chaleur) arrive à 100 degrés C.

{

audioCount1 = 1 ;

digitalWrite(audioTrigger1,LOW) ; Faible
le son audio sur la carte de FX

Delay(500) ; IMPORTANT, cela doit être au moins 500 !

digitalWrite(audioTrigger1,HIGH) ;

}

else {}

If
((Heat>130) & &(heat<135) & &(audioCount2<1)) //plays audio2 quand la température (chaleur) arrive à 130 ° C.

{

audioCount2 = 1 ;

digitalWrite(audioTrigger2,LOW) ; Basse déclenche le son audio sur la carte de FX

Delay(500) ;

digitalWrite(audioTrigger2,HIGH) ;

}

else {}

If
((Heat>150) & &(heat<155) & &(audioCount3<1)) //plays audio3 quand la température (chaleur) arrive à 150 ° C.

{

audioCount3 = 1 ;

digitalWrite(audioTrigger3,LOW) ; Basse déclenche le son audio sur la carte de FX

Delay(500) ;

digitalWrite(audioTrigger3,HIGH) ;

}

else {}

faire des bruits bips à accroître les fréquences

FREQ =
startfrequency ;

bips = 0 ;

beepBeepThreshold
= beepthreshold ;

while(beeps < numberofbeepsmax) {}

if(Heat >beepBeepThreshold)

ton (A5, freq, 9) ; Jouez une note de broche 1 à freq pour 9ms

bips ++ ;

beepBeepThreshold
= beepBeepThreshold + 10 ;

FREQ = freq +
200 ;

Delay(10) ;

}

noTone (A5) ;

Si (chaleur

}

d’autre
{digitalWrite (heaterRelay, LOW); bloweron = 1 ;

}

fancountdown = blowersetpoint ;

Delay(1000) ;

Maintenant, la température a été atteinte et le ventilateur doit être allumé.

Commencez tout d’abord l’audio :

Si (bloweron > 0) {}

digitalWrite(audioTrigger4,LOW) ; Basse déclenche le son audio sur la carte de FX

Delay(500) ;

digitalWrite(audioTrigger4,HIGH) ;

Delay(14000) ;

}

else {}

Allumez le ventilateur :

while(bloweron >0) {/ / bloweron a l’état de '1' et donc cette boucle est activée :

digitalWrite (fanRelay, HIGH) ;

Si (chaleur

}

d’autre
{digitalWrite (heaterRelay, basse) ;

}

Lire la température actuelle

chaleur = thermocouple.readThermocouple(CELSIUS) ;

chaleur = chaleur-3 ;

jonction = thermocouple.readJunction(CELSIUS) ;

En cas de problème de thermocouple

Si ((heat == FAULT_OPEN) || (chaleur == FAULT_SHORT_GND) ||

(Heat == FAULT_SHORT_VCC))

ton (A5, 1500, 100) ; joue un son de 1500 hz pour 100 ms

Delay(500) ;

ton (A5, 1 500 100) ; joue un son de 1500 hz pour 100 ms

Delay(500) ;

fancountdown = fancountdown -1 ;

LCD.Clear() ;

lcd.setCursor(0,0) ;
LCD.Print("Blowing:") ;
lcd.setCursor(10,0);lcd.print(fancountdown,DEC) ;
lcd.setCursor(14,0);lcd.print("Secs.") ;

lcd.setCursor(0,1) ;
LCD.Print ("Temp set point:") ; lcd.setCursor(15,1) ;
LCD.Print(tempsetpoint,DEC);LCD.SetCursor(18,1);LCD.Print((Char)223);LCD.Print("C") ;

lcd.setCursor(0,2);lcd.print("Int.Temp:");lcd.print(junction);lcd.print((char)223);lcd.print("C") ;

lcd.setCursor (0,3); lcd.print ("Probe
Temp:");LCD.Print(Heat);LCD.Print((Char)223);LCD.Print("C") ;

noTone (A5) ;

Si (fancountdown < 1) {}

Cela crée une boucle de « Fini »

tandis que (fancountdown < 1) {}

LCD.Clear() ;

Lire la température actuelle

chaleur = thermocouple.readThermocouple(CELSIUS) ;

chaleur = chaleur-3 ;

jonction = thermocouple.readJunction(CELSIUS) ;

En cas de problème de thermocouple

Si ((heat == FAULT_OPEN) || (chaleur == FAULT_SHORT_GND) ||

(Heat == FAULT_SHORT_VCC))

lcd.setCursor(0,0) ; LCD.Print("finished") ;
lcd.setCursor(10,0);lcd.print(fancountdown,DEC) ;
lcd.setCursor(13,0);lcd.print("Secs.") ;

lcd.setCursor(0,1) ; LCD.Print ("set Temp
point: ") ; lcd.setCursor(15,1) ;
LCD.Print(tempsetpoint,DEC);LCD.SetCursor(18,1);LCD.Print((Char)223);LCD.Print("C") ;

lcd.setCursor(0,2);lcd.print("Int.Temp:");lcd.print(junction);lcd.print((char)223);lcd.print("C") ;

lcd.setCursor (0,3); lcd.print ("Probe
Temp:");LCD.Print(Heat);LCD.Print((Char)223);LCD.Print("C") ;

digitalWrite (heaterRelay, basse) ;

digitalWrite (fanRelay, basse) ;

Delay(1000) ;

}

}

else {}

}

}

Articles Liés

Arduino contrôlée hélicoptère

Arduino contrôlée hélicoptère

Cette instructable a été créée dans l'accomplissement de l'exigence de projet de la Makecourse à l'Université de Floride du Sud (www.makecourse.com). L'objectif de ce cours était pour nous enseigner la créativité, l'ingéniosité et l'application prati
Laser Galvo - Arduino contrôlée

Laser Galvo - Arduino contrôlée

Arduino contrôlée laser galvo. La servocommande de miroirs diriger le laser UV laissant une traînée phosphorescente sur la feuille de vinyle glow-in-the-dark.Posté sur notes.robives.comÉtape 1 :À partir d'une feuille de vinyle lumineux d'eBay et poin
Couvre-feu pour animaux de compagnie : Un Arduino contrôlée chatière

Couvre-feu pour animaux de compagnie : Un Arduino contrôlée chatière

Le problème: vous voulez restreindre le temps lorsque votre animal de compagnie est autorisé à aller à l'extérieur. C'est peut-être parce que le quartier n'est pas sans danger pour votre chat ou votre petit chien pendant la nuit (maraude coyotes vien
Arduino contrôlée de fenêtre pour chat

Arduino contrôlée de fenêtre pour chat

je soumets cette instructable le défi de l'Arduino. N'oubliez pas de voter !Mon voisin a eu un petit problème avec son chat. Il veulent de sortir et de revenir trop souvent à l'intérieur. Habituellement, il ouvre juste la fenêtre de sa cuisine et nou
Autocollant de fenêtre numérique (Arduino contrôlée)

Autocollant de fenêtre numérique (Arduino contrôlée)

un autocollant de taille matrice de LED qui affiche des images en séquence à partir d'une carte SD, pour produire une animation signe ou « vitrophanie ». Arduino contrôlée ! Inclut également le code de Windows, Mac et Linux pour la conversion des fic
GOduino II = Arduino + contrôleur de moteur à Vitesse Variable L293D

GOduino II = Arduino + contrôleur de moteur à Vitesse Variable L293D

mises à jourGOduino II a été présenté sur dangerousprototypes.com07/04/2012, j'ai ajouté une diapositive de budget pour les lecteurs qui sont demandent où j'ai obtenu mon budget < 20 $ pour le GOduino II.INTRODUCTIONLe GOduino II est un contrôleur pr
Arduino contrôlée CNC / 3D imprimante hybride

Arduino contrôlée CNC / 3D imprimante hybride

Dame Nature fait... Nous construisons des.BuildersBot fusibles impression 3D & fraisage CNC dans rêve d'un générateur "3dprintingindustry.com"Le BuilderBot est une machine de conception ouverte, qui utilise OpenLogiciels et matériels ouvert.
Capteur infrarouge guidée Arduino contrôlée L293D Robot (partie 2)

Capteur infrarouge guidée Arduino contrôlée L293D Robot (partie 2)

Voici la partie 2 de l'Arduino contrôlée Robot L293D.Partie 2 comprend Sensors.This infrarouge fait partie d'une série d'instructables conduisant à un adepte de la ligne Robot.QRD1114 capteur infrarouge reliée à ArduinoÉtape 1: Câblage du capteur inf
Arduino contrôlée variateur de lumière

Arduino contrôlée variateur de lumière

Avertissement : Certaines personnes essaient de construire ce avec un opto-coupleur avec zerocrossing coz droit « c'est mieux » ? Certains sont même dit, dans les magasins d'électronique, il est préférable d'utiliser tel un opto-coupleur. MAL. Ceci f
Arduino contrôlée Servo Robot (Serbes)

Arduino contrôlée Servo Robot (Serbes)

quoi de mieux pour commencer à expérimenter avec open source microcontrôleurs ( Arduino ), puis en construisant votre propre robot source ( CC (SA-de)) ?Que faire avec votre serbe ?(Voici) - comment connecter votre serbe à l'internet et le lecteur su
Arduino contrôlée minuterie de cuisine

Arduino contrôlée minuterie de cuisine

Chacun d'entre vous doit ont vécu ce que vous avez quelque chose à cuire sur votre gazinière tandis que de l'autre côté vous get occupé à regarder la télévision ou obtenir une conversation profonde que vous réalisez sur la détection d'une odeur qu'il
Arduino contrôlée ATX Power Supply

Arduino contrôlée ATX Power Supply

pouvez un microcontrôleur contrôler sa propre puissance ?  Eh bien presque !Une ATX alimentation, neuf ou d'un vieux PC, est un excellent moyen pour alimenter l'Arduino et autres projets de microcontrôleur.  Qui est couvert dans plusieurs ' ibles tel
Arduino contrôlée Car Tracking System basé sur SMS

Arduino contrôlée Car Tracking System basé sur SMS

Hi, j'ai fait un Arduino contrôlée voiture Tracking System basé sur SMS pour la voiture de mon père.Les modules utilisés sont ;Arduino nano V3.0Module GPS SkyLabModule GSM WaveComLa bibliothèque de SoftwareSerial, les TinyGPS sont utilisés pour commu
Arduino contrôlée phare

Arduino contrôlée phare

Vue d'ensemble :J'ai souvent pensé qu'un phare ferait un grand projet pour un Arduino, et j'ai donc décidé de faire un essai en utilisant un des phares locales ici à Erie (Pennsylvanie) comme source d'inspiration. J'ai choisi le Nord Pierhead phare q