arduino i raspberry pi - binefa.cat · spi : serial peripheral interface bus i2c : inter-integrated...

118
Arduino i Raspberry Pi 11 d'octubre 2018

Upload: dinhkhuong

Post on 04-May-2019

242 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Arduino i Raspberry Pi

11 d'octubre 2018

Page 2: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Arduino i Raspberry PiPart d'Arduino (matí)

2

1. El microcontrolador Arduino2. Sensors i actuadors. Exemples pràctics3. Maneres de programar un Arduino:

* Per blocs * Des de l'IDE d'Arduino

4. Connexió de perifèrics a l'Arduino: entrades i sortides digitals, SPI, I2C, UART

5. Comunicació entre l'Arduino i l'ordinador 6. Bluetooth i RS485

Page 3: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoL'Arduino Nano

3

Page 4: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoPlaques complementàries ( shield / hat )

4

La majoria de plaques complementàries venen amb biblioteques i arxius de capçaleraque acceleren el procés de funcionament.

http://arduino.cc/en/pmwiki.php?n=Main/ArduinoShields

Page 5: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoInteracció amb el món físic

5

Sensors Actuadors

Lecturad'informació

Escripturad'informació

Page 6: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoAutomatització del món físic

6

Sensors Actuadors

Entradad'informació--> Lectura

Sortidad'informació

Escriptura -->

Sortidade sensors

Escriptura -->

Entradad'actuadors--> Lectura

Page 7: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoLectura de l'estat d'un sensor digital

7

Cert : 1.8v, 3.3V,5VFals : 0v

True / FalseHigh / Low

Page 8: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoLectura de l'estat d'un sensor digital

8

uSW : Microrruptor (dip-switch, microswitch)

Pull-up : Connexió d'un resistor a alimentació per assegurar un nivell lògic a una entrada digital

Page 9: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoLectura de la informació d'un teclat

9

Page 10: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoLectura d'informació analògica

10

0..3,3V0..5V0..10V

-10..10V

Page 11: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoProtocols I2C (TWI), SPI i 1-Wire

11

SPI : Serial Peripheral Interface Bus

I2C : Inter-Integrated Circuit

1-Wire

Page 12: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoEscriptura d'estat a un actuador digital

12

LED : Díode emissor de llum

Page 13: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoEscriptura d'estat a un actuador digital

13

Relé : Sistema electromecànic que modifica l'estat d'un commutador. Amb una tensió de control petita s'activa un electroimant podent controlar tensions molt superiors.

Page 14: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoLa placa S4A Programming Learning Board

14

Placa desenvolupada amb l'entorn dedisseny integrat de programari lliure

Page 15: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoMake It!

15

http://www.makeit.cat

Page 16: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoMake It!

16

http://makeit.cat/cat/

Page 17: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoExemple d'ús amb relés

17

https://binefa.cat/training/ceic/20181031/material/exemples/s4a_test/s4a_test.ino

Placa de relés

Page 18: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

S4A Progamming Learning Board

Concepte de relé

18

Page 19: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoExemple amb entrades de contacte obert

19

https://binefa.cat/training/ceic/20181031/material/exemples/s4a_test/s4a_test.ino

Teclat demembrana

Microrruptor Relé Reed

Page 20: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoExemple amb entrades analògiques

20

https://binefa.cat/training/ceic/20181031/material/exemples/s4a_test/s4a_test.ino

Potenciòmetre Joystick + SW

Page 21: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoExemple amb entrades actives

21

https://binefa.cat/training/ceic/20181031/material/exemples/s4a_test/s4a_test.ino

IR PIR(patillatge a la següent diapositiva)

Page 22: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoPatillatge del PIR

22

https://binefa.cat/training/ceic/20181031/material/exemples/s4a_test/s4a_test.ino

Page 23: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoEntorn de l'S4A

23

www.s4a.catCodis d'exemple d'aquesta presentació per a l'S4A

Page 24: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoMicroprogramari de l'S4A

24

El microprogramari és el programari del maquinari

Català Anglès

Programari SoftwareMaquinari HardwareMicroprogramari Firmware

Microprogramari per l'Arduino per funcionar amb l'S4A : http://vps34736.ovh.net/S4A/S4AFirmware16.ino

Arduino Nano

Page 25: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

S4A Progamming Learning BoardBotons i leds

25

A4A532

10111213

Codis d'exemple d'aquesta presentació per a l'S4A

Page 26: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

S4A Progamming Learning BoardTeclat de membrana i leds

26

A4

A5

3

2

1011

1213

A4

A5

3

2

Page 27: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

S4A Progamming Learning BoardBotons, leds i relés

27

Page 28: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoExemple d'ús amb S4A

28

Brunzidor LDR

Page 29: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

S4A Progamming Learning BoardBotons i brunzidor

29

