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"





miércoles, 25 de octubre de 2017

Controlar motor de paso con arduino

Materiales 

-Arduino
-Controlador para motor de paso, en este ejemplo utilizo el DRV8825
-Motor de paso, para el ejemplo: 17PM-K406-P10V (ver mas info), este motor lo he comprado usado en paruro (Lima) por 5 soles (1.7 $). Son de impresoras o copiadoras Xerox.
-Dos pulsadores + 2 resistencias de 10 ohms
-1 condensador de 100μF 25V
-1 fuente 24V

Instrucciones

 1. Identificar las bobinas del motor: El motor tiene 2 bobinas, 2 cables por bobina, los cables que tienen continuidad son de la misma bobina.
2. Realizar las conexiones como se muestra en la imagen, aun no conectar el motor. STEP al D9 del arduino y  DIR a D8









3. Limitar la corriente, para este ejemplo determinamos la corriente máxima de la siguiente manera:
Current Limit = VREF × 2
En la data del motor Current Limit (amperaje) es 1.4A

1.4 = VREF × 2
VREF = 0.7
Siempre que trabajemos con los pasos completos, debemos limitar la corriente al 70% del valor obtenido, en este caso sería 0.7*70% = 0.490
-Para modificar el límite de corriente. Tener la alimentación de corriente al motor conectada, tener el motor desconectado
-Mover el potenciómetro hasta obtener el valor deseado. Medir el voltaje (positivo en potenciómetro, negativo en GND), en este ejemplo debe marcar 0.490V


 
4. Subir código al arduino (descargar acá)






Referencias

http://www.schmalzhaus.com/EasyDriver/Examples/EasyDriverExamples.html

viernes, 25 de agosto de 2017

Usar cable "Easy Transfer" en ubuntu

En este ejemplo mostramos como conectar dos computadoras (ambas con ubuntu) utilizando el cable "Easy transfer" (usb-usb). El cable utilizado tiene  el chip PL25A1.  En mi caso no he necesitado instalar contraladores.
Lo que hace este cable es simular una conexión de red, es por eso que debemos configurar ambas pc's como en un mismo servidor, es decir asignar los números IP's como se puede ver en las  siguientes imágenes 

1. Entramos al terminal y enviamos la orden lsusb para comprobar que el cable ha sido reconocido (resaltado con amarillo)





Si vamos a conexiones de red, vemos como es reconocido el dispositivo USB como una conexión de red



La configuración para la PC 1



La configuración para la PC 2. En Netmask le asigné 255.255.255.0 sin embargo automáticamente la reemplazó por 24. 


Por último, para realizar la conexión con la otra PC, podemos utilizar un programa como filezilla. También podemos utilizar algun explorador de archivos y buscar la opción "Conectar con un servidor"



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

jueves, 15 de junio de 2017

Tips para trabajar desde la terminal

En ocasiones puede ser confuso empezar a trabajar desde la terminal o consola. Con la practica se consigue trabajar con fluidez, sin embargo tener una ayuda memoria de algunos comando y/o "tips" nos permitirá progresar mas rápido.

-Para acceder a una carpeta cd nombre de la carpeta. Ejemplo: cd Documentos
Si queremos ir a una carpeta pero no sabemos el nombre: escribimos cd y presionamos la tecla Tab, o podemos poner cd (primera letra de la carpeta) y luego la tecla Tab
Tal como podemos ver en el siguiente ejemplo

-Si queremos acceder  a carpetas y subcarpetas con una sola orden, solo vamos agregando el nombre de la siguiente subcarpeta antecedido por un /
 

Si ejecutamos cd  /, estaremos posicionando en la carpeta principal de todo el sistema,

de esta manera, desde el directorio que nos encontremos, cualquiera sea; podemos ir a otra carpeta, por lejana que se vea, con una sola orden. Para eso es importante conocer la estructura de directorios.


  • /home/   todos los archivos personales de cada usuario
  • /boot/   los archivos necesarios para iniciar el sistema, por ejemplo config.txt, donde se puede configurar la pantalla, resolución, activar la cámara, etc
  • /dev/ Acá encontramos los puertos conectados al computador
  • /var/ ubicación de servidor, en caso lo tengamos instalado



-Para retroceder de carpeta utilizamos cd ..

-la orden ls nos muestra todos los archivos que contiene una carpeta


-Si queremos que nos muestre un tipo de archivos en especifico, ls *.jpg, por ejemplo


-Al igual que con la orden cd, con ls podemos navegar por las carpetas para poder obtener la información deseada con una sola orden. Esto quiere decir que si ingresamos ls /, obtendremos la lista de archivos de la carpeta principal del ordenador.

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