Perks Posted August 19, 2017 Share Posted August 19, 2017 Finalmente após umas semanas lá tive uma horita livre para começar algo que andava na cabeça queria fazer um medidor de temperatura, mas algo mais fiável e para temperaturas mais altas, tipo monitorizar um PC sempre ligado, um conjunto de placas a minar (como os nossos amigos ali do tópico do lado ) ou até o grelhador para o churrasco , ok no meu caso não vai ser para nenhuma destas coisas, mas ok esta solução é standalone não necessitando de qualquer hub, é uma app para o telefone e está feito, com gráfico de históricos e notificação de temperatura quando esta ultrapassa o valor definido o material utilizado: nodemcu 2,64USD termopar max6675 2,72USD com uma sonda tipo K, dependendo da temperatura que quiserem monitorizar podem comprar a sonda à parte (esta chega aos 800ºC ), mas a menos que queiram fornos industriais ou parecido não vejo porque precisem de mais, Este módulo tem uma tolerância de cerca de 0,25ºC pelo que deve ser mais que suficiente para não queimar a posta à mirandesa este projecto usa o blynk.cc pelo que não necessita de mais nada para funcionar, são as placas e um telemóvel onde receber notificações e está feito anyway, já montado Se houver interessados avisem que montamos isto, não se esqueçam que a placa de oferta ainda está disponível 3 Link to comment Share on other sites More sharing options...
Perks Posted August 19, 2017 Author Share Posted August 19, 2017 entretanto adicionei um slider onde é possível configurar a temperatura a partir da qual queremos receber a notificação, deixei-o também ligado desde e portou-se como um campeão e o código, a library usada do sensor https://github.com/mcleng/MAX6675-Library o exemplo base foi este https://github.com/mcleng/MAX6675-Library/blob/master/examples/read_temp/read_temp.pde o código completo Link to comment Share on other sites More sharing options...
Ilusi0n Posted August 19, 2017 Share Posted August 19, 2017 Boa cena, mandei vir. Depois dou feedback. Link to comment Share on other sites More sharing options...
Perks Posted August 20, 2017 Author Share Posted August 20, 2017 A patroa não ficou fã, ironicamente do led de aviso, alterei isto tudo Meti a fazer check de notificação de 10 em 10 segundos, não precisa de mais Meti hipótese de enviar por mail o alerta também Meti os led a acender quando passa o valor definido de notificação no slider. Quando a temperatura for inferior ao valor do slider apaga os Leds totalmente E o código /* Single_Temp.pde - Example using the MAX6675 Library. Created by Ryan McLaughlin <[email protected]> This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. http://creativecommons.org/licenses/by-sa/3.0/ https://github.com/mcleng/MAX6675-Library */ //#define BLYNK_PRINT Serial // Comment this out to disable prints and save space #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> // You should get Auth Token in the Blynk App. // Go to the Project Settings (nut icon). char auth[] = "token do Blynk"; // Your WiFi credentials. // Set password to "" for open networks. char ssid[] = "Rede wireless"; char pass[] = "pass rede"; #include <MAX6675.h> #include <SPI.h> // esquerda para a direita GND - VCC - NCK - CS - SO int MaxSO = D6; // SO pin do MAX6675 int MaxCS = D5; // CS pin do MAX6675 int MaxSCK = D7; // SCK pin do MAX6675 int Maxunits = 1; // Unidade de temp (0 = raw, 1 = ˚C, 2 = ˚F) float t = 0.00; // variavel de output da Temperatura bool TempNotified = false; //variável que armazena se existiu notificações int SliderValue; //variável que amazena temperatura a partir da qual há notificação BlynkTimer timer; // Initialize the MAX6675 Library for our chip // MAX6675 Library already sets pin modes for MAX6675 chip! MAX6675 temp(MaxCS,MaxSO,MaxSCK,Maxunits); BLYNK_CONNECTED() { // Request Blynk server to re-send latest values for all pins //Blynk.syncAll(); // You can also update individual virtual pins like this: Blynk.syncVirtual(V22, V23); // Let's write your hardware uptime to Virtual Pin 2 int value = millis() / 1000; Blynk.virtualWrite(V23, value); } BLYNK_WRITE(V22) { // Use of syncAll() will cause this function to be called // Parameter holds last slider value SliderValue = param.asInt(); TempNotified = false; digitalWrite(LED_BUILTIN, HIGH); digitalWrite(2, HIGH); //Serial.println(SliderValue); //Serial.println(TempNotified); } BLYNK_WRITE(V23) { // You'll get uptime value here as result of syncAll() int uptime = param.asInt(); } void temperatura(){ t = temp.read_temp(); // ler a temperatura do MAX6675 Blynk.virtualWrite(V21, t); //t = t + 0.1; if((t > SliderValue) && (TempNotified == false)){ Blynk.notify( String("Alerta - Temperatura maior que ") + SliderValue + String("°C - Temperatura actual ") + t + String("°C")); //Blynk.email("Subject: Alerta de temperatura", "a temperatura está acima de..."); digitalWrite(LED_BUILTIN, LOW); digitalWrite(2, LOW); TempNotified = true; } if((t <= SliderValue) && (TempNotified == true)){ TempNotified = false; } } void setup() { Serial.begin(115200); Blynk.begin(auth, ssid, pass); t = 0; pinMode(LED_BUILTIN, OUTPUT); pinMode(2, OUTPUT); timer.setInterval(10000L, temperatura); digitalWrite(LED_BUILTIN, HIGH); digitalWrite(2, HIGH); } void loop(){ Blynk.run(); timer.run(); } 2 Link to comment Share on other sites More sharing options...
Ilusi0n Posted September 1, 2017 Share Posted September 1, 2017 Já chegou o módulo Wireless, falta o sensor de temperatura. 2 Link to comment Share on other sites More sharing options...
Ilusi0n Posted September 4, 2017 Share Posted September 4, 2017 @Perks arranja-me a tua pasta das libraries, estou farto de bater em paredes. Nunca tinha programado arduinos ou semelhantes portanto não tinha nenhuma library. Depois até que percebesse que o gajo é case sensitive e que #include <MAX6675.h> é diferente de #include <max6675.h>... Agora está a queixar-se que as variáveis não estão declaradas, e só passei este ponto porque tive que martelar o meu max6675.cpp senão tinha um erro parvo, No such file or directory #include <util/delay.h>. Resumindo, talvez fosse mais fácil forneceres a pasta das libraries que usaste para compilar este código. Link to comment Share on other sites More sharing options...
Perks Posted September 4, 2017 Author Share Posted September 4, 2017 No comentário tens a lib que usei https://github.com/mcleng/MAX6675-Library Link to comment Share on other sites More sharing options...
Ilusi0n Posted September 4, 2017 Share Posted September 4, 2017 (edited) Já tinha visto, foi a primeira que testei. Com essa tenho o erro: Arduino: 1.8.4 (Windows 10), Board: "Generic ESP8266 Module, 80 MHz, 40MHz, DIO, 115200, 512K (64K SPIFFS), ck, Disabled, None" sketch_sep01a:25: error: 'D6' was not declared in this scope int MaxSO = D6; // SO pin do MAX6675 ^ sketch_sep01a:26: error: 'D5' was not declared in this scope int MaxCS = D5; // CS pin do MAX6675 ^ sketch_sep01a:27: error: 'D7' was not declared in this scope int MaxSCK = D7; // SCK pin do MAX6675 ^ C:\Users\Username\Documents\Arduino\sketch_sep01a\sketch_sep01a.ino: In function 'void setup()': sketch_sep01a:92: error: redefinition of 'void setup()' void setup() { ^ sketch_sep01a:39: error: 'void setup()' previously defined here void setup() { ^ exit status 1 'D6' was not declared in this scope This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences. Edited September 4, 2017 by Ilusi0n Link to comment Share on other sites More sharing options...
Perks Posted September 4, 2017 Author Share Posted September 4, 2017 Estás com a board errada seleccionada no arduino ide Estás com um esp01 que não têm esses pins Tens de selecionar o nodemcu 1.0 Já agora o qr para na app do blynk instalar isto como tenho Depois podes alterar à tua vontade 1 Link to comment Share on other sites More sharing options...
Ilusi0n Posted September 4, 2017 Share Posted September 4, 2017 Ok, com essa alteração de board funcionou. Pensei que fosse genérica, nem reparei que havia mesmo este modelo. Agora, o teu código tem erros e não compilava. Estás a declarar void setup() 2 vezes. Só quando removi o primeiro é que o gajo compilou. Link to comment Share on other sites More sharing options...
Perks Posted September 4, 2017 Author Share Posted September 4, 2017 Foi erro de paste, apaga o primeiro setup Link to comment Share on other sites More sharing options...
Ilusi0n Posted September 4, 2017 Share Posted September 4, 2017 Oh @Perks tu és cheio de armadilhas Na tua foto o cabo laranja está ligado ao D4 que não faz nada e estava-me a seguir pela foto. Quando o mudei para o D7, lá começou tudo a funcionar! Deu algum trabalho, mas foi um noite bem perdida. Link to comment Share on other sites More sharing options...
Perks Posted September 4, 2017 Author Share Posted September 4, 2017 Os comentários estão lá para ajudar esquerda para a direita GND - VCC - NCK - CS - SO int MaxSO = D6; // SO pin do MAX6675 int MaxCS = D5; // CS pin do MAX6675 int MaxSCK = D7; // SCK pin do MAX6675 int Maxunits = 1; // Unidade de temp (0 = raw, 1 = ˚C, 2 = ˚F) Mas inicialmente estava no D4 mas o led também está para o d4 na minha placa, tive de mudar Btw mandei vir isto para tentar juntar http://s.aliexpress.com/eUjQJFnQ Ainda não chegou, mas estou a aguardar Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now