Commit 1824ee6a071943c4d3989ccb18d2827a5985c3d9

Authored by grouille
1 parent a407e67a

Ajout du dossier complet Raspberry

EXEC/Build/Makefile 0 → 100644
... ... @@ -0,0 +1,42 @@
  1 +export CC = avr-gcc
  2 +
  3 +export MCU = atmega328p
  4 +export TARGET_ARCH = -mmcu=$(MCU)
  5 +
  6 +export CFLAGS = -Wall -I. -DF_CPU=16000000 -Os #-g
  7 +export LDFLAGS = -g $(TARGET_ARCH) -lm -Wl,--gc-sections # -Os
  8 +
  9 +
  10 +TARGET = blink
  11 +CPPFLAGS = -mmcu=$(MCU)
  12 +PGMERISP = -c pi_3
  13 +ARVDUDECONF= -C ~/avrdude_gpio.conf
  14 +export DUDE = avrdude -v -p $(MCU) $(AVRDUDECONF)
  15 +
  16 +C_SRC = $(wildcard *.c)
  17 +OBJS = $(C_SRC:.c=.o)
  18 +
  19 +
  20 +all: $(TARGET).hex
  21 +
  22 +
  23 +clean:
  24 + rm -f *.o *.hex *.elf build-uno
  25 +
  26 +%.o:%.c
  27 + $(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@
  28 +
  29 +
  30 +$(TARGET).elf: $(OBJS)
  31 + $(CC) $(LDFLAGS) -o $@ $(OBJS)
  32 +
  33 +$(TARGET).hex: $(TARGET).elf
  34 + avr-objcopy -j .text -j .data -O ihex $(TARGET).elf $(TARGET).hex
  35 + avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 -O ihex $(TARGET).elf eeprom.hex
  36 +
  37 +upload: $(TARGET).hex
  38 + $(DUDE) $(PGMERISP) -U flash:w:$(TARGET).hex
  39 +
  40 +size: $(TARGET).elf
  41 + avr-size --format=avr --mcu=$(MCU) $(TARGET).elf
  42 +
... ...
EXEC/Build/main.c 0 → 100755
... ... @@ -0,0 +1,114 @@
  1 +#include <avr/io.h> // for the input/output register
  2 +#include <avr/interrupt.h>
  3 +#include <util/delay.h>
  4 +#include <string.h>
  5 +#include <stdio.h>
  6 +#include <stdlib.h>
  7 +#define PRESCALER 1024
  8 +#define TIME_SLOT 20
  9 +#define BAUDRATE 103
  10 +
  11 +#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
  12 +#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
  13 +
  14 +char Donnee[24];
  15 +float temp;
  16 +
  17 +void init_serial(void)
  18 +{
  19 + /* ACHTUNG : we suppose UBRR value < 0xff */
  20 + /* Not true in all case */
  21 + uint8_t baudrate = BAUDRATE;
  22 + /* Set baud rate */
  23 + UBRR0H = 0;
  24 + UBRR0L = baudrate;
  25 + /* Enable transmitter *///task_led_red();
  26 + //task_send_serial('A');
  27 + UCSR0B = (1<<TXEN0);
  28 + /* Set frame format */
  29 + UCSR0C = 0x06;
  30 +
  31 +}
  32 +
  33 +void send_serial(unsigned char c)
  34 +{
  35 + loop_until_bit_is_set(UCSR0A, UDRE0);
  36 + UDR0 = c;
  37 +}
  38 +
  39 +
  40 +void send_msg2(char Donnee[]){
  41 +
  42 + while (( UCSR0A & (1<<UDRE0)) == 0){};
  43 +
  44 + for (int i = 0; i < strlen(Donnee); i++){
  45 + while (( UCSR0A & (1<<UDRE0)) == 0){};
  46 + UDR0 = Donnee[i];
  47 + if (i == (strlen(Donnee) - 1)){
  48 + send_serial('\n');
  49 + send_serial('\r');
  50 + }
  51 + }
  52 +}
  53 +
  54 +void send_msg(char Donnee[]){
  55 + int i=0;
  56 + for(i=0; i<strlen(Donnee); i++){
  57 + if (i==strlen(Donnee)-1){
  58 + send_serial(Donnee[i]);
  59 + send_serial('\n');
  60 + send_serial('\r');
  61 + }
  62 + else{
  63 + send_serial(Donnee[i]);
  64 + }
  65 + _delay_ms(100);
  66 + }
  67 +}
  68 +
  69 +
  70 +// équivalent de analogueRead()
  71 +int analogReadNew(uint8_t pin) {
  72 + /*
  73 + // Définition de la référence de tension
  74 + ADMUX |= (1 << REFS0);
  75 + // On sélectionne notre pin
  76 + ADMUX |= pin & 0x07;
  77 +
  78 + // On lance la conversion
  79 + sbi(ADCSRA, ADSC);
  80 +
  81 + // Le bit sera désactivé à la fin de la conversion
  82 + while(bit_is_set(ADCSRA, ADSC));
  83 +
  84 + // Lire ADCL en premier est obligatoire, sinon l'ADC se bloque
  85 + uint8_t low = ADCL;
  86 +
  87 + // Récupérer le résultat
  88 + return ((ADCH << 8) | low);
  89 + */
  90 + ADCSRA |= (1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);
  91 + ADMUX |= (1<<REFS0)|(1<<ADLAR);
  92 + ADMUX = (ADMUX&0xf0)|pin;
  93 + ADCSRA |= (1<<ADEN);
  94 +
  95 + ADCSRA |= (1<<ADSC);
  96 + while(bit_is_set(ADCSRA, ADSC));
  97 + return ADCH;
  98 +}
  99 +
  100 +int main()
  101 +{
  102 + int reading;
  103 + init_serial();
  104 + while(1){
  105 + reading=analogReadNew(0);
  106 + temp = reading * 1.9607843;
  107 + dtostrf(temp, 4, 1, Donnee);
  108 + //send_serial('T');
  109 + //send_serial('=');
  110 + send_msg2(Donnee);
  111 + _delay_ms(2000);
  112 + }
  113 + return 0;
  114 +}
... ...
EXEC/Rpi_to_server.py 0 → 100755
... ... @@ -0,0 +1,24 @@
  1 +#!usr/bin/env python
  2 +
  3 +import serial
  4 +import requests
  5 +import datetime
  6 +
  7 +date_comp = datetime.datetime.now()
  8 +A = str(date_comp.year)
  9 +M = str(date_comp.month)
  10 +J = str(date_comp.day)
  11 +h = str(date_comp.hour)
  12 +m = str(date_comp.minute)
  13 +s = str(date_comp.second)
  14 +date = A + '-' + M + '-' + J + ' ' + h + ':' + m + ':' + s
  15 +
  16 +ser = serial.Serial("/dev/ttyACM0", 9600, timeout=1)
  17 +value = ser.readline()
  18 +while (value in ['\r', '', '\n']):
  19 + value = ser.readline()
  20 +data = str(float(value[0:4]))
  21 +
  22 +params = {"ip_address":"172.26.145.111", "numero":"2", "name":"Solaris", "data": data, "date": date}
  23 +r = requests.post("http://serveur-etu.polytech-lille.fr/~grouille/PROJET/requests.php", data = params)
  24 +print(data)
0 25 \ No newline at end of file
... ...
EXEC/binaire.c 0 → 100755
... ... @@ -0,0 +1,114 @@
  1 +#include <avr/io.h> // for the input/output register
  2 +#include <avr/interrupt.h>
  3 +#include <util/delay.h>
  4 +#include <string.h>
  5 +#include <stdio.h>
  6 +#include <stdlib.h>
  7 +#define PRESCALER 1024
  8 +#define TIME_SLOT 20
  9 +#define BAUDRATE 103
  10 +
  11 +#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
  12 +#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
  13 +
  14 +char Donnee[24];
  15 +float temp;
  16 +
  17 +void init_serial(void)
  18 +{
  19 + /* ACHTUNG : we suppose UBRR value < 0xff */
  20 + /* Not true in all case */
  21 + uint8_t baudrate = BAUDRATE;
  22 + /* Set baud rate */
  23 + UBRR0H = 0;
  24 + UBRR0L = baudrate;
  25 + /* Enable transmitter *///task_led_red();
  26 + //task_send_serial('A');
  27 + UCSR0B = (1<<TXEN0);
  28 + /* Set frame format */
  29 + UCSR0C = 0x06;
  30 +
  31 +}
  32 +
  33 +void send_serial(unsigned char c)
  34 +{
  35 + loop_until_bit_is_set(UCSR0A, UDRE0);
  36 + UDR0 = c;
  37 +}
  38 +
  39 +
  40 +void send_msg2(char Donnee[]){
  41 +
  42 + while (( UCSR0A & (1<<UDRE0)) == 0){};
  43 +
  44 + for (int i = 0; i < strlen(Donnee); i++){
  45 + while (( UCSR0A & (1<<UDRE0)) == 0){};
  46 + UDR0 = Donnee[i];
  47 + if (i == (strlen(Donnee) - 1)){
  48 + send_serial('\n');
  49 + send_serial('\r');
  50 + }
  51 + }
  52 +}
  53 +
  54 +void send_msg(char Donnee[]){
  55 + int i=0;
  56 + for(i=0; i<strlen(Donnee); i++){
  57 + if (i==strlen(Donnee)-1){
  58 + send_serial(Donnee[i]);
  59 + send_serial('\n');
  60 + send_serial('\r');
  61 + }
  62 + else{
  63 + send_serial(Donnee[i]);
  64 + }
  65 + _delay_ms(100);
  66 + }
  67 +}
  68 +
  69 +
  70 +// équivalent de analogueRead()
  71 +int analogReadNew(uint8_t pin) {
  72 + /*
  73 + // Définition de la référence de tension
  74 + ADMUX |= (1 << REFS0);
  75 + // On sélectionne notre pin
  76 + ADMUX |= pin & 0x07;
  77 +
  78 + // On lance la conversion
  79 + sbi(ADCSRA, ADSC);
  80 +
  81 + // Le bit sera désactivé à la fin de la conversion
  82 + while(bit_is_set(ADCSRA, ADSC));
  83 +
  84 + // Lire ADCL en premier est obligatoire, sinon l'ADC se bloque
  85 + uint8_t low = ADCL;
  86 +
  87 + // Récupérer le résultat
  88 + return ((ADCH << 8) | low);
  89 + */
  90 + ADCSRA |= (1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);
  91 + ADMUX |= (1<<REFS0)|(1<<ADLAR);
  92 + ADMUX = (ADMUX&0xf0)|pin;
  93 + ADCSRA |= (1<<ADEN);
  94 +
  95 + ADCSRA |= (1<<ADSC);
  96 + while(bit_is_set(ADCSRA, ADSC));
  97 + return ADCH;
  98 +}
  99 +
  100 +int main()
  101 +{
  102 + int reading;
  103 + init_serial();
  104 + while(1){
  105 + reading=analogReadNew(0);
  106 + temp = reading * 1.9607843;
  107 + dtostrf(temp, 4, 1, Donnee);
  108 + //send_serial('T');
  109 + //send_serial('=');
  110 + send_msg2(Donnee);
  111 + _delay_ms(2000);
  112 + }
  113 + return 0;
  114 +}
... ...
EXEC/load.sh 0 → 100755
... ... @@ -0,0 +1,10 @@
  1 +#!/bin/sh
  2 +
  3 +wget -N -P ./ http://houplin.studserv.deule.net/~grouille/PROJET/upload/binaire.c
  4 +wget -N -P ./ http://houplin.studserv.deule.net/~grouille/PROJET/upload/sensor.xml
  5 +
  6 +cp binaire.c Build/main.c
  7 +cd Build
  8 +make clean
  9 +make upload
  10 +cd ..
... ...
EXEC/script.sh 0 → 100755
... ... @@ -0,0 +1,7 @@
  1 +#!/bin/sh
  2 +./load.sh
  3 +while true
  4 +do
  5 + sleep 5
  6 + python3 Rpi_to_server.py
  7 +done
... ...