Escolar Documentos
Profissional Documentos
Cultura Documentos
Introdução
muito interessante poder salvar todas as medidas para que seja fácil avaliar se o Adaptador (1)
medicamento está em boas condições.
Arduino (47)
Existem diversas soluções comerciais para o armazenamento de dados em longo
Arduino MEGA (1)
prazo, e essa é a função de um Datalogger. A principal desvantagem de um
datalogger comum é o acesso aos dados. Arduino Pro Mini (1)
Display (1)
Se caso você não sabe o que é um banco de dados, não se preocupe, aqui vou te
explicar um pouco sobre esse conceito de forma simples. Display 7 segmentos (2)
Um banco de dados é um conjunto de dados relacionados entre si que são Display LCD (1)
organizados de forma extremamente otimizada para que seja rápido a busca, e de Display OLED (1)
forma compacta.
ESP-01 (4)
De forma muito simplista, podemos comparar o armazenamento de um banco de
ESP01 (2)
dados a várias tabelas de um Excel, onde no Excel o que chamamos de planilha, no
banco de dados chamamos de tabelas (um banco de dados pode ser composto por ESP12 (3)
várias tabelas) . O que chamamos no excel de colunas, no banco de dados ESP32 (2)
chamamos de campo. E o que no Excel chamamos de linha, no banco de dados
ESP8266 (4)
chamamos de registro.
GPS (1)
Diferente do Excel, a principal vantagem de um banco de dados está no sistema
que gerencia esses dados, que utiliza uma linguagem de consulta própria, onde HC-06 (1)
através dela possamos incluir dados, consultar os dados e gerenciar todo o banco HX711 (1)
de dados. Recomendo fortemente que pesquise sobre o assunto caso tenha
IOT (1)
interesse.
Keypad (1)
LDR (1)
MAX7219 (1)
Existem vários tipos de bancos de dados, no qual a linguagem de consulta pode
mudar, e que o banco de dados em si podem estar armazenados em vários locais Mini Bomba (1)
diferentes: ou uma máquina local, ou em uma rede local, ou até mesmo em uma
Módulo Relé (1)
máquina na internet que está a vários quilômetros de distância. Essa última opção
que é a mais interessante para a gente. Motor de passo (2)
A linguagem de consulta de dados que vamos escolher é a MySQL, por ser simples, RFID (1)
possuir uma comunidade grande e uma boa biblioteca para Arduino. Sem categoria (8)
Este projeto pode ser bastante útil para diversos tipos de aplicação onde seja
necessário registrar dados em nuvens e apresentar ele através da Web.
Tudo sobre Arduino
30 de junho de 2020
Para este projeto escolhemos um Arduino Uno + o ESP-01 porque sabemos que
Guia completo do
grande parte de vocês possui um Arduino Uno, e dessa forma poderemos fazer o Arduino Pro Mini
0
projeto com os materiais que vocês já possuem.
29 de abril de 2020
É possível facilmente adaptar o projeto para uma placa NodeMCU, e �ca a critério
Gravando
de vocês escolherem o melhor caminho.
programas no
0
Vá no seu e-mail e ative a sua conta clicando no link onde está o campo em
vermelho.
Preencha seus dados para �nalizar.
Escolha o plano DEV, que é grátis para até 10MB.
Depois de tudo criado, você terá as credenciais para o seu banco de dados. As do
meu banco de dado são estas, as suas são diferentes.
E assim o seu banco de dados já estará criado e pronto para ser usado, mas ainda é
necessário criar uma tabela para inserirmos os dados.
Vá em “Databases”.
Coloque o nome “Temperatura” (Se atente a primeira letra ser maiúscula), e
selecione 3 colunas. Após isso clique em GO.
Assim a sua tabela e o seu banco de dados foram criados com sucesso.
Para este projeto, precisamos ter em mente que utilizaremos o módulo ESP-01 em
Standalone, isso é, gravaremos nele nosso próprio �rmware personalizado que será
disponibilizado aqui nesse post.
Como sabemos, gravar as placas ESP precisa de alguns macetes, que podem ser
vistos nesse post (clique aqui).
Para gravar o seu programa no ESP-01 utilizando o Arduino Uno se caso você não
possuir um adaptador USB, ou um conversor USB/Serial, primeiramente abra a
Arduino IDE (Se não possuir ou não sabe o que é, recomendo ler este post) e
carregue um código em branco para a sua placa.
Depois faça a seguinte montagem com o Arduino e o ESP-01:
O
O EESSPP--0011 éé aalliim
meennttaaddoo eem
m 33..33VV
Com essa ligação feita, abra a Arduino IDE já con�gurada para enviar programas
para ESP-8266. Se caso você não realizou essa con�guração, clique aqui e aprenda
como con�gurar.
Você irá precisar instalar a seguinte biblioteca (Vá em ferramentas > Gerenciador de
bibliotecas):
Arduino
1 /*
2 * Programa para ESP-01
3 * Eletrogate
4 * Arduino IDE versão 1.8.12
5 */
6 #include <ESP8266WiFi.h>
7 #include <MySQL_Connection.h>
8 #include <MySQL_Cursor.h>
9
10 IPAddress server_addr(54, 39, 75, 7); // O IP DO SERVIDOR DA CLEVER CLOUD
11 char user[] = ">USUARIO CLEVER CLOUD<"; // Usuario MySQL
12 char password[] = ">COLOQUE AQUI A SENHA<"; // Senha MySQL
13
14 char ssid[] = ">SEU USUARIO WIFI<"; // Nome de rede Wifi
15 char pass[] = ">SENHA_WIFI<"; // Senha Wi-Fi
16
17 char INSERT_DATA[] = "INSERT INTO >NOME_DO_BANCO_DE_DADOS<.Temperatura (ID_SENSOR, Temperatura) VALUES (%
18 // EXEMPLO ACIMA: "INSERT INTO b3d3z8bggux9ngtdusfw.Temperatura (ID_SENSOR, Temperatura) VALUES (%d,%s
19
20 WiFiClient client;
21 MySQL_Connection conn(&client);
22 MySQL_Cursor* cursor;
23
24 void sseettuupp() {
25 SSeerriiaall.begin(9600);
26 VerificaWiFi();
27 }
28
29 void lloooopp() {
30 int id;
31 float temp;
32
33 AguardaDados();
34 Leitura(&id, &temp);
35 ddeellaayy(100);
36 EnviaDados(id, temp);
37 SSeerriiaall.println();
38 }
39
40 void AguardaDados() {
41 wwhhiillee (!(SSeerriiaall.available() > 0)) {}
42 }
43 void Leitura(int *id, float *temp) {
44 char mensagem[20];
45 byte atual, i = 0;
46 atual = 255;
47
48 iiff (SSeerriiaall.available() > 0) {
49 wwhhiillee (atual != 10) {
50 iiff (SSeerriiaall.available() > 0) {
51 atual = SSeerriiaall.read();
52 // Serial.print((char)leitura);
53 mensagem[i] = (char)atual;
54 i++;
55 }
56 }
57 i = 0;
58 *id = atoi(strtok(mensagem, "|"));
59 *temp = atof(strtok(NULL, "|"));
60 }
61
62 }
63 void EnviaDados(int id, float temp) {
64
65 char query[128];
66 char temperatura[10];
67 VerificaWiFi();
68 iiff (conn.connect(server_addr, 3306, user, password)) {
69 ddeellaayy(1000);
70 MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
71 // Save
72 dtostrf(temp, 1, 1, temperatura);
73 sprintf(query, INSERT_DATA, id, temperatura);
74 // Execute the query
75 cur_mem->execute(query);
76 // Note: since there are no results, we do not need to read any data
77 // Deleting the cursor also frees up memory used
78 delete cur_mem;
79 SSeerriiaall.println(); SSeerriiaall.println("Data recorded."); //
80 }
81 eellssee
82 SSeerriiaall.println(); SSeerriiaall.println("Connection failed."); //
83 conn.close();
84 }
85
86 void VerificaWiFi() {
87 iiff (WiFi.status() != WL_CONNECTED) {
88 //Serial.println("Sem conexão"); //
89 WiFi.disconnect();
90 ddeellaayy(1000);
91 WiFi.begin(ssid, pass);
92 // Serial.println();Serial.println("Conectando ao WiFi."); //
93 wwhhiillee (WiFi.status() != WL_CONNECTED) {
94 ddeellaayy(500);
95 }
96 // Serial.println();Serial.println("Conectado a rede!"); //
97 }
98 }
E aguarde a mensagem “Hard resetting via RTS pin” aparecer, que é o sinal de que
sua placa já foi gravada.
Agora faça a seguinte montagem com sua placa Arduino e sensores DS18B20.
Observe bem que foi mudado a posição dos jumpers RX e TX, em relação ao
diagrama anterior.
Se você quiser utilizar mais sensores de temperatura, você pode utilizar quantos
quiser nesse projeto.
E carregue o seguinte código para o Arduino.
Arduino
1 #include <OneWire.h> // Biblioteca para o protocolo de comunicação
2 #include <DallasTemperature.h> //Biblioteca das funções do sensor de temperatura
3 #include <SoftwareSerial.h> // A biblioteca para comunicar o Arduino com o ESP-01
4
5 SoftwareSerial SoftSerial(8,9); // RX Arduino 8, TX Arduino 9.
6
7 class Sensor { // Criando uma classe para ficar mais fácil usar os sensores
8 uint8_t ID_num ;
9 OneWire _Wire;
10 DallasTemperature sensor;
11 public:
12 void SetPin(uint8_t pin1) {
13 _Wire.begin(pin1);
14 sensor.setOneWire(&_Wire);
15 sensor.setResolution(12);
16 sensor.begin(); //INICIA O SENSOR
17 sensor.requestTemperatures(); }
18 float Temp() {
19 sensor.requestTemperatures();
20 rreettuurrnn (sensor.getTempCByIndex(0)); }
21 void SetID(uint8_t n) {
22 ID_num = n;}
23 uint8_t ID() {
24 rreettuurrnn (ID_num);}
25 };
26 Sensor TempAmbiente; // Crio um tipo de sensor de temperatura que é para medir o ambiente
27
28 void sseettuupp() {
29 ddeellaayy(7000); // Aguarda um tempo para inicialização do ESP
30 TempAmbiente.SetPin(2); // Defino o pino 2 como o pino do sensor de temperatura
31 TempAmbiente.SetID(1); // Seto o ID como o sensor de temperatura do ambiente como 1
32 SSeerriiaall begin(9600) //INICIALIZA A SERIAL
Note que por este código só estamos utilizando um sensor, mas para utilizar outros
é bem simples, basta no loop setup você de�nir o pino de conexão desse sensor e o
ID dele. Exemplo:
Arduino
1 // (...)
2 Sensor TempAmbiente, TempExterna;
3
4 void sseettuupp() {
5 ddeellaayy(5000);
6 TempAmbiente.SetPin(2);
7 TempAmbiente.SetID(1);
8 TempExterna.SetPin(3);
9 TempExterna.SetID(2);
10 SSeerriiaall.begin(9600); //INICIALIZA A SERIAL
11 SoftSerial.begin(9600);
12 }
13
14 void lloooopp() {
15
16 EnviaESP(TempAmbiente.ID(),TempAmbiente.Temp());
17 EscutandoESP(8000);
18 EnviaESP(TempExterna.ID(),TempExterna.Temp());
19 EscutandoESP(8000);
20 }
21
22 // (...)
Um possível erro
Um possível erro pode estar no endereço do host. No nosso código para ESP-01 o
endereço do host foi colocado direto como
Se caso não estiver funcionando, pode ser que o seu servidor seja outro. Para
descobrir o IP do seu HOST, copie o endereço http dele, e vá no Prompt de
comandos
Uma das vantagens do Clever Cloud é que ele permite manipular os dados em uma
interface grá�ca.
Clique em export, .
Escolha o melhor formato para que você possa manipular esses dados (eu escolhi
CSV do Excel)
Abra o arquivo no Excel, pressione Ctrl + L (ou Ctrl + F se for a versão em inglês), e
substitua todo o ponto por vírgula, se caso seus números forem com a notação de
decimais com vírgula.
E o resultado será este:
É possível usar o próprio Clever Cloud para gerar o grá�co, clicando em “Display
Chart”
E você deverá selecionar o número máximo de colunas. Não achei muito viável
porque demora bastante para gerar os grá�cos.
O ESP-01 não foi usado para receber comandos AT porque nessa con�guração
ele deu problemas com o banco de dados, que sempre retornava erros na
conexão (motivo desconhecido)
Poderia ligar diretamente o ESP-01 a porta serial nativa do Arduino Uno, mas
isso não pareceu uma boa escolha por causa do excesso de informação no
Monitor Serial.
Conclusões
É altamente recomendado que se você altere o código e deixe do melhor jeito para
a sua aplicação, pois ele é livre.
Espero que você tenha tido um bom aprendizado. Se você montou e curtiu muito o
resultado, nos marque lá no instagram: @eletrogate
Gostou? Deixe um curtir. Se caso quiser deixar uma dúvida, ou um elogio, deixe um
comentário!
sssss
No votes yet.
Voting is currently disabled, data maintenance in progress.
Gustavo Nery
Artigos Relacionados
– 240V ESP-01
Leia mais
TAMBÉM NO ELETROGATE
Just another WordPress site Just another WordPress site Introdução O conceito da Introdução Se você leu
automação residencial, ou nosso post do Sinalizad
domótica, surgiu na França para te lembrar de lavar
Nome
Redes sociais
Eletrogate Atendimento
Acesse nossa loja (31) 3142-3800
Sobre nós (31) 99451-3800
Apostilas contato@eletrogate.com
Contato Segunda a Sexta das 08:00
às 17:00