A4A532

9

PWM

Page 30: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

S4A Progamming Learning BoardPotenciòmetre i brunzidor

30

9

A0

Page 31: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoExemple d'ús amb S4A

31

Servo

Page 32: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

S4A Progamming Learning BoardPotenciòmetre i servomotor

32

8A0

Page 33: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

33

S4A Progamming Learning BoardServo

http://datasheet.sparkgo.com.br/SG90Servo.pdf

Page 34: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

34

S4A Progamming Learning BoardServo

http://datasheet.sparkgo.com.br/SG90Servo.pdf

Page 35: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

35

S4A Progamming Learning BoardServo

http://www.ermicro.com/blog/wp-content/uploads/2009/02/servo_01.jpg

Page 36: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

S4A Progamming Learning BoardPotenciòmetre i servomotor

36

Page 37: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

S4A Progamming Learning BoardPotenciòmetre i servomotor

37

Page 38: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

S4A Progamming Learning BoardLDR i servomotor

38

Page 39: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

S4A Progamming Learning BoardLDR i servomotor

39

Page 40: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

S4A Progamming Learning BoardJoystick i servomotors

40

Per a fer servir el joystick desconnecteu el sensor de temperatura i el sensor infraroig

Page 41: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

S4A Progamming Learning BoardSensor d'infrarojos i brunzidor

41

Per a fer servir el sensor infraroig desconnecteu el joystick

Page 42: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

S4A Progamming Learning BoardSensor de temperatura LM35

42

Per a fer servir el sensor de temperatura desconnecteu el joystick

Page 43: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador Arduino43

BUS : Sistema digital que transfereix dades entre dispositius electrònics

eCat System : Dues tipologies de BUS, dades (8 bits) i comunicacions

Cable pla 5x2 a 5x2 (0104A)

http://electronics.cat/php/common/index.php?lang=ca&page=044

Page 44: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador Arduino44

nano-eCat

http://electronics.cat/php/common/index.php?lang=ca&page=101

Placa 0101 v4

Placa convertidora de l'Arduino Nano al sistema de bus lliure eCat System

Page 45: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoNivells de tensió

45

http://electronics.cat/php/common/index.php?lang=ca&page=508

Page 46: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Maneres de programar un ArduinoSimulació per blocs a TinkerCad

46

https://www.tinkercad.com/

Page 47: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Maneres de programar un ArduinoDes de l'IDE d'Arduino

47

Page 48: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoEntrades i sortides digitals

48

Exemples d'entrades / sortides digital i flancs

Page 49: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoSPI, I2C, UART

49

Page 50: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoSPI

50

Explicació del bus SPI

Page 51: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoSPI

51

Vídeo de funcionament

Codis d'Arduino per al mestre i l'esclau

Page 52: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoSPI

52

Vídeo de funcionamentCodis d'Arduino per al mestre i l'esclau

Page 53: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoSPI

53

Com connectar el mòdul RFID-RC522 a Arduino

Page 54: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoSPI

54

Page 55: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoAfegint biblioteques a l'IDE d'Arduino

55

Page 56: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoBME 280 funcionant amb SPI

56

Page 57: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoI2C

57

Page 58: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoI2C

58

Page 59: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoI2C

59

http://electronics.cat/php/common/index.php?lang=ca&page=105

Page 60: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoI2C

60

http://electronics.cat/php/common/index.php?lang=ca&page=303

Page 61: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoI2C

61

http://electronics.cat/php/common/index.php?lang=ca&page=508

Page 62: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoI2C

62

Codis I2C

Page 63: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoI2C

63

I2cScanner.ino

Page 64: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoI2C

64

I2cScanner.ino

Page 65: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoI2C

65

Codis I2C

Page 66: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoBME 280 funcionant amb I2C

66

https://binefa.cat/training/s4a/i2c_scanner.zip

Page 67: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoExemple d'ús amb I2C

Cerca d'adreces I2C

67

PCF8574 OLED

https://binefa.cat/training/ceic/20181031/material/exemples/s4a_i2c_scanner/s4a_i2c_scanner.ino

Page 68: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoExemple d'ús amb I2C i PWM

68

OLED visualitzant valors i controlantla brillantor d'un led emprant PWM.

https://binefa.cat/training/ceic/20181031/material/exemples/s4a_pwm_01/s4a_pwm_01.ino

Page 69: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoUART

69

Page 70: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoUART

70

GN

D

TX

RX

El pont pot estar a 3,3V o a 5V

Page 71: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoUART virtual / Biblioteca SoftwareSerial

71

https://binefa.cat/training/s4a/virtualSerial/virtualSerial.ino

Page 72: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

El microcontrolador ArduinoExemple d'ús del SoftwareSerial

72

Connexió a una segona UART emprant SoftwareSerial

