Mostrando entradas con la etiqueta python. Mostrar todas las entradas
Mostrando entradas con la etiqueta python. Mostrar todas las entradas

jueves, 12 de agosto de 2021

Enviar correos masivos personalizados con python

Pasos

1. Instalar python3

2. Descargar módulo Pymailer 


Contenido de carpeta Pymailer



  • correo. es un archivo html que contiene el cuerpo del mensaje que enviaremos
  • destino. es un archivo csv que contiene nuestra lista de contactos
  • pymailer. es un archivo python que contiene el programa para enviar los correos

3. Modificar archivos

Los 3 archivos se puede modificar con un editor de texto, recomendamos gedit

Puede construir y editar el archivo correo.html utilizando la página https://www.w3schools.com/html/

formato de destino.csv, nombre y correo separado por una coma, uno por línea

Modificar archivo pymailer.py utilizando gedit. Ir a las líneas 209 y 211


Debe obtener acceso smtp por parte de su proveedor de correo electrónico

4. Ejecutar programa mediante línea de comandos

  • Presionar el botón de windows + la letra R

Escribir cmd y enter






  • Se  abrirá la línea de comando de windows, navegar hasta la carpeta pymailer

  • Escribir la orden:
     python pymailer.py -s correo.html destino.csv "Asunto del correo"





jueves, 6 de julio de 2017

Generar código QR con python

Código QR enlace a rapapapay.blogspot.pe

Wikipedia:


Un código QR (del inglés Quick Response code, "código de respuesta rápida") es la evolución del código de barras. Es un módulo para almacenar información en una matriz de puntos o en un código de barras bidimensional. La matriz se lee en el dispositivo móvil y de forma inmediata nos lleva a una aplicación en internet o nos brinda alguna información.


Requisitos
Python y los módulos pyqrcode y pypng 

Descargar ejemplo

import pyqrcode
qr = pyqrcode.create('http://rapapapay.blogspot.pe')
qr.png('fa.png', scale=5, module_color="#7D007D")








https://github.com/mnooner256/pyqrcode

sábado, 24 de junio de 2017

Trabajar lote de imagenes con python

Trabajar con fotos o imágenes suele consumir una importante cantidad de recursos (memoria y procesador) de nuestra computadora, la situación se nos complica mas aun si queremos trabajar con muchas imágenes, los recursos de la PC siempre serán limitados.

Para ciertas acciones repetitivas como: redimesionar o cortar (para poner un par de ejemplos) podemos utilizar un programa python que se encargará de realizar la acción encomendada con todos los archivos de una carpeta seleccionada.

¿Qué se necesita?
 Tener instalado python y el módulo PIL


Ejemplos:
1. Cortar imágenes

2. Redimensionar imágenes (Escalar)


Forma de uso
 python resizes-images.py /carpeta_origen/ /carpeta_destino/



3. Escalar y cortar imagen
Este tercer ejemplo tiene las órdenes de escalar, cortar, realizar una de las dos acciones o realizar las dos sobre una sola imagen. La forma de uso difiere un poco de los dos ejemplos anteriores, solo debemos escribir la carpeta origen, ya no  la carpeta destino; esto debido a que  se crearan automaticamente carpetas  (crop y/o scale) para las nuevas imagenes.

Forma de uso:
python scale_crop.py carpeta_origen/


Los  3 códigos  que se muestran como ejemplos tienen comentarios para facilitar su edición y poder ser adaptados a diversas necesidades.


Referencias
-PIL Handbook

-mkdir con phyton

martes, 13 de diciembre de 2016

Acceder al GPS de androide con python parte I

Existe la posibilidad de trabajar con python en nuestro dispositivo androide. Podemos acceder a los distintos sensores con la librería python-for-android.

-Lo primero es instalar la aplicación QPython.
-Abriremos la aplicación, opción Programs, le damos en pip_console.py y luego en Run.
-Escribimos pip install python-for-android  y esperamos a que se instale la librería.
-En QPython ir a editor, abrir archivo gps.py. Eejecutar archivo con botón play (triangulo).
Descargar archivo gps.py



