Índice:
- Etapa 1: Programação do ATTINY 85
- Etapa 2: Upload do programa para ATTINY85
- Etapa 3: executando seu programa
- Etapa 4: Conclusão
Vídeo: Alertas temporários de texto SMS de um ATTINY85 e A1 GSM: 5 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Este instrutível mostra como capturar a temperatura de um sensor de temperatura simples e enviá-lo por texto sms para o seu telefone celular. Para simplificar, envio a temperatura em um intervalo definido, mas também mostro como isso só pode ser feito por exceção / alertas. O hardware tem um custo muito baixo, menos de 10 dólares, embora haja os custos recorrentes de sms a serem considerados.
O trabalho pesado é realizado pelo simples, mas poderoso ATTINY 85, que captura os dados de temperatura e aciona um SMS a ser enviado por meio de um módulo GSM AI-Thinker A6.
Resumindo, você escreve o código ATTINY85 no ambiente Arduino IDE e o grava no ATTINY85 usando um conversor serial / USB USBASP. Eu cobri a configuração do módulo GSM AI-Thinker A6 e do Arduino IDE em dois tutoriais anteriores. O que é diferente aqui é a interface do módulo ATTINY e A6 GSM usando comunicações seriais.
www.instructables.com/id/How-to-Send-an-SM…https://www.instructables.com/id/15-Dollar-Attiny8…
Após a programação, o ATTINY lê os dados de temperatura de um sensor termômetro - Dallas 18B20- e envia os dados e comandos por conexão serial para o módulo A6 GSM que então os envia como um texto SMS para o seu celular / smartphone.
Aqui está o que você precisa:
1. Conversor serial / USB USBASP.
2. ATENÇÃO 85.
3. Módulo GSM AI-Thinker A6 versão 6 (com um sim que possui créditos de SMS).
4. Fonte de alimentação de placa de ensaio de 3,3 V para o ATTINY85.
5. Fonte de alimentação USB 3.3.v para o módulo GSM AI-Thinker A6.
6. Sensor de temperatura Dallas 18B20..
7. Resistor de 4,7k para o sensor 18B20.
8. Placa de ensaio e cabos.
9. Arduino IDE (usei a versão 1.8.5. Para isso).
10. Laptop Windows X (usei a versão 10) com uma porta USB livre.
Etapa 1: Programação do ATTINY 85
Aqui está o código IDE do Arduino (você terá que alterar o número de telefone para o qual deseja enviar o SMS).
#include #include #include
// *** // *** Defina os pinos RX e TX. Escolha quaisquer dois // *** pinos que não sejam usados. Tente evitar D0 (pino 5) // *** e D2 (pino 7) se você planeja usar I2C. // *** #define RX 3 // *** D3, Pino 2 #define TX 4 // *** D4, Pino 3
// *** // *** Defina a porta serial baseada no software. Usando o // *** nome Serial para que o código possa ser usado em outras // *** plataformas que suportam serial baseado em hardware. Em // *** chips que suportam o serial do hardware, apenas // *** comente esta linha. // ***
SoftwareSerial mySerial = SoftwareSerial (RX, TX);
// *** // *** Pinagem ATtiny25 / 45/85: // *** PDIP / SOIC / TSSOP // *** ================== ====================================================== ============================= // *** // *** (PCINT5 / RESET / ADC0 / dW) PB5 [1] * [8] VCC // *** (PCINT3 / XTAL1 / CLKI / OC1B / ADC3) PB3 [2] [7] PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) // *** (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) PB4 [3] [6] PB1 (MISO / DO / AIN1 / OC0B / OC1A / PCINT1) // *** GND [4] [5] PB0 (MOSI / DI / SDA / AIN0 / OC0A / OC1A / AREF / PCINT0) // *** // Frequência ATTINY 85 definida para 8 MHz interno
// *** // *** Pino no qual o fio de dados do OneWire // *** está conectado. // *** #define ONE_WIRE_BUS 1
// *** // *** Configure uma instância oneWire para se comunicar com quaisquer dispositivos OneWire // *** (não apenas ICs de temperatura Maxim / Dallas). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);
// *** // *** Passe nossa referência oneWire para a temperatura de Dallas. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);
void setup () {// *** // *** Inicializar a porta serial // *** mySerial.begin (115200); atraso (60.000);
// *** Inicie a biblioteca. _sensors.begin (); }
void loop () {
// *** // *** Obtenha a temperatura atual e exiba-a. // *** _sensors.requestTemperatures (); atraso (2000); double tempC = _sensors.getTempCByIndex (0); double tempF = _sensors.getTempFByIndex (0); // verifique se há erros - às vezes no início, a temperatura é mostrada como 85C
if (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC, "Too warm");}}
void SMS_temp (duplo mytemp, String myalert) {mySerial.println ("AT + CMGF = 1"); // definido para modo SMS delay (1000); mySerial.println ("AT + CMGF = 1"); // definido para modo SMS delay (1000); //mySerial.println("AT+CMGS=\"+YOUR NUMBER / ""); // define o número do telefone (entre aspas duplas) delay (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); atraso (1000); mySerial.write (0x1A); // envia ctrl + z final da mensagem delay (1000); mySerial.write (0x0D); // Retorno de carro em Hex delay (1000); mySerial.write (0x0A); atraso (1000000); // 17 minutos - ajuste para se adequar à sua própria aplicação}
Abra o ambiente Arduino IDE - eu descrevi como encontrar uma maneira de contornar isso em detalhes em meu instrutível anterior, ao qual aludi anteriormente.
Você precisará das seguintes bibliotecas
SoftwareSerial.h
OneWire.h
DallasTemperature.h
Em seguida, configure os pinos RX e TX no ATTINY85 que você precisa para conectar com o A1 Thinker. O ATTINY 85 possui 8 pinos, quatro de cada lado e é alinhado com o ponto na superfície como referência. O pino 1 ou o pino RESET está ao lado do ponto.
(neste caso eu escolhi os pinos 2 e 3 - eles estão no mesmo lado do pino RESET, que está ao lado do ponto na superfície do ATTINY 85. O pino 2 é o próximo pino ao longo do pino RESET enquanto o pino 3 está entre o pino 2 e GROUND)
Em seguida, você deve configurar o sensor de temperatura -
#define ONE_WIRE_BUS 1
OneWire _oneWire = OneWire (ONE_WIRE_BUS);
DallasTemperature _sensors = DallasTemperature (& _ oneWire);
Em seguida, configure a porta serial do software
mySerial.begin (115200);
atraso (60.000);
e então chame os sensores com _sensors.begin ();
Em seguida, vem o loop, que faz um polling em um horário pré-determinado, registra a temperatura e envia uma mensagem / alerta dependendo do valor. Ele usa uma função SMS_temp que também é onde você define o tempo do loop
void loop () {sensores.requestTemperatures (); atraso (2000);
double tempC = _sensors.getTempCByIndex (0);
double tempF = _sensors.getTempFByIndex (0);
if (tempC <= 14) {SMS_temp (tempC, "PERIGOSAMENTE Frio");}
if (tempC> 14 && tempC <= 18) {SMS_temp (tempC, "Muito frio");}
if (tempC> 18 && tempC <23) {SMS_temp (tempC, "Temp Just right");}
if (tempC> = 23 && error_temperature) {SMS_temp (tempC, "Too warm");}
}
==============
Em seguida, configure o IDE do Arduino para preparar o upload para o ATTINY85.
Uma série de coisas a serem observadas
1- Se você não tem a família de placas ATTINY, adicione o seguinte url https://raw.githubusercontent.com/damellis/attiny/… em Arquivo / Preferências / URL do gerenciador de placas adicionais, Em seguida, no IDE do Arduio, clique em Tools / Board / Board Manager, procure ATTINY e instale a nova placa. Mude o processador para Attiny85.
Etapa 2: Upload do programa para ATTINY85
Além disso, consulte meu instrutivo anterior sobre isso -
O ATTINY85 possui dois modos, modo de programação e modo de operação, respectivamente.1. MODO DE PROGRAMAÇÃO Em primeiro lugar, identifique os pinos no ATTINY85. Para fazer isso, encontre o pequeno entalhe na superfície do chip que está ao lado do pino RST / RESET. Usando isso como um ponto de referência, você pode identificar o resto dos pinos. Todas essas informações são fornecidas na planilha de dados A85 -https://ww1.microchip.com/downloads/en/DeviceDoc/At…
O USBasp e o ATTINY85 devem ser conectados conforme mostrado na imagem acima.
Em seguida, no IDE do Arduino, defina o programador para USBasp e a frequência para 8Mhz interno.
Conecte o USBasp a uma porta USB do seu laptop (no Windows 10, se você não tiver o driver USBasp, use o Zadig conforme o site
Em seguida, com o USBasp conectado, selecione no Arduino IDE Sketch / upload e, com sorte, você verá o progresso do upload mostrado em letras vermelhas do Arduino IDE e terminando com avrdude feito. Obrigada.
Quaisquer erros neste estágio são normalmente associados a cabos soltos ou driver incorreto.
Etapa 3: executando seu programa
Em primeiro lugar, algo sobre o sensor do termômetro Dallas 18b20. Possui 3 pinos, Terra (G), dados (D) e VCC como mostrado na imagem acima. Para operação, é necessário conectar o D e VCC com um resistor de 4,7k. G e VCC são conectados aos respectivos pólos, enquanto D está conectado a um ATTINY 85, pino - [6] PB1, conforme configurado no código.
Em seguida, conecte o ATTINY ao A6 GSM da seguinte maneira (e mostrado acima)
ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd
ATTINY GND A6 GND
e na própria A6, A6 PWR A6 VCC 5.0A6 RST A6 GND (não conecte ao aterramento ainda !!!!!)
Agora ligue os dois dispositivos e, após alguns segundos, toque temporariamente no pino de aterramento A6 com o cabo conectado ao pino A6 RST. O A6 será desligado e ligado e, com sorte, você receberá em breve os dados de temperatura em seu telefone.
Etapa 4: Conclusão
Isso pode parecer bastante simples, mas a ideia é ilustrar o que pode ser alcançado com componentes de baixo custo. Obviamente, se você tiver acesso a wi-fi ou a um hub BLE, existem soluções mais adequadas.
Não cobri outras funcionalidades, como enviar um SMS PARA o telefone para iniciar a gravação / transmissão de temperatura, etc.
Recomendado:
Dispositivo de segurança para mulheres com rastreamento e alertas GPS usando Arduino: 6 etapas
Dispositivo de segurança para mulheres com rastreamento e alertas por GPS usando Arduino: com toda a tecnologia disponível para nós nos últimos tempos, não é difícil construir um dispositivo de segurança para mulheres que não apenas gerará um alarme de emergência, mas também enviará uma mensagem para seus amigos e familiares , ou pessoa em causa. Aqui vamos construir uma banda
Como enviar mensagens de texto SMS do seu projeto Arduino ESP: 6 etapas
Como enviar mensagens de texto SMS de seu projeto Arduino ESP: Este instrutível demonstra como enviar mensagens de texto SMS de seu projeto arduino usando um dispositivo ESP8266 e uma conexão WiFi. Por que usar SMS? * As mensagens SMS são muito mais rápidas e confiáveis do que a notificação de aplicativo mensagens. * Mensagens SMS também podem
Alarme de porta faça você mesmo com alertas de texto: 5 etapas
Alarme de porta DIY com alertas de texto: Faça seu próprio alarme de porta / janela com alguns eletrônicos simples, ímãs e Raspberry Pi. O Raspberry Pi é usado para enviar mensagens de texto ou e-mail quando a porta é aberta! Materiais necessários (links incluídos): Raspberry Pi (aqui está o kit que usamos) Reed SwitchNeodymiu
Alarme de porta do Arduino com alertas de texto: 14 etapas (com imagens)
Alarme de porta Arduino com alertas de texto: Este é um alarme de porta baseado em Arduino que usa um interruptor magnético de palheta para determinar o estado da porta e tem um alarme audível e um alarme baseado em mensagem de texto
Decalques de fita temporários para ipod: 7 etapas
Decalques de fita temporários para ipod: Faça seus próprios decalques para ipods, laptops, virtualmente qualquer superfície plana com algumas fitas de embalagem e fotos de revistas, torne seu ipod tão único por fora quanto por dentro neste mundo cheio de mesmice