https://binefa.cat/training/ceic/20181031/material/exemples/s4a_softwareSerial/s4a_softwareSerial.ino

Page 73: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoUART virtual / Biblioteca SoftwareSerial

73

https://binefa.cat/training/s4a/virtualSerial/virtualSerial.ino

Page 74: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Connexió de perifèrics a l'ArduinoUART virtual / Biblioteca SoftwareSerial

74

https://binefa.cat/training/s4a/virtualSerial/virtualSerial.ino

Page 75: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Comunicació entre l'Arduino i l'ordinador

Càrrega del protocol Firmata a l'Arduino

75

Connecteu la Raspberry Pi a la placa nano-eCat (la que conté l'Arduino Nano) mitjançant el cable USB-A a miniUSB.

A la Raspberry Pi aneu a Menú / Electrònica / Arduino IDE.

A l'Arduino IDE aneu a Fitxer / Exemples / Firmata / Standard Firmata.

Un cop l'Arduino IDE té carregat el programa Standard Firmata, premeu a la icona de la fletxa que apunta a la dreta (quan passeu el ratolí per sobre hi sortirà el text ”Puja” a la seva dreta).

Un cop hi surti el text ”Pujada enllestida” de color negre sobre fons verd a la part de sota de l'IDE, ja està preparat l'Arduino Nano per establir comunicacions seguint el protocol Firmata.

Page 76: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Comunicació entre l'Arduino i l'ordinador

Prova del protocol Firmata entre l'Arduino i la Raspberry Pi

76

A la Raspberry Pi aneu a Menú / Accessoris / LXTerminal i escriviu el següent :

Us sortirà la finestra de la dreta amb diverses caselles deselecció. Seleccioneu i deseleccioneu la casella corresponent a Led Bit 7 i observeu com canvia d'estat (il·luminat / apagat) el led integrat a l'Arduino.

http://binefa.cat/blog/?p=109

Page 77: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Comunicació entre l'Arduino i l'ordinador

Raspberry Pi amb pyfirmatai Arduino amb Firmata estàndard

77

Codi per a la Raspberry Pi (qtgui03.py)

Cal tenir instal·lada la biblioteca pyfirmata:

sudo pip install pyfirmata

Més informació : http://binefa.cat/blog/?p=102Vídeo: https://youtu.be/2kSSPvfXqug

Page 78: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Comunicació entre l'Arduino i l'ordinador

Protocol Firmata estàndard

78

http://firmata.org/wiki/V2.3ProtocolDetails

Vídeo de com funciona firmata : https://youtu.be/l4jFQIoY9ZY

Page 79: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Comunicació entre l'Arduino i l'ordinador

Ús de pyFirmata

79

https://github.com/tino/pyFirmata

Page 80: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

80

Tecnologies creatives a l'aulaBiblioteca ecat.h per a l'IDE d'Arduino

http://www.electronics.cat/doc/arduinoLib/ecat.zip

Explicació : http://www.binefa.cat/php/doc/lib-eCat01/ http://www.binefa.cat/php/doc/lib-eCat02/ http://www.binefa.cat/php/doc/lib-eCat03/

http://binefa.cat/blog/?p=140

Page 81: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

81

S4A Progamming Learning BoardÚs de la biblioteca ecat.h

Page 82: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

82

http://electronics.cat/downloads/code/robot08.ino

Tecnologies creatives a l'aulaBiblioteca ecat.h per a l'IDE d'Arduino

http

://w

ww

.ele

c tro

nics

.cat

/doc

/ard

uin o

Lib/

ecat

.zip

Exp

licac

ió :

htt

p://

ww

w.b

inef

a.ca

t/php

/doc

/lib-

eCat

01/

htt

p://

ww

w.b

inef

a.ca

t/ph

p/do

c/lib

-eC

at02

/

ht

tp:/

/ww

w.b

inef

a.ca

t/php

/doc

/lib-

eCat

03/

http

://b

inef

a.ca

t/blo

g/?p

=14

0

Page 83: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

83

S4A Progamming Learning BoardÚs de la biblioteca ecat.h

Page 84: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

84

Tecnologies creatives a l'aulaModulació per amplada de pols PWM

Page 86: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

86

Tecnologies creatives a l'aulaCom trobar pel terminal el número ID del

BlueTooth

$ hcitool scanScanning ...

98:D3:31:30:2C:0D HC-06

Page 87: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

87

Tecnologies creatives a l'aulaPreparant la comunicació BlueTooth

http://electronics.cat/doc/hc06/bluetooth04.ino

Page 88: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

88

Tecnologies creatives a l'aulaPreparant la comunicació BlueTooth

http://electronics.cat/doc/hc06/bluetooth04.ino

Page 89: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

RS48589

Page 90: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

RS42290

Page 91: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

RS48591

Page 92: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

RS48592

Page 93: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

RS48593

Page 94: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

RS48594

Page 95: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

RS485ModBus RTU

95

ModBus RTU sobre RS485 emprant Arduino i pyQtModbus dobre USB emprant Arduino i pyQtModbus RTU sobre un mòdul industrial

Page 96: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

RS485ModBus RTU

96

Vídeo explicatiu del ModBusRTU i el ModBusTCP

Page 97: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

EthernetEthernet – Mòdul ENC28J60

Un altre ús del bus SPI

97

Codi per a Arduino UdpServer01b

Page 98: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

EthernetEthernet – Mòdul ENC28J60

98

Biblioteca UIPEthernet per Arduino i ENC28J60

Page 99: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

EthernetEthernet – Mòdul ENC28J60

99

http://electronics.cat/php/common/index.php?lang=ca&page=517

Page 100: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

EthernetEthernet – Mòdul ENC28J60

Recepció de datagrames UDP

100

Codi per a Arduino UdpServer01b

Page 101: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

EthernetEthernet – Mòdul ENC28J60Enviament de datagrames UDP

101

Codi per a Arduino UdpServer01b

Page 102: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

EthernetEnviament de datagrames UDP en Python

102

Codis font dels codis d'enviament de datagrames UDP en Python

Page 103: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

EthernetModBus - TCP

103

http://www.binefa.cat/php/doc/modbus/

Vídeo: https://www.youtube.com/embed/j-1f-dV7ohQ

Page 104: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

LoRaMACEncriptació AES

104

http://binefa.cat/blog/?p=327

Page 105: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

LoRaWANArduino MKR WAN 1300

105

Ús i configuració: http://tinkerman.cat/arduino-mkr-wan-1300/

Page 106: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Altres plaques programables des de l'IDE d'Arduino

Família d'Arduinos i Teensy

106

Page 107: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Altres plaques programables des de l'IDE d'Arduino

ESP8266 / ESP32 / STM32 / ...

107

https://binefa.cat/blog/?s=esp8266

Page 108: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

ESP8266108

Entreu aquesta adreça a ”Additional Boards Manager URLs”:http://arduino.esp8266.com/stable/package_esp8266com_index.json

Page 109: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

ESP8266

109

Tools → Board: “current” → Boards Manager ...

Click install ESP8266 (It is about 450 MB to download) :

Una altra manera de fer la instal·lació de l'IDE d'Arduino per a ESP8266:https://libraries.io/github/adafruit/ESP8266-Arduino

Page 111: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

ESP8266witty

111

Microprogramari client UDP

Page 112: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

ESP8266Trametent trames UDP amb l'ESP8266

112

http://binefa.cat/php/esp8266/codis/arduinoIDE/UDPClientMAC02/UDPClientMAC02.ino

Page 113: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

MQTT113

MQTT és una forma de comunicar dispositius d'Internet de les Coses (IdC / IoT) entre si. És un protocol lleuger i molt versàtil que es pot fer servir des d'un Arduino, una Rasperry Pi, un PC multinucli fins als serveis d'Amazon Web Services.

https://www.baldengineer.com/mqtt-introduction.htmlhttp://binefa.cat/php/dam/m09uf3/20170224/2017024_mqtt_00.pdf

Page 114: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

MQTTAnalogia amb el servei postal

114

https://www.baldengineer.com/mqtt-introduction.html

Page 115: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

MQTTPerquè no fer servir HTTP (o REST)

115

HTTP requereix de múltiples accions POST per a distribuir un missatge a més d'un client. L'objectiu del sistema de missatgeria intermediària és que l'intermediari distribueixi el missatge, tan sols als clients interessats. La funcionalitat del MQTT és trametre d'un a molts.

https://www.baldengineer.com/mqtt-introduction.html

Page 116: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

MQTTESP8266 sobre l'IDE d'Arduino - MQTT

116

http://www.jerome-bernard.com/blog/2015/10/04/wifi-temperature-sensor-with-nodemcu-esp8266/

https://binefa.cat/telecos/ESP8266/esp8266_03.pdf

Page 117: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Torn de preguntes ...

… i sessió pràctica.

117

Page 118: Arduino i Raspberry Pi - binefa.cat · SPI : Serial Peripheral Interface Bus I2C : Inter-Integrated Circuit ... Sensor de temperatura LM35 42 Per a fer servir el sensor de temperatura

Presentació descarregable a : https://binefa.cat/blog/

Correu electrònic de contacte : [email protected]

https://twitter.com/JordiBinefa

http://es.linkedin.com/pub/jordi-binefa/13/717/90b

Moltes gràcies per la vostra atenció

118

https://twitter.com/electronicscat

http://www.electronics.cat

http://www.makeit.cat

Arduino i Raspberry Pi

https://wiki.binefa.cat