#codigo a partir de
#http://faculty.pieas.edu.pk/fayyaz/ippy/html_demos/android.html 
import android
import time
from datetime import datetime, date
def ubicacion():
    dt = datetime.now() 
    hora = dt.strftime("%I:%M%p  ")
    droid = android.Android()
    droid.startLocating()   #Iniciar GPS
    time.sleep(2) 
    loc = droid.readLocation().result
    if loc != {}:
      try: n = loc['gps'] # solicita datos del sensor GPS
      except KeyError:
        n = loc['network'] # solicita datos de la red 
      la = n['latitude']
      lo = n['longitude'] 
      latlng = '%0.8f   %0.8f' %(la,lo)
      #0.8 significa 8 números a la derecha del punto
      address = droid.geocode(la, lo).result 
      #obtiene la direccion con info de google 
  #Info que se mostrará al ejecutar archivo
      print (address) 
      print (latlng) 
      print (hora)  
 #Esta parte del codigo almacena la data en un archivo de texto
      f = open('/storage/emulated/0/qpython/datosa.txt','a')
      f.write(hora)
      f.write(latlng)
      f.write('\n')
      f.close()
    droid.stopLocating()
ubicacion() 
 



Menu programa QPython


Salida luego de ejecutar gps.py

Archivo .txt con data


 Queda pendiente:
-Ejecutar archivo python, continuo y automatico
-Mostrar ubicación en google maps, utilizando librería pygmaps
-Compartir posición por email o sms
-Trazar rutas, recorridos, hallar distancias, áreas, etc.

Enlaces
http://faculty.pieas.edu.pk/fayyaz/ippy/html_demos/android.html

http://www.mybloggertricks.com/2011/06/add-syntax-highlighter-to-blogspot.html

domingo, 27 de noviembre de 2016

Programa python para gráfico de barras

Este  programa en python  nos permite crear un gráfico de barras para poder comparar datos. Esta escrito para trabajar con 5 datos, sin embargo se puede modificar para la cantidad que se necesite.

Al correr el programa este nos irá solicitando los datos para realizar el gráfico.
  • Título del gráfico
  • Dato1
  • Dato2
  • Dato3
  • Dato4
  • Dato5
  • Límite superior para mostrar
  • Límite inferior para mostrar
  • Valor promedio para comaparación
  • Leyenda para eje Y
  • Leyenda para eje X


El programa trabaja como se muestra en el siguiente ejemplo:




descargar archivo

-Para siguiente programa:
--Personalizar el gráfico: colores, tamaño de letra, leyenda, etc
--Importar datos de archivos de hoja de cálculo (excel).
--Realizar varios gráficos en bloque

viernes, 27 de mayo de 2016

Algunos comandos útiles para RPI

Línea de comandos

sudo se utiliza para ejecutar como usuario root
Ejemplo: sudo raspi-config Ingresamos a la herramienta de configuración de la rpi


startx  de línea de comandos a modo gráfico
sudo reboot      vuelve a cargar el sistema
sudo apt-get update         Actualiza la lista de paquetes disponibles
sudo apt-get upgrade       Actualiza los paquetes

sudo apt-get install "____"  Instala el paquete  "____"
sudo apt-get autoremove  "____" Desinstala el paquete "____"
sudo apt-get autoclean     Elimina paquetes obsoletos/no utilizados 

dpkg --get-selections     Muestra todos los paquetes instalados
lsusb                         muestra los usbs conectados
ifconfig                    muestra el estado de la red
du -hs            espacio que ocupan nuestros archivos en la carpeta que estamos
df -h             espacio libre en la tarjeta
free -h           uso de la memoria RAM
vcgencmd measure_temp temperatura de la RPI
ls  lista el contenido de una carpeta 
mkdir NOMBRE_DE_CARPETA  Crea la carpeta

cd /NOMBRE_DE_CARPETA  Ingresa a la carpeta deseada
cd .. Retorna a la carpeta superior
nano "nombre_de_archivo"  Editar archivo de texto (txt, py, php, html, etc, etc), en caso  de no existir, crea el archivo



omxplayer "video" Reproducir vídeo
raspistill -o "nombrearchivo"  Tomar una foto, añadir la extensión al nombre de archivo, por ejejmplo: jpge, png, etc.
raspivid -o "nombredearchivo.h264"  Grabar un vídeo, se debe utilizar la extensión h264









Enlaces

https://www.raspberrypi.org/wp-content/uploads/2013/07/RaspiCam-Documentation.pdf 
 https://learn.adafruit.com/an-illustrated-shell-command-primer/checking-file-space-usage-du-and-df

lunes, 23 de noviembre de 2015

Medida, registro, gráfica de temperatura de 4 tinas de teñido utilizando el Raspberry Pi (RPI)


Hardware y Conexiones

