um, e que todos funcionassem simultaneamente, se alguém puder ajudar agradeço
No valor do sensor de solo o 1023 corresponde a 0% esta invertido a conta ai 85% é 154
# include <dht.h> // Inclui a biblioteca no código para o sensor Dht11 # define sensorsolo A2
int porta_rele1 = 8; //Porta ligada ao pino IN1 do modulo = COOLER int porta_rele2 = 9; //Porta ligada ao pino IN2 do modulo = LAMPADA int porta_rele3 = 10; //Porta ligada ao pino IN3 do modulo = BOMBA int porta_rele4 = 11; //Porta ligada ao pino IN4 do modulo
dht DHT; // Cria um objeto dht uint32_t timer = 0; // numero inteiro de 32 bit
unsigned long millisTarefa1 = millis(); // Inicia variável de tempo
// Iniciação void setup() { Serial.begin(9600); // Inicia comunicação na porta serial Serial.println (" \n Inicio do projeto \n "); pinMode(sensorsolo, INPUT); // Define o pino do sensor de solo como entrada pinMode(porta_rele1, OUTPUT); pinMode(porta_rele2, OUTPUT); // Define os pinos dos reles como saída pinMode(porta_rele3, OUTPUT); pinMode(porta_rele4, OUTPUT); }
// Laço de repetição void loop() {
tarefa1(); // Executa tarefa 1
// Programação Dht11 if(millis() - timer>= 2000) // Executa 1 vez a cada 2 segundos { DHT.read11(A1); // leitura do dht, ligado no pino A1 Serial.print(DHT.humidity); // Exibe na serial o valor de umidade Serial.print("% umidade"); Serial.print('\t'); Serial.print( DHT.temperature); // Exibe na serial o valor da temperatura Serial.println("°C temperatura"); timer = millis(); // Atualiza a referência }
// Programação sensor de umidade de solo if (analogRead(sensorsolo) <= 154){ // 85% a 100% de umidade 0 a 1023 digitalWrite(porta_rele3, LOW); // desliga a bomba 1023 ________ 100% Serial.println("Bomba desligada"); // x ________ 85% } // 100x = 1023.85 x = 86955/100 = 869,5 else { // 1023 - 869,5 = 154 Serial.println(" Bomba ligada"); digitalWrite(porta_rele3, HIGH); // liga a bomba } Serial.print(" Umidade do solo:"); Serial.print(analogRead(sensorsolo)); Serial.print(" "); }
// programação para lampada void tarefa1(){ // Verifica se já passou 16h, 57600000 milisegundos if((millis() - millisTarefa1) < 57600000 ){ digitalWrite(porta_rele2, HIGH); // Acende a lampada pino D9 } else{ digitalWrite(porta_rele2, LOW); // Desliga a lampada pino D9 } // Verifica se já passou 24h, 86400000 milisegundos if((millis() - millisTarefa1) > 86400000){ millisTarefa1 = millis(); } }…
andos AT ??
Você conecta o seu ESP8266, e através de alguns comandos, o FW é atualizado automaticamente !
ESP8266 - atualizando Firmware através da rede WIFI - FOTA
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...
Procedimento de atualização de FW - FOTA
ESP8266 FOTA Guide English
-------------------------------------------------------------------------------------------
Esse é o procedimento manual ( sem FOTA)
Revendo o último FW liberado pela ESPRESSIF :
http://bbs.espressif.com/viewtopic.php?f=46&t=850
[SDK Release] ESP8266_NONOS_SDK_V2.0.0_16_07_19
Link da documentação mais recente (set/2016) :
http://bbs.espressif.com/viewtopic.php?f=67&t=225
Leia as notas, antes de atualizar o FW !! Qual é o modelo do seu ESP8266 ?
Veja que dependendo do tamanho da memória Flash, alguns FW mais atuais não cabem
Since the release of ESP8266_NONOS_SDK_V1.5.0, AT firmware is too large to use 4Mbit flash. Please choose flash with at least 8Mbit capacity.…
ro equipamento e funcionou usando um Til 111 e um Tip106D, como demostro em uma simulação no proteus, circuito em anexo.
Se eu não usar o Tip 106 ele não da o pulso e não "pressiona" o botão.
Parece que eu preciso gerar uma pequena tensão para "pressionar" o botão no outro equipamento, simulado na entrada B do osciloscopio, 0,5V funcionou legal, claro que depois de um curto periodo volta a 0v.
Minha duvida é :
1) De onde que sai este 0,5v (mostrado no osciloscopio virtual), ja que não tem relação com R14, mudei de valor ele e inclusive tirei ele fora e continua dando +-0,5v no pino 4 do optoacoplador ?
2) Se eu trocar o til 111 por outro tipo EL817 (não achei nenhum parecido com esse para simular no proteus), meu circuito nao funciona ?
(http://www.sztuofeng.com/pdf/%E4%BA%BF%E5%85%89EL817.pdf)
3) Pq o uso do Tip é necessario, se não, não funciona ?
Valeu pessoal do Lab.
[]´s
Jota
…
ntribuiram com seus programas!
http://forum.arduino.cc/index.php/topic,54788.msg707885.html#msg707885
/* ARDUINO DECODIFICADOR HT6P20B COM RESISTOR DE 2M2 NO OSC.ESTE CÓDIGO NÃO USA TIMER, INTERRUPÇÃO EXTERNA E NEM PINO DEFINIDO DE ENTRADA.ELE MEDE O TEMPO DO PILOT PERIOD E COMPARA SE ESTÁ DENTRO DA FAIXA DEFINIDA,SE TIVER ELE PASSA PARA CODE PERIOD E FAZ AS MEDIDÇÕES DE TEMPO EM NIVEL ALTOSE TIVER DENTRO DA FAIXA ACRECENTA BIT 1 OU 0 NA VARIAVEL _DATA CASO NÃO ZERA AS VARIÁVEIS E RE-INICIAAPOS RECEBER TODOS OS BITS ELE PEGA OS 4 BITS DO ANTE CODE E TESTA PARA SABER SE O CÓDIGO FOI RECEBIDO CORRETAMENTE, CASO RECEBIDO CERTO ELE COLOCA A VARIAVEL ANTCODE EM 1.CRIADO POR: JACQUES DANIEL MORESCODATA: 28/02/2012 USANDO ARDUINO 0022.FONES:54 3324 2251 54 9206 7168E-MAIL: ibisul@ibisul.com.brPermitido o uso público, mas deve-se manter o nome do autor.*/int x,startbit,ctr,dataok,t1,larpulso,larpulso1,larpulso2,larpulso3,larpulso4,bt1,bt2,antcode=0;unsigned long _data=0; // DATA é o Código recebio do HT6p20 todos os 28 BITS onde, 22 do coodigo+2 dos botões+4 do anti-codigo;unsigned long _dur,_dur1; // Duração do Pulsobyte _pin; // Pino que vai receber o sinal RF digital.void setup(){ _pin=2; Serial.begin(9600); pinMode(2, INPUT); pinMode(13, OUTPUT);}void loop(){ digitalWrite(13, digitalRead(2)); //Pisca o LED conforme o valor da entrada digital, testar interferencias.if (startbit==0) {// Testa o tempo piloto até o Bit de inicio; _dur = pulseIn(_pin, LOW); if(_dur > 8000 && _dur < 12000 && startbit==0) { larpulso=_dur/23; larpulso1=larpulso-50; larpulso2=larpulso+50; larpulso3=larpulso+larpulso-50; larpulso4=larpulso+larpulso+50; startbit=1; _dur=0; _data=0; dataok=0; ctr=0; } } // Se o Bit de inicio OK ENTÃO Inicia a medição do tempo em Nivel ALTO dos sinais, e testa se o tempo está na faixa.if (startbit==1 && dataok==0 && ctr < 28) { ++ctr; _dur1 = pulseIn(_pin, HIGH); if(_dur1 > larpulso1 && _dur1 < larpulso2) // Se a largura de pulso é entre 1/4000 e 1/3000 segundos { _data = (_data 1) + 1; // anexar um * 1 * para a extremidade mais à direita do buffer } else if(_dur1 > larpulso3 && _dur1 < larpulso4) // Se a largura de pulso é entre 2/4000 e 2/3000 segundos { _data = (_data 1); // anexar um * 0 * para a extremidade mais à direita do buffer } else { /* força finalização do laço */ startbit=0; } } if (ctr==28) { if (bitRead(_data,0)==1) { if (bitRead(_data,1)==0) { if (bitRead(_data,2)==1) { if (bitRead(_data,3)==0) { antcode=1; } } } } if (antcode==1) {// Se foram recebidos todos os 28 Bits, o valor vai para a variavel _data e pode ser usada como exemplo abaixo. dataok=1; Serial.println(_data,BIN); ctr=0; startbit=0; antcode=0; delay(100); } }}
…
eu fico em cima do muro! rs.
Meu, essa palavra "descodificando/descodificado" pode até ser a correta, mas é bem estranha neh? Sempre li/escrevi "decodificar" na minha vida... rs.
T+…
DS1307 DS1307 rtc(4, 5); // Init a Time-data structure Time t; void setup() { // Initialize the rtc object rtc.begin(); // Set the clock to run-mode rtc.halt(false); // Setup Serial connection Serial.begin(9600); // The following lines can be commented out to use the values already stored in the DS1307 rtc.setDOW(SUNDAY); // Set Day-of-Week to SUNDAY rtc.setTime(12, 0, 0); // Set the time to 12:00:00 (24hr format) rtc.setDate(3, 10, 2010); // Set the date to October 3th, 2010 } void loop() { // Get data from the DS1307 t = rtc.getTime(); // Send date over serial connection Serial.print("Today is the "); Serial.print(t.date, DEC); Serial.print(". day of "); Serial.print(rtc.getMonthStr()); Serial.print(" in the year "); Serial.print(t.year, DEC); Serial.println("."); // Send Day-of-Week and time Serial.print("It is the "); Serial.print(t.dow, DEC); Serial.print(". day of the week (counting monday as the 1th), and it has passed "); Serial.print(t.hour, DEC); Serial.print(" hour(s), "); Serial.print(t.min, DEC); Serial.print(" minute(s) and "); Serial.print(t.sec, DEC); Serial.println(" second(s) since midnight."); // Send a divider for readability Serial.println(" - - - - - - - - - - - - - - - - - - - - -"); // Wait one second before repeating :) delay (1000); }
A hora aparece completamente errada, os minutos ficam em 85, os segundos em 85 as horas em 21, o ano fica em 2165, o mês em 85.
O problema pode ser biblioteca, ou o modulo mesmo está com defeito?? Alguém pode me dar uma ajuda??
…
borda de subida do gráfico, provavelmente gerados no momento que uma carga é ligada.
Bruno, sugiro que faça testes acionando as diversas cargas uma de cada vez, registrando o horário e depois confira no gráfico qual foi o comportamento de cada uma.…
Adicionado por Wiechert ao 18:58 em 2 fevereiro 2014