Paso #1 Descripción
Este motor es un motor de pasos del tipo bipolar, útil para aplicaciones que requieran de precisión y alta repetitividad. El motor además cuenta con un engrane de reducción acoplado al eje de salida. Este engrane nos permite tener un mayor torque de salida y tiene una relación de 1:64; es decir, el engrane tiene que dar 64 revoluciones para que el eje de 1 revolución. Observando la hoja de datos este motor tiene un ángulo de paso de 5.625°. Esto quiere decir que para que el engrane gire 1 revolución requiere dar 360°/5.625° = 64 pasos. Pero como se tiene una relación de 1:64 (1 vuelta el eje; 64 vueltas el engrane); entonces para que el eje del motor gire 1 revolución son necesarios 64*64 pasos, es decir 4096 pasos.
Por lo tanto el eje requiere de 64 vueltas de 64 pasos = 4096 pasosEl engrane tiene que dar 64 vuelta para que el eje de 1
El engrane requiere 64 pasos para 1 vuelta
Es importante saber que este valor que se indica es cuando se opera el motor en Paso Medio (Half Step). Si se trabaja en Paso Completo (Full Step) entonces solo se requieren 2048 pasos.
Paso #2 Características
- Voltaje Nominal: 5VDC
- Numero de Fases: 4
- Relación de Velocidad: 1/64
- Angulo de Paso: 625°
- Frecuencia: 100Hz
- Resistencia DC 50Ω±7%(25℃)
- Torque >34.3mN.m(120Hz)
Paso #3 Componentes
- Arduino Uno
- BYJ48 Motor de Pasos 5v
- ULN2003 Motor driver Module
- 5v fuente de poder externa mayor de 300Ma
- Cable Jumper
Paso #4 Descripción del Tutorial
La actividad a realizar es controlar la velocidad de un motor de pasos con velocidad mediante un potenciómetro conectado al puerto análogo A0 del Arduino.
Paso #5 PinOut
Pines de Tarjeta ULN2003
|
Descripción
|
1N1
|
Fase 1 Azul
|
1N2
|
Fase 2 Rosa
|
1N3
|
Fase 3 Amarillo
|
1N4
|
Fase 4 Naranja
|
— |
GND
|
+
|
5V Fuente externa
|
Paso #6 Hardware
Paso #7 Librerías
Existen muchas maneras de controlar los motores de pasos, afortunadamente existe una librería ya incluida en el ambiente de programación de Arduino que utilizaremos para hacernos la vida más fácil. Para esto es necesario únicamente inicializar correctamente el motor con la siguiente función:
Stepper (steps, pin1, pin2, pin3, pin4)
Esta función está especificada en Paso Completo (Full Step) por lo que indicamos el número de pasos completos para dar 1 revolución. En el caso de nuestro motor estos son 2048 pasos. Los siguientes parámetros son los 4 pines a los que tenemos conectados cada uno de las 4 fases de nuestro motor.
Observando la conexión de nuestro motor se conectaron todos los cables en el mismo orden en que vienen del conector. Siguiendo esta configuración el pin2 y pin3 están invertidos, pero los podemos invertir desde el código.
A continuación se especifica la velocidad del motor en RPM con la función, la cual debe ser siempre positiva.
setSpeed(rpms)
Y finalmente se mueve el motor con la siguiente función:
step(steps)
Es importante notar que esta función bloquea la ejecución del programa, es decir, no se podrá hacer ninguna otra operación mientras el motor se esté moviendo, lo cual puede ser importante dependiendo de la aplicación que estemos implementando. Lo que podemos hacer es mover el motor pocos pasos a la vez y mandar llamar esta función continuamente para así poder ejecutar operaciones mientras se mueve el motor.
Si deseamos que el motor gire en sentido contrario simplemente enviamos un número negativo de steps en la función step. No se permite definir una velocidad negativa.
La tarjeta contiene un Circuito Integrado ULN2003 contiene 7 pares de Arreglos Darlington, que simplemente son 2 transistores conectados en cascada con el propósito de permitirnos controlar una corriente más alta con corriente baja. Es decir con la baja corriente del Arduino podemos controlar la alta corriente que exige el motor.
La tarjeta además incluye unos LEDs para saber en qué paso se encuentra el motor.
Paso #8 Software
#include <Stepper.h>
const int stepsPerRevolution = 2048;
Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);
int stepCount = 0; // numero de pasos el motor a dado
void setup() {
Serial.begin(9600);
}
void loop() {
// Lee el valor del sensor:
int sensorReading = analogRead(A0);
int motorSpeed = map(sensorReading, 0, 1023, 0, 20);
Serial.println(motorSpeed);
if (motorSpeed > 0) {
myStepper.setSpeed(motorSpeed);
myStepper.step(stepsPerRevolution / 1000);
}
}
Paso #9 Video
Si gustan ver una explicación MUY detallada pueden observar este video. https://www.youtube.com/watch?v=B86nqDRskVU
Hola muy buen aporte te felicito el motivo de mi pregunta es pedirte ayuda ya que sigo todos los pasos pero me manda error ayudame porfavor de antemano gracias
Que tal pudieras especificar en dónde te está apareciendo el error? qué es lo que te arroja?
Al momento de cargar el codigo me muestra algo parecido a esto
stk500_getsync(): not in sync: resp=0x00
Esto indica un problema de comunicación con el Arduino. Puedes intentar lo siguiente:
1. Desconecta y vuelva a conectar el Arduino.
2. Revisa que tengas seleccionado el Modelo de Arduino Correcto en Tools > Board > (Arduino Uno o la que tengas)
3. Revisa que este seleccionado el puerto correcto. Tools > Port > (COM #)
4. Asegúrate de que no tengas nada conectado en los pines 0 y 1 del Arduino que son los del puerto Serial, si los estás utilizando, desconéctalos para cargar el programa nuevo.
5. Instala los drivers más nuevos. https://www.arduino.cc/en/Main/Software
Por favor indícanos si alguno de estos pasos resolvió tu problema.
ok Muchas gracias ya lo hice y ahora me arroja esto
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
Qué sistema operativo tienes?
Qué tarjeta Arduino tienes?
Intenta esto:
1. Desconecta todo lo que tengas hacia el Arduino, únicamente conecta el USB a tu computadora.
2. Presiona el boton de RESET en tu Arduino
3. Intenta cargar el programa File > Examples > 01.Basics > BareMinimum
Qué error te aparece?
Creo que el error esta en el modulo wifi tengo conectado rx a 0 y tx a 1
Cuando programes el Arduino desconecta el wifi de los pines 0 y 1. Asegúrate que no haya nada conectado a estos pines y con eso debe funcionar. Una vez que se suba el programa conecta el wifi.
muchas gracias ya lo gráfica te lo agradesco mucho “solo otra pregunta sera posible funcione envés de red wifi utilice los datos moviles que en este caso me da telcel”
Nos da mucho gusto que te haya funcionado. El Módulo ESP8266 únicamente soporta redes Wifi. La red de Telcel es GSM por lo que necesitarías una shield compatible con esa red y tener una línea activa. Por el momento ese shield no lo manejamos pero lo puedes buscar en la red como “Arduino GSM Shield”. Saludos!
Excelente trabajo y primera vez que encuentro este proyecto bien explicado y a pasos… tengo un pequeño problema y espero me ayudes a resolverlo: si obtengo la grafica de temperatura pero en la grafica de humedad me pone 0 y/o nulo y veo que en el serial si envia datos por ejemplo el numero 37. Saludos y buen dia
Hola buen día, gracias por tu comentario. Puedes intentar lo siguiente:
1. Asegúrate que exista un delay de mínimo 20 segundos “delay(20000)” entre la escritura de cada dato, ya que Thingspeak no nos permite escribir datos tan seguido.
2. Revisa que tu “WRITE_API_KEY” este correcto y que tengas “field2” en la línea:
String GET_HUM = “GET /update?key=[WRITE_API_KEY]&field2=”; //Campo de humedad
Eseremos que esto resuelva tu problema, si no, no dudes en contactarnos. Saludos
Hola buen día, disculpa ¿se puede conectar directamente la alimentación, asi como lo muestras en el diagrama, de 3.3V y 5V al modulo wifi y al dht11, recpectivamente?
Es que leí que podía haber problema porque el arduino no maneja mucho amperaje.
Que tal. En cuanto al DHT11 no hay ningun problema, se puede conectar directamente a 5V del Arduino ya que consume muy poco amperaje.
Para el Modulo Wifi ESSP8266 como comentas es recomendable utilizar una fuente externa de 3.3V ya que sí puede llegar a consumir mayor amperaje. Para pruebas cortas se puede conectar con el Arduino, pero ya en operación contínua se recomienda una fuente externa.
Actualizaremos el tutorial pronto para mencionar esto. Saludos!
¿Y qué tipo de fuente me recomidas para usar con el modulo wifi?
Tienes varias opciones:
– Utilizar 2 baterías AA de 1.5V
– Conseguir un eliminador de 3.3V de algún aparato que no uses o comprar uno (en MercadoLibre por ejemplo)
– Utilizar un Regulador variable como el LM317
– Utilizar un Transistor como el 2N3055
– Utilizar un diodo Zener de 3.3V
(Puedes ver los circuitos de estos 3 ultimos aquí http://www.simple-electronics.com/2011/09/33v-power-supply.html )
Pronto manejaremos en nuestra tienda Eliminadores de 3.3V.
Saludos!
¿Cree que con la salida de 3.3V de una fuente ATX se pueda? De ser así ¿ocuparía resistencias? Disculpe las molestias es que apenas comienzo en el mundo de la electrónica.
Sí se puede, la puedes conectar directo sin resistencias, el módulo solamente utilizará la corriente que necesite.
No te preocupes, al contrario nos da gusto poder ayudarte a empezar en el mundo de la electrónica, para eso estamos. Con gusto te resolvemos cualqueir duda!
Hola buenas noches, disculpe tengo un problema, y es que ya tengo todo conectado pero en el monitor serie me manda el siguiente mensaje:
AT
MODULO WIFI NO RESPONDE
AT+CIPSTART=”TCP”,”184.106.153.149″,80
AT+CIPSEND=48
AT+CIPCLOSE
AT+CIPSTART=”TCP”,”184.106.153.149″,80
AT+CIPSEND=47
AT+CIPCLOSE
AT+CIPSTART=”TCP”,”184.106.153.149″,80
AT+CIPSEND=48
AT+CIPCLOSE
Y si lo dejo así se repite el ciclo. No sé que pueda ser, ya revice que los cables esten conforme al diagrama pero el módulo wifi no responde. Espero que me pueda ayudar, de ante mano muchas gracias.
Si el Módulo Wifi no responde intenta lo siguiente:
– Verifica que el Modulo Wifi tenga 3.3V (el Led Rojo debe encender)
– Verifica que estén bien conectados los pines RX TX
– Intenta intercambiando los pines de TX y RX
– Asegurate que el pin CH_PD del módulo también este conectado al pin de 3.3V
Si estás energizando el Wifi con una fuente externa, también asegúrate de conectar el GND de tu fuente con el GND de tu Arduino.
Por favor reporta tu resultado.
Tambien tengo este Warning: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if( Serial.find(“OK”) ){
es normal?
Es en la parte de compilación ¿verdad? Si es así no hay problema, es solo una advertencia de que la conversión es “obsoleta” entre un string y un char pero aun así puedes subir el código al arduino.
Ya me funcionó, era conectar la tierra de la fuente con la tierra del arduino, más tarde te muestro en resultado.
Hola Erick, como solucionaste el problema de “MODULO WIFI NO RESPONDE”? tambien me sucede
Sí, ya se solucionó el problema, comencé con lo que no había hecho que era conectar la tierra de la fuente ATX con la tierra del arduino y así funcionó.
Ya lo solucione Erick, gracias, el problema que tengo ahora es que cuando mando:
AT+CIPSTART=”TCP”,”184.106.153.149″,80
regresa ERROR, sabes que puede pasar?, gracias por tu respuesta!
Pienso que lo que está pasando es que no se está conectando con la página de thingspeak, checa tu internet, que no tenga algún filtro MAC por si lo estas haciendo fuera de tu casa.
Buenas, Espero tu pronta respuesta
Me fijo en dispositivos conectados a mi router y no me sale ninguno nuevo, que me falta?
El Modulo wifi esp8266 esta alimentado por fuente externa
cuando escribo comandos en la consola no me da respuesta :/
Gracias y disculpa la ignorancia
AT
AT+CWMODE=3
AT+CWJAP=”Flia.Silva”,”familiasilva2016″
AT+CIPSTART=”TCP”,”184.106.153.149″,80
AT+CIPSEND=50
AT+CIPCLOSE
AT+CIPSTART=”TCP”,”184.106.153.149″,80
AT+CIPSTART=”TCP”,”184.106.153.149″,80
AT+CIPSEND=50
AT+CIPCLOSE
AT+CIPSTART=”TCP”,”184.106.153.149″,80
AT+CIPSTART=”TCP”,”184.106.153.149″,80
AT+CIPSEND=50
AT+CIPCLOSE
AT+CIPSTART=”TCP”,”184.106.153.149″,80
AT+CIPSTART=”TCP”,”184.106.153.149″,80
AT+CIPSEND=50
AT+CIPCLOSE
AT+CIPSTART=”TCP”,”184.106.153.149″,80
Hola que tal!
Puedes intentar lo siguiente:
– Verifica 2 veces que el nombre de la red y la contraseña estén correctas (mayúsculas y minúsculas también importan).
– Asegúrate que la fuente externa pueda proporcionar al menos 500mA, el módulo puede consumir mucha corriente sobre todo si está muy lejos de tu router.
– Asegúrate que el voltaje de la fuente externa sea de 3.3V a 3.6V
– Asegúrate que el pin negativo (-) de tu fuente externa esté conectado al GND de tu Arduino ( ¡No confundir con el positivo + ! )
– Hemos encontrado que en algunos casos el módulo Wifi es más estable si se conectan también a 3.3V los pines 3 y 5 (GPIO0 y GPIO2).
Por favor indica tus resultados. Saludos
Hola buenas noches! tengo un problema, el cual es el siguiente logro cargar mi programa al arduino hago los cambios respectivos con el write api key, mi serial sale de esta forma
AT
AT+CWMODE=3
AT+CWJAP=”Masarbre”,”Ligiapereira51″
AT+CIPSTART=”TCP”,”184.106.153.149″,80
AT+CIPSEND=50
GET /update?key=[2DK662S1CF5L5ZB0]&field1=24.000
AT+CIPSTART=”TCP”,”184.106.153.149″,80
AT+CIPSEND=49
GET /update?key=[2DK662S1CF5L5ZB0]&field2=37.00
pero en la pagima de thingspeak no me grafica que podria ser el problema?
gracias por la ayuda saludos
Hola que tal! Por los mensajes que te arroja lo mas seguro es que sí este realizando la comunicación correctamente. Lo más probable es que tu API Key este incorrecto, verifica que la hayas ingresado bien y asegúrate que sea la WRITE API KEY y que no sea la READ Key. Saludos
Me parece que tenes que sacarle los corchetes ademas a la api key
Buenos días tengo una duda, en las únicas partes donde se debe cambiar un poco del código es en SSDI, PASS con lo propios y en [WRITE_API_KEY] .Mi pregunta es en [WRITE_API_KEY] cuando se sustituye por el propio key api debe ir un espacio entre ese y el modulo? eje: “GET /update?key=N5UWQ4CRCYG9602I &field1=”
o sin espacio “GET /update?key=N5UWQ4CRCYG9602I&field1=”. Ya intente con ambos y no logro ver nada en el servidor como puede verificar en que parte esta mi error?
Si ves símbolos extraños en la consola del Monitor Serial, seguramente tienes que cambiar el baudrate (velocidad de transmisión). En la parte inferior derecha el valor por defecto es de 9,600 bps, este lo deberás cambiar a 115,200 para poder ver los mensajes correctamente. Saludos
Excelente Tutorial, lo hice funcionar asi tal cual. Me pasa que la temperatura me actualizo dos veces nomas. Pensé que era por los decimales que la usas con 3 decimales y la humedad con dos. La puse con dos pero lo mismo.
Que es lo que haces con el digitalWrite(13,HIGH); y el digitalWrite(13,LOW); ??? tendrá que ver?.
Saludos, gracias
Las líneas digitalWrite(13, HIGH) y digitalWrite(13, LOW) son para enceder y apagan el LED de tu Arduino respectivamente. Están ahí únicamente para poder ver con el LED que se estén enviando los datos cada 20 segundos (las puedes remover sin problema).
En cuanto a envío de datos asegúrate que el sensor esté bien conectado, y que la WRITE_API_KEY este bien ingresada en las 2 lineas de código(12 y 13). El número de decimales es indiferente y debería de funcionar con 2 o 3. También asegúrate que el delay no sea menor a 20 segundos (20000 milisegundos)
Saludos!
Buenas tardes compañeros, necesito su ayuda urgente, espero puedan darme alguna solución. Estoy teniendo problemas ya que al programar el modulo WIFI esp 8266 desde el monitor serial, este funicona y responde bien, pero cuando lo intento desde un programa no me responde nada, lo he intentado cambiando las velocidades y con diversos tipos de programas como con ciclos while y serial print sin obtener respuesta del módulo esp8266. Muchas gracias
Hola Daniela! Considera el siguiente diagrama de comunicación. Para que tu PC se comunique con el ESP8266 hay que conectar el RX(PC) con TX(ESP8266) y TX(PC) con RX(ESP8266), esto se logra mediante los pines de tu Arduino Pin RX0 y Pin TX1. Cuando quieres que tu Arduino se comunique con el ESP8266 hay que hacer lo mismo: RX(Arduino) con TX(ESP8266) y TX(Arduino) con RX(ESP8266), viendo el diagrama podemos ver que están invertidos los pines.
En fin lo único que necesitas hacer es intercambiar los cables que tienes conectados en los pines 0 y 1 para que tu Arduino se comunique con el ESP8266. Para volver a comunicarte con tu PC inviértelos de nuevo.
Esperamos haber aclarado la duda. Saludos!
https://uploads.disquscdn.com/images/13bbe530d54c9956f69a6a0ce5a90ab2c55d17bb4d2067ca7e996d1bc08c7f2c.jpg
Hola muchas gracias por la ayuda, pero intenté hacer las conexiones que me sugieres y me aparece “Error al subir información a la placa”… No se que pueda estar fallando, otra cosa es que cuando conecto el modulo esp8266 sin ningun codigo ni nada me aparece invalid no se si eso tiene que ver
que no me responda cuando lo mando desde arduino.
Muchas gracias,
Hola! Recuerda que el Arduino utiliza los pines 0 y 1 para comunicarse con el puerto serial de tu PC cuando subes un programa. Por lo tanto mientras programes tu Arduino DESCONECTA cualquier cable de los pines 0 y 1, una vez que termine de programarse, vuelve a conectarlos. Esto se tiene que hacer cada vez que desees subir un programa a tu Arduino. Saludos!
Tengo una duda, en materiales pones resistencia de 10k ohms pero en el esquema no la pones. Esta resistencia la usas? Si es asi se la pones al DHT11 o al ESP8266?
Hola! La resistencia es un error, en realidad no es necesaria. Saludos!
Hola Profesor, primero que nada agradezco este tutorial bien explicado y a nivel funcional un éxito.
Tengo una consulta, si quiero agregar un sensor de presión barométrica BMP180 como puedo incluir las líneas de código para que los datos se incluyan en un nuevo String.??? Agradezco de antemano toda la ayuda.
Hola! Una disculpa por la demora en la respuesta, se me debió perder entre los correos.
Para agregar cualquier otro parámetro puedes seguir el mismo formato del código reemplazando las líneas para tu sensor. Las líneas que tienes que reemplazar son por ejemplo:
GET_PRESION = “GET /update?key=[WRITE_API_KEY]&field3=”;
…
float p = funcionParaMedirPresion();
String presion= dtostrf(t, 8, 3, bufferTemp);
updatePresion(presion);
….
La función updatePresion(presion) sería prácticamente igual a las demás.
No olvides crear otro nuevo campo (“field”) en thingspeak junto con su API_KEY para cada parámetro que desees agregar.
Saludos!
Buenas tardes, que gusto tener el placer de leer este tipo de proyectos, tan fundamentados y bien hechos, quería antes que todo agradecer por compartirlo, de hecho tengo unas dudas para ello, lo que sucede es que ya programe ya tengo mis circuitos bien hechos ya todo, pero tengo un dilema cuando programo ya compila pero da como unas advertencias: ESTO ME SALE CUANDO COMPILO NADA MAS=
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino: In function ‘void setup()’:
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:33:21: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“OK”)){ //Verificar si Modulo Wifi responde
^
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino: In function ‘void updateTemp(String)’:
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:70:24: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“ERROR”)){
^
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:85:20: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“>”)){
^
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino: In function ‘void updateHumedad(String)’:
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:99:24: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“ERROR”)){
^
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:113:20: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“>”)){
^
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino: In function ‘boolean connectWiFi()’:
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:135:21: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“OK”)){
^
FINAL DE ESO LE DOY SUBIR, DESCONECTO LOS PINES QUE TENGA EN RX Y TX, Y SUBE BIEN LAS COSAS.
Y ESTO ES LO QUE TENGO CUANDO SUBO EL PROGRAMA AL PARECER TODO BIEN;
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino: In function ‘void setup()’:
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:33:21: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“OK”)){ //Verificar si Modulo Wifi responde
^
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino: In function ‘void updateTemp(String)’:
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:70:24: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“ERROR”)){
^
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:85:20: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“>”)){
^
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino: In function ‘void updateHumedad(String)’:
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:99:24: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“ERROR”)){
^
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:113:20: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“>”)){
^
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino: In function ‘boolean connectWiFi()’:
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:135:21: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“OK”)){
^
El Sketch usa 8.788 bytes (27%) del espacio de almacenamiento de programa. El máximo es 32.256 bytes.
Las variables Globales usan 496 bytes (24%) de la memoria dinámica, dejando 1.552 bytes para las variables locales. El máximo es 2.048 bytes.
YA LUEGO DE ESO YA CREE MI CUENTA EN THINGSPEAK, YA TENGO MIS API KEY DE LECTURA Y OTRA DE ESCRITURA, LISTO YA SUBIO Y EN LA CONSOLA ME INDICA QUE ME ESTA LEYENDO EL NOMBRE Y LA CONTRASEÑA DEL WIFI SI CONTECTA EN LA CONSOLA INDICA LO SIGUIENTE:
AT
AT+CWMODE=3
AT+CWJAP=”ATAPEL_953052″,”A3B3757B907CDXDT”
AT+CIPSTART=”TCP”,”184.106.153.149″,80
AT+CIPSEND=48
GET /update?key=U1RIBK3AE2JWBJ2N&field1=19.000
PERO EN LA PAGINA WEB CON MI API KEY Y TODO NO ME SALE GRAN COSA ME SALEN COMO ERRORES
ES NECESARIO CAMBIAR ALGO MAS DE LA PROGRAMACION APARTE DE LOS ESPACIOS QUE HA DEJADO PARA CONTRASEÑA WIFI Y APIKEY, ALGUNOS OTROS DATOS QUE HAYA QUE CONFIGURAR ??
Hola! No es necesario hacer ningún cambio adicional. Si no funciona verifica las conexiones. (Lo mas común es confundir TX y RX, inviértelos para probar).
Buenas tardes, que gusto tener el placer de leer este tipo de proyectos, tan fundamentados y bien hechos, quería antes que todo agradecer por compartirlo, de hecho tengo unas dudas para ello, lo que sucede es que ya programe ya tengo mis circuitos bien hechos ya todo, pero tengo un dilema cuando programo ya compila pero da como unas advertencias: ESTO ME SALE CUANDO COMPILO NADA MAS=
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino: In function ‘void setup()’:
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:33:21: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“OK”)){ //Verificar si Modulo Wifi responde
^
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino: In function ‘void updateTemp(String)’:
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:70:24: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“ERROR”)){
^
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:85:20: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“>”)){
^
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino: In function ‘void updateHumedad(String)’:
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:99:24: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“ERROR”)){
^
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:113:20: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“>”)){
^
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino: In function ‘boolean connectWiFi()’:
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:135:21: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“OK”)){
^
FINAL DE ESO LE DOY SUBIR, DESCONECTO LOS PINES QUE TENGA EN RX Y TX, Y SUBE BIEN LAS COSAS.
Y ESTO ES LO QUE TENGO CUANDO SUBO EL PROGRAMA AL PARECER TODO BIEN;
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino: In function ‘void setup()’:
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:33:21: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“OK”)){ //Verificar si Modulo Wifi responde
^
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino: In function ‘void updateTemp(String)’:
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:70:24: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“ERROR”)){
^
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:85:20: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“>”)){
^
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino: In function ‘void updateHumedad(String)’:
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:99:24: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“ERROR”)){
^
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:113:20: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“>”)){
^
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino: In function ‘boolean connectWiFi()’:
C:UserspabloDesktopPOGRAMA_TEMPERATURA_BIOPOGRAMA_TEMPERATURA_BIO.ino:135:21: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
if(Serial.find(“OK”)){
^
El Sketch usa 8.788 bytes (27%) del espacio de almacenamiento de programa. El máximo es 32.256 bytes.
Las variables Globales usan 496 bytes (24%) de la memoria dinámica, dejando 1.552 bytes para las variables locales. El máximo es 2.048 bytes.
YA LUEGO DE ESO YA CREE MI CUENTA EN THINGSPEAK, YA TENGO MIS API KEY DE LECTURA Y OTRA DE ESCRITURA, LISTO YA SUBIO Y EN LA CONSOLA ME INDICA QUE ME ESTA LEYENDO EL NOMBRE Y LA CONTRASEÑA DEL WIFI SI CONTECTA EN LA CONSOLA INDICA LO SIGUIENTE:
AT
AT+CWMODE=3
AT+CWJAP=”ATAPEL_953052″,”A3B3757B907CDXDT”
AT+CIPSTART=”TCP”,”184.106.153.149″,80
AT+CIPSEND=48
GET /update?key=U1RIBK3AE2JWBJ2N&field1=19.000
PERO EN LA PAGINA WEB CON MI API KEY Y TODO NO ME SALE GRAN COSA ME SALEN COMO ERRORES
Estimado, se podría conectar este circuito con la placa de arduino directamente a la corriente con un transformador de celular USB de 5v, 2mAh? Lo demás funciona perfecto! Muchas gracias!
Hola! Quizás querrás decir que es de 200mA? Un cargador de celular se puede utilizar para el proyecto pero debes energizar al wifi y al Arduino en paralelo. No debes energizar el Arduino y después utilizar los pines de 5V en el mismo para el wifi. Esto porque estaría pasando mucha corriente a través del Arduino y lo puedes dañar. Saludos!
Perfecto! Pero ahora me surgió otra interrogante. No se activa solo. Los datos en Thingspeak solo empiezan a leer cuando activo el monitor serie por el pc. Existe alguna forma de hacerlo, sin pasar por esta interfaz, o sea, que al conectarlo a la corriente se conecte, y empiece a transmitir los datos? Algún comando que poner en el programa? Muchas gracias de antemano. Slds!
El programa debe funcionar automáticamente sin el monitor serial así con el código que se muestra. Intenta:
1. Probablemente estén invertidos los cables de TX y RX, intenta intercambiándolos.
2. También a veces el módulo tarda un poco en conectarse a la red Wifi, hay que darle tiempo suficiente para que lo haga. En la función connectWifi() puedes modificar el delay en la línea 135 para que sean 20000ms en lugar de 10000ms y darle más tiempo.
3. Si la fuente de poder en este caso el cargador de celular es de muy baja capacidad el módulo a veces batalla para conectarse, puedes intentar con uno de mayor capacidad. Recuerda que el módulo Wifi puede pedir hasta 240mA cuando necesita transmitir + lo que consume el Arduino, lo recomendable es una fuente de al menos 350mA para estar seguros.
saludos!
Funciona!!! Muchas gracias x tu ayuda! https://uploads.disquscdn.com/images/21a0e0d8bea90a66f8b18d664729e5d7bc72fa9aef0f932026f566a1103a6240.jpg
Excelente!! Nos da mucho gusto poder ayudarlos. Saludos!!
Disculpa el Api Key es el mismo, tanto para temperatura como para humedad?
lo que pasa es que me sale este error
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
Ha ocurrido un error mientras se enviaba el sketch
Hola! Si el API Key es el mismo para los dos parámatros. Ese error indica que no hay comunicación de tu PC con tu Arduino. Lo más probable es que hayas dejado los pines del Wifi conectados a los pines 0 y 1 de tu Arduino. Asegúrate que no haya nada conectado a pines 0 y 1, luego sube tu programa al Arduino y vuelve a conectarlos. Esto lo tienes que hacer cada vez que pases el programa a tu Arduino. Saludos!
Buenas tardes, primero que nada felicitaciones por tu aportacion esta muy completo, mi duda es, que datos son exclusivos para transmitir la temperatura y humedad, es decir, si yo quiero transmitir otro dato que no sea esos, que valores o que lineas es necesario cambiar? quiero transmitir un voltaje de la entrada A0 del aurduino.