Herramientas de usuario

Herramientas del sitio


proyectos:talleres_esp:upayakuwasi

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
proyectos:talleres_esp:upayakuwasi [2018/03/25 02:41] – [Taller Mujeres] brolinproyectos:talleres_esp:upayakuwasi [2018/03/26 18:19] (actual) kz
Línea 16: Línea 16:
  
 ===== Taller Mujeres ===== ===== Taller Mujeres =====
 +
 +http://piratepad.net/unloquerupayakuwasi
 +
   - Taller en 4 capas   - Taller en 4 capas
   - Riego, Automatización Válvulas, Sensores, Plataforma   - Riego, Automatización Válvulas, Sensores, Plataforma
Línea 121: Línea 124:
 FIXME FIXME
  
 +===== RTC digital por medio de la libreria Time para ESP8266 =====
 +
 +Básicamente la libreria funciona por alarmas y temporizadores. Una **Alarma** es una tarea que ocurre a determinada hora del día. Mientras que un **temporizador** es una tarea programada que ocurré **después** de que haya pasado algún intervalo de tiempo.
 +
 +[[https://github.com/PaulStoffregen/TimeAlarms|repositorio]]
 +
 +<WRAP center round info 60%>
 +Muy importante recordar que en vez de usar el delay(algunvalor) de Arduino, se debe usar el de la libreria alarm. De esta manera: Alarm.delay(algunvalor)
 +</WRAP>
 +
 +<code languaje="c++">
 +#include <Time.h>
 +#include <TimeAlarms.h>
 +
 +int pin = D1;
 +int hora, minutos;
 +int alarma;
 +
 +void setup() {
 +  Serial.begin(9600);
 +  hora = 8;
 +  minutos = 1;
 +  //fijamos el tiempo el Domingo 25 de marzo del 2018 a las 1:40 pm
 +  setTime(hora,0,0,3,25,18);
 +  //Creamos las alarmas
 +  Alarm.alarmRepeat(hora,minutos,0,prenderSensorRiegoManana);  // 8:30am cada día
 +  Alarm.alarmRepeat(hora,minutos + 3,0,apagarSensorRiegoManana);  // 8:30am cada día
 +  
 +  //Alarm.alarmRepeat(17,45,0,EveningAlarm); // 5:45pm cada día
 +  //Alarm.alarmRepeat(dowSaturday,8,30,30,WeeklyAlarm); // 8:30:30 cada sabado
 +
 +  //alarma = 15;
 +  //Alarm.timerRepeat(alarma, Repeats); // Timer cada 15 segundos
 +  //Alarm.timerOnce(10, OnceOnly);  // Llamado una vez despues de 10 segundos
 +  pinMode(pin, OUTPUT);
 +  digitalWrite(pin, LOW);  
 +}
 +
 +void loop() {
 +  digitalClockDisplay();
 +  Alarm.delay(1000);
 +}
 +
 +// funciones para llamar cuando se dispara una alarma
 +void prenderSensorRiegoManana(){
 +  Serial.println("Alarm: - turn lights on");  
 +  digitalWrite(pin, HIGH);  
 +}
 +
 +void apagarSensorRiegoManana(){
 +  Serial.println("Alarm: - turn lights off"); 
 +  digitalWrite(pin, LOW);   
 +}
 +
 +void EveningAlarm(){
 +  Serial.println("Alarm: - turn lights on");           
 +}
 +
 +void WeeklyAlarm(){
 +  Serial.println("Alarm: - its Monday Morning");      
 +}
 +
 +void ExplicitAlarm(){
 +  Serial.println("Alarm: - this triggers only at the given date and time");       
 +}
 +
 +void Repeats(){
 +  Serial.println("Activo la Alarma");  
 +  digitalWrite(pin, HIGH);
 +  Alarm.delay(5000);
 +  digitalWrite(pin, LOW);
 +  Alarm.delay(1000);
 +}
 +
 +void OnceOnly(){
 +  Serial.println("This timer only triggers once");  
 +}
 +
 +void digitalClockDisplay()
 +{
 +  // digital clock display of the time
 +  Serial.print(hour());
 +  printDigits(minute());
 +  printDigits(second());
 +  Serial.println(); 
 +}
 +
 +void printDigits(int digits)
 +{
 +  Serial.print(":");
 +  if(digits < 10)
 +    Serial.print('0');
 +  Serial.print(digits);
 +}
 +
 +void prendaSensor(){
 +  pinMode(pin, HIGH);
 +}
 +
 +void apagueSensor(){
 +  pinMode(pin, LOW);
 +}
 +
 +
 +</code>
 +
 +===== Código para activar algo desde una página web con ESP8266 =====
 +
 +Este código genera una página web para controlar el encendido o apagado de algún dispositivo.
 +
 +<code>
 +
 +#include <ESP8266WiFi.h>
 + 
 +const char* ssid = "UPAYAKUWASI";
 +const char* password = "nosotrxs";
 + 
 +int ledPin = D1; // GPIO13
 +WiFiServer server(80);
 + 
 +void setup() {
 +  Serial.begin(115200);
 +  delay(10);
 + 
 +  pinMode(ledPin, OUTPUT);
 +  digitalWrite(ledPin, LOW);
 + 
 +  // Connect to WiFi network
 +  Serial.println();
 +  Serial.println();
 +  Serial.print("Connecting to ");
 +  Serial.println(ssid);
 + 
 +  WiFi.begin(ssid, password);
 + 
 +  while (WiFi.status() != WL_CONNECTED) {
 +    delay(500);
 +    Serial.print(".");
 +  }
 +  Serial.println("");
 +  Serial.println("WiFi connected");
 + 
 +  // Start the server
 +  server.begin();
 +  Serial.println("Server started");
 + 
 +  // Print the IP address
 +  Serial.print("Use this URL to connect: ");
 +  Serial.print("http://");
 +  Serial.print(WiFi.localIP());
 +  Serial.println("/");
 + 
 +}
 + 
 +void loop() {
 +  // Check if a client has connected
 +  WiFiClient client = server.available();
 +  if (!client) {
 +    return;
 +  }
 + 
 +  // Wait until the client sends some data
 +  Serial.println("new client");
 +  while(!client.available()){
 +    delay(1);
 +  }
 + 
 +  // Read the first line of the request
 +  String request = client.readStringUntil('\r');
 +  Serial.println(request);
 +  client.flush();
 + 
 +  // Match the request
 + 
 +  int value = LOW;
 +  if (request.indexOf("/LED=ON") != -1)  {
 +    digitalWrite(ledPin, HIGH);
 +    value = HIGH;
 +  }
 +  if (request.indexOf("/LED=OFF") != -1)  {
 +    digitalWrite(ledPin, LOW);
 +    value = LOW;
 +  }
 + 
 +// Set ledPin according to the request
 +//digitalWrite(ledPin, value);
 + 
 +  // Return the response
 +  client.println("HTTP/1.1 200 OK");
 +  client.println("Content-Type: text/html");
 +  client.println(""); //  do not forget this one
 +  client.println("<!DOCTYPE HTML>");https://processing.org/download/
 +  client.println("<html>");
 + 
 +  client.print("<h1>Su dispositivo ahora esta: </h1>");
 + 
 +  if(value == HIGH) {
 +    client.print("On");
 +  } else {
 +    client.print("Off");
 +  }
 +  client.println("<br><br>");
 +  client.println("<a href=\"/LED=ON\"\"><button>Prender </button></a>");
 +  client.println("<a href=\"/LED=OFF\"\"><button>Apagar </button></a><br />");  
 +  client.println("</html>");
 + 
 +  delay(1);
 +  Serial.println("Client disonnected");
 +  Serial.println("");
 + 
 +}
 +
 +</code>
  
proyectos/talleres_esp/upayakuwasi.1521945702.txt.gz · Última modificación: 2018/03/25 02:41 por brolin