-RPI: Micro SD  y fuente de 5V.
-Sensor DS18B20. Cables, resistencia 4.7k.  El sensor tiene 3 señales. Rojo a 3.3V. Negro a Tierra (GND). Amarillo al GPIO4 (Pin #7 en RPI B+). Conectar resistencia entre rojo y amarillo. Se conectan múltiples sensores a los mismos pines, una resistencia es suficiente.
- Conexión a red, cable o inalámbrico (WiFi).
-Pantalla 7'' 5V con conexión HDMI
Teclado: Se adaptó un antiguo teclado de tablet


Software.
-Raspbian y actualizar el sistema.
-Python
-Habilitar SSH
-Apache2 como servidor web
-mysql como base de datos.
-phpmyadmin para crear y administrar base de datos
-php para acceder, escribir y leer en la base de datos
- Node.js para graficar.
-Descagar librerías D3.JS y ponerlas en servidor local.




Habilitar los sensores de temperatura
Abrir el terminal

  • sudo nano /boot/config.txt
    Añadir la siguiente línea:  dtoverlay=w1-gpio
  • sudo reboot 
  • sudo modprobe w1-gpio
  • sudo modprobe w1-therm

Para probar los sensores ir a: sys/bus/w1/devices  digitar ls para que aparezca el nombre del sensor. Ingresar al sensor con cd 28-NNNNNNNN (Reemplazar NNN.. por nombre del sensor. Luego enviar la orden cat w1_slave

Programación.

Se ha utilizado un archivo python para registrar mediciones en la base de datos y uno php para visualizar y plotear las temperaturas.
El archivo python debe ponerse en el CRON para que el sistema automáticamente haga las mediciones según  indiquemos.

-Descargar archivo python para escribir data en base de datos  
-Descargar archivo php para visualizar y plotear datos (El archivo está en txt. descargarlo y cambiarle la extensión a php)

Manejo de base de datos (BD) con phpmyadmin
Crear dos usuarios: Uno con permisos para escribir en la BD y otro usuario para leer la BD
Crear 2 tablas. Una con 3 columnas: dtg, temperatura y sensor_id. La otra tabla con 2 columnas: sensor_id y tinas, esta tabla la hemos creado para poder asignarle el nombre que querramos a cada sensor DS18B20





Vista de temperatura vía explorador web. Se ha utilizado php, html y D3.JS



Algunas problemas ocurridos: marca temperatuas negativas o muy altas, algunos sensores dejan de ser reconocidos. Estas dos cosas aun no tienen solucion pero no persisten.


Comentarios
-El RPI actualizará fecha y hora desde la internet. Si no se tiene, o no se quiere depender de una conexión a internet se debe instalar un módulo de reloj, puede ser el DS3231.


-Visualizar los datos de temperatura desde la línea de comandos, o ingresando a phpmyadmin no es difícil, pero tampoco es practico. Alojaremos el archivo php en la carpeta del servidor web (var/www/). El acceso será desde cualquier equipo conectado a la red interna a través de IP(aa.bb.cc.dd/temperatura.php

Costo aproximado
RPI = $35
Sensores Ds18b20 x4 = $12
Tarjeta microSD 8gb = $7
Cargador 5V x 2A x 2 salidas = $3
Adaptador USB wifi = $ 9
Pantalla LCD 7" = $25
Cable HDMI = $3




Referencias

https://www.raspberrypi.org/documentation/linux/usage/cron.md


miércoles, 21 de octubre de 2015

Cámara de fotos con RPI

Para ensamblar la cámara digital se ha utilizado lo siguiente:

HARDWARE
-Raspberry Pi B+ -Pantalla LCD táctil de 3.2”. WaveShare SpotPear(V3) -Pi Cámara con lente ajustable M12x0.5. Sensor Omnivision 5647 -Memoria microSD 4 GB -Batería externa de 5V y 2.5 A

Como soporte para las partes se ha utilizado un antiguo porta celular de auto.

SOFTWARE
-Raspbian ya preconfigurada que habilita la pantalla LCD y el táctil. -Cámara script “adafruit-pi-cam-master”
Adafruit Pi Cam Master Permite visualizar la cámara en la pantalla LCD Como opciones tiene tamaño, ISO y efectos para la foto. No graba vídeo Está escrito para una pantalla mas pequeña. Hay problemas con los botones del táctil, queda pendiente corregir código cam.py
El script proporcionado por adafruit permite integrar al RPI, pantalla y cámara de forma sencilla, sin embargo renuncia a otras funciones que tienen raspistill, raspivid o Python PiCamera.





Referencias