Frambuesa Pi - Arduino - serial Link los dos / UART

Para recibir datos en 433Mz de Frambuesa Pi, Puede utilizar bibliotecas diferentes, pero todas buscan la CPU a casi 100% (Si sabes de uno que no que me interesa !). Entonces es una solución a través de un Arduino que nos enviará los datos válidos en el puerto serial.

Arduino Raspberry Pi serial uart

Continuar a moverse lentamente en mi proyecto PI Inicio conectar, y por lo tanto continuaron mi artículo sobre la creación de un nodo, Es necesario recibir datos. Usando por el momento una 433Mz transmisión por lo tanto, debe ser capaz de recibir mensajes de mi sonda. Tiene la recepción directamente sobre el uso de la CPU de frambuesa (casi) su máximo, Opté por usar un Arduino.

Como no tenía varias fuentes de alimentación, Encontré el excelente artículo de Jared Wolff en una conexión rápida y fácil entre los dos :

PiHomeConnect - Arduino - Serial UART with Raspberry Pi

Esto es cómo con 4 cables conectan los dos. Gracias Jared !!

Aprovechar la comunicación entre los dos que es necesario deshabilitar la consola lateral Raspberry Pi :

  • Actualizando su sistema
    apt - actualización && apto - conseguir actualización
  • Instalar si es necesario raspi-config
    apt - get install raspi-config
  • Ejecutar raspi-config y seleccione los siguientes pasos :
    PiHomeConnect - Arduino - Serial UART with Raspberry Pi - Disable console - 1 PiHomeConnect - Arduino - Serial UART with Raspberry Pi - Disable console - 2 PiHomeConnect - Arduino - Serial UART with Raspberry Pi - Disable console - 3
  • Reiniciar Frambuesa Pi

Ahora usted puede intercambiar tu Arduino en el puerto serie. Frambuesa de lado por ejemplo puede usar un programa en Python :

import serial
import sys
import string
ser = serial.Serial('/dev/ttyAMA0', 115200)
while True :
    try:
    	# Read data incoming on the serial line
        data=ser.readline()
        print data
    except:
    	print "Unexpected error:", sys.exc_info()
    	sys.exit()

Y en el Arduino :

void setup() {
  Serial.begin(115200);
}
void loop() {
  Serial.println("Hello");
  delay(1000);
}

Posiblemente le gustan también....

  • Guillaume

    Hola,
    En primer lugar gracias por el blog que leí siendo regularmente suscribí a rss.
    Acabo de leer su artículo sobre el enlace y creo que le falta un convertidor de nivel. Sabiendo que los niveles lógicos son diferentes en estos dos dispositivos Arduino Uno 5 V y 3,3 V de frambuesa es necesario para disminuir la tensión en una dirección. Visto entre otros en esta página :
    http://www.domocreation.fr/projets/DomoPi.html

    A falta de otro modo tendría que tener la versión que funciona en Due 3,3 o me parece un Mini Pro Arduino.

    • Hola,
      Me hice la misma pregunta y no es necesario con esta conexión. El hecho de que el envío de la frambuesa 3,3 V para alimentar el Arduino, funciona en 3,3 V y 5 V no vuelve.
      Yo uso desde hace casi un mes este circuito para recibir los datos en mis sondas 433Mz y todo funciona perfectamente !

      • Guillaume

        Vale, si funciona pero la edición es raro, No me había mirado en detalle.
        Normalmente, el 5V Arduino se utiliza para alimentar un dispositivo y no alimentar el Arduino. El Vin pin sirve para este propósito pero, como la corriente pasa a través de un regulador, 6V requiere mínimo como se dice en el repositorio Arduino, de lo contrario el Arduino tiene cambios de humor, en mis recuerdos un Arduino completa no le gusta en lugar del único chip. En mi opinión, il vaut mieux alimenter l’arduino par une source externe comme doit l’avoir l’émetteur et récepteur rf et donc utiliser un convertisseur logique. Plus propre.
        Un autre truc que je viens de penser, totalement à coté mais qui à mon avis n’est pas en faveur de ce type de liaison. A chaque fois que la liaison série est ouverte, l’arduino se réinitialise et perd toutes les valeurs en ram.

        • Merci pour ces précisions. Je ne maitrise pas autant, mais je confirme que cela fonctionne même si ce n’est pas optimal. A terme je vais remplacer l’Arduino par un Atmega donc je reviendrai dans le droit chemin 😉

          • dinan dinard

            El Arduino es una ATMEGA328P que puede ser alimentado entre 1,8 V y 5,5 V por lo que normalmente debería funcionar bien en 3.3v con circuitos lógicos CMOS, pero no en TTL (4,75-5,25v). He probado, funcionó muy bien.

  • Guillaume

    No sé si ATmega es la mejor solución, para mí el Arduino Mini Pro tiene algunas ventajas significativas : precio no superior a un ATmega, no hay necesidad de componentes externos. Todo bien.
    Y la programación no pasa por un Arduino, sólo un convertidor de FDTI.

  • David

    Hola,

    Querer conectar múltiples frambuesa Arduino Fui en el I2C.
    Pero acabo de ver que estaba perdiendo por mayor 10% mensajes. Esto no está relacionado con la transmisión de RF (Veo mensajes sobre otra Arduino modo de recepción próxima) pero el hecho de que las preguntas de la frambuesa del Arduino y por lo tanto las interrupciones … Mientras tanto necesariamente Arduino no puede escuchar la RF …

    ¿Tiene el mismo de vuelta con la conexión en serie ?

    No veo qué otra cosa con módulos de 433 MHz que tiene una comunicación unidireccional …

    David.

    • Hola,
      No he probado, pero el volumen de frambuesa está escuchando lo que no hay solicitud de su parte para el Arduino. Por eficazmente contra, al enviar el mensaje, 433Mz recepción ya no está garantizada. Es por eso que decidí hacer un tratamiento de la cara del palpador de datos, pour qu’à la réception, il ne reste plus grand chose à faire et que le transfert vers le Raspberry soit le plus rapide possible.
      Actualmente estoy trabajando en módulos Wi-Fi en las puntas de prueba para enviar una solicitud HTTP directamente al servidor NodeJS de frambuesa que permite superar la 433Mz (permanece ser visto la autonomía).

  • David

    Para temperatura de medición no es muy molesto tanto para el manejo de módulos de presencia o humo es mucho más molesto …
    De repente le cambio a la RFM69 (mucho más alcance y una función de reconocimiento) y luego probablemente pondré un segundo i2c arduino con el primero aquí en:

    http://www.instructables.com/id/Uber-Home-Automation-w-Arduino-Pi/?ALLSTEPS

    Como eso el primer arduino maneja transferencias y enlaces de RF cuando quiere el segundo que se transfieren a la RPI … Ver.

    Pour le moment j’ai intégré les modules RFM69 et ça me parait plutôt excellent !

    J’avoue avoir hate de voir ce que tu vas faire pour la partie web 🙂

    David.

    • Je vais de mon coté tester des NRF24L01 qui ont aussi la gestion des ACK.

      Pour l’interface web elle se termine mais pas de support chacon, enocean, z-wave, etc.. Je ne vais pas faire le nouveau domoticz 😉

Handpicked links

disk Page Caching using disk: enhanced Database Caching 279/478 queries in 0.164 seconds using disk Served from: pihomeserver.fr @ 2017-10-02 07:22:19 by W3 Total Cache -->