I nostri progetti con il Raspberry Pi

MrColo

Utente Èlite
1,840
628
CPU
Ryzen 7 2700X
Scheda Madre
Asus X470 Prime Pro
HDD
2 x HDD 1TB + SSD Samsung 860EVO 250GB + 2xSSD Samsung 500GB/1TB nvme 970 EVO PLUS
RAM
2 x Kingston HyperXFury 16GB 3200MHz
GPU
Nvidia Tesla M40 12GB + Nvidia GTX 1050 2GB
Monitor
LG 29WK600 29" Ultrawide HDR
PSU
Riotoro 650W
Case
Sharkoon TG5 White Edition
Periferiche
MX Master + Mastekeys lite L + AKG K92
Net
FTTH OF + Sophos XG + Fritz!Box 7490
OS
Windows 10 Pro
Ciao ragazzi, ho aperto questa discussione per pura curiosità e per conoscere e scoprire i progetti che avete fatto con il vostro raspberry.

Mmmh sono proprio curioso... ahah

P.s. mi scuso se la sezione non è quella giusta, ma non sono riuscito a trovarne nessuna apposita.
 
Ultima modifica:

pentothal

Utente Attivo
821
209
CPU
CPU Intel Core 2 Duo E8500
Scheda Madre
Scheda Madre Asus P5KPL intel® Core™2 Extreme sk775
HDD
500gb
RAM
2pz MEMORIA RAM KINGSTON 1 GB DDR II
GPU
S. Video 9600 GT Point Of View GeForce 9600GT 512mb
Case
CABINET CASE AT-8 MODDING 500W TIPO BMW
OS
Windows
Seguo con interesse
 

Gio22

Utente Attivo
463
166
CPU
Ryzen 5 3600
Dissipatore
DeepCool Gammaxx GT
Scheda Madre
MSI B450 MAX Gaming Plus
HDD
WD BLUE 1TB
RAM
16gb 3000mhz corsair lpx (2x8)
GPU
Nvidia GTX 1660ti
Audio
Integrata
Monitor
Acer kg241qb
PSU
Corsair TX650M
Case
Ctesports Draco (+6 ventole)
Periferiche
Royale Kludge rk61 rgb/ Logitech G502
OS
Windows 10
Seguo! :cavallo:
 

Hacker91

Utente Attivo
1,287
213
CPU
Apple M2
OS
macOS
Penso che sia la sezione sbagliata per parlare di questo argomento.

Comunque sono interessato anch'io. :D
 
Ultima modifica:

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,540
12,922
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
Interessato seguo.
 
U

Utente cancellato 368991

Ospite
La sezione è giusta in quanto ci sono anche le guide officiali al raspberry.

Sbizzarritevi!
 

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,540
12,922
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
Beh dai parto io ^^
Il mio è un semplice progetto, che può esser fatto con qualsiasi minipc.
Utilizzo uno dei rpi3 come server piHole + server openVpn + server CardDAV + gestionale in php/mysql(molto semplice: carico/scarico merce, gestione clienti, creazione fatture/preventivi/ddt ) per una piccola azienda, tutto gestito da interfaccia webmin )
Link delle varie componenti:

Tutta la rete usa come server DNS il raspberry pi3 model B ( sono 5 pc ), in contemporanea usano una rubrica condivisa ed un gestionale fatto su misura.
Per quando vogliono accedere alle varie risorse da esterno gli abbiamo messo un server openVPN così da non dover aprire troppe porte sul router/modem,ed in più possono stampare in ufficio anche quando sono all'estero.
E' su tipo da 2/3 anni, tranne per la parte openVPN che è ha meno di un anno.
Mai dato problemi, molto soddisfatto
Ah naturalmente non è appeso o appoggiato così a zonzo, ha un suo case con ventola
 

MrColo

Utente Èlite
1,840
628
CPU
Ryzen 7 2700X
Scheda Madre
Asus X470 Prime Pro
HDD
2 x HDD 1TB + SSD Samsung 860EVO 250GB + 2xSSD Samsung 500GB/1TB nvme 970 EVO PLUS
RAM
2 x Kingston HyperXFury 16GB 3200MHz
GPU
Nvidia Tesla M40 12GB + Nvidia GTX 1050 2GB
Monitor
LG 29WK600 29" Ultrawide HDR
PSU
Riotoro 650W
Case
Sharkoon TG5 White Edition
Periferiche
MX Master + Mastekeys lite L + AKG K92
Net
FTTH OF + Sophos XG + Fritz!Box 7490
OS
Windows 10 Pro
Beh dai parto io ^^
Il mio è un semplice progetto, che può esser fatto con qualsiasi minipc.
Utilizzo uno dei rpi3 come server piHole + server openVpn + server CardDAV + gestionale in php/mysql(molto semplice: carico/scarico merce, gestione clienti, creazione fatture/preventivi/ddt ) per una piccola azienda, tutto gestito da interfaccia webmin )
Link delle varie componenti:

Tutta la rete usa come server DNS il raspberry pi3 model B ( sono 5 pc ), in contemporanea usano una rubrica condivisa ed un gestionale fatto su misura.
Per quando vogliono accedere alle varie risorse da esterno gli abbiamo messo un server openVPN così da non dover aprire troppe porte sul router/modem,ed in più possono stampare in ufficio anche quando sono all'estero.
E' su tipo da 2/3 anni, tranne per la parte openVPN che è ha meno di un anno.
Mai dato problemi, molto soddisfatto
Ah naturalmente non è appeso o appoggiato così a zonzo, ha un suo case con ventola
Grande Moffetta, è un progetto molto interessante e utile! Mi sa che in futuro scoppiazzerò un pochino XD.

Attendiamo altri progetti!
 
  • Mi piace
Reazioni: Moffetta88

NT.Wardenclyffe

Utente Attivo
624
909
CPU
ryzen 5 2600
Dissipatore
be quiet! pure rock slim
Scheda Madre
b450 aorus m
HDD
ssd kingston 240 gb - hdd seagate barracuda 1tb + 500gb wd (bkps)
RAM
vengeance lcx xmp (8x2) 3000mhz
GPU
rx 580 nitro (4gb)
Monitor
Acer 24"
PSU
cx650m
Case
matrexx 55
Periferiche
rival 310, ap2, se-m521
OS
Manjaro KDE Plasma 5.19 - Win 10 Pro
Seguo.. :+1:
 

MrColo

Utente Èlite
1,840
628
CPU
Ryzen 7 2700X
Scheda Madre
Asus X470 Prime Pro
HDD
2 x HDD 1TB + SSD Samsung 860EVO 250GB + 2xSSD Samsung 500GB/1TB nvme 970 EVO PLUS
RAM
2 x Kingston HyperXFury 16GB 3200MHz
GPU
Nvidia Tesla M40 12GB + Nvidia GTX 1050 2GB
Monitor
LG 29WK600 29" Ultrawide HDR
PSU
Riotoro 650W
Case
Sharkoon TG5 White Edition
Periferiche
MX Master + Mastekeys lite L + AKG K92
Net
FTTH OF + Sophos XG + Fritz!Box 7490
OS
Windows 10 Pro

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,540
12,922
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
Ma insomma dove sono tutti quegli utenti che compravano il raspberry :P
Dunque, ne segno altri due, uno effettivo e l'altro è in wip.
Il primo è una cosa molto easy, viene fatta con un raspberry pi 3 model b, raspbian ( pen'ultima versione, quella prima di buster per intenderci ), php, apache e arduino.
In camera mia ho un ventilatore da soffitto che funziona SOLO ed esclusivamente con un telecomando 433MHz, quidni se spengo la luce con l'interruttore della camera, gli tolgo totalmente l'alimentazione e ce l'ho in quel posto.
Così, a sbaffo dell'elettricista che diceva che era impossibile clonare il telecomando, mi sono clonato con arduino l'intero set di istruzioni del telecomando:
-5 velocità delle pale
-luce calda, fredda, mista
-intensità della luce
-luce accesa/spenta
-pale in funzione o no
Su arduino poi ho predisposto due cavi ( un - ed un + ) per la trasmissione dei dati con il raspberry ( usando il modulo 433MHz con raspberry, non fornendo i 5V, non dava i segnali giusti... ho tirato giù tutti i santi ).
Sul raspberry mi sono fatto una specie di web app in cui posso controllare questo ventilatore, e i comandi vengono fatti tramite php che esegue delle chiamate sul "cmd" per interagire con la serial port dell'arduino.
In soldoni ho usato apache per il server web, php per le chiamate tra raspberry/gpio/arduino, onsenui come interfaccia grafica.
Includo il codice di arduino ( che attenzione, è un progetto multiplo, infatti c'è collegato display lcd che mi segna temperatura ed ora, e tramite dei bottoni fisici posso accendere e spegnere la retroilluminazione del display. Il tutto per usare una specie di thread e quindi far fare più cose senza bloccare arduino )
C#:
#include "DHT.h"
#include <RCSwitch.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DS1302.h>

#define DHTPIN 11
#define DHTTYPE DHT11
#define INTERVAL_MESSAGE1 1000
#define INTERVAL_MESSAGE2 2000
#define INTERVAL_MESSAGE3 11000
#define INTERVAL_MESSAGE4 13000

unsigned long time_1 = 0;
unsigned long time_2 = 0;
unsigned long time_3 = 0;
unsigned long time_4 = 0;

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
RCSwitch mySwitch = RCSwitch();
DS1302 rtc(2, 3, 4);

String read_serial;
int SWITCH_BCK = 7;
int SWITCH_ONOFF = 6;

int  val = 0;
int cmd = 0;
int val_tmp = 1;

void setup() {
  rtc.halt(false);
  rtc.writeProtect(false);
  dht.begin();
  lcd.init();
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.backlight();
  inizializzalcd();
  mySwitch.enableTransmit(10);
  mySwitch.setProtocol(6);
  mySwitch.setPulseLength(389);
  mySwitch.setRepeatTransmit(15);
  pinMode(SWITCH_BCK, INPUT);
  pinMode(SWITCH_ONOFF, INPUT);


}

void loop() {

  if (millis() > time_1 + INTERVAL_MESSAGE1) {
    time_1 = millis();
    data ();
  }

  if (millis() > time_2 + INTERVAL_MESSAGE2) {
    time_2 = millis();
    temp();
  }


  val = digitalRead(SWITCH_BCK);
  cmd = digitalRead(SWITCH_ONOFF);
  delay(100);
  if (cmd == HIGH) {
    read_serial = "1";
    delay(250);
  }
  if (val == HIGH && val_tmp == 0) {
    val_tmp = 1;
    lcd.setBacklight(HIGH);
    delay(100);
  } else if (val == HIGH && val_tmp == 1) {
    val_tmp = 0;
    lcd.setBacklight(LOW);
    delay(100);
  }

  while (Serial.available()) {
    char c = Serial.read(); 
    read_serial += c;
    delay(2);

  }

  if (read_serial.length() > 0) {
    int n = read_serial.toInt(); 
    Serial.print("--> ");
    Serial.println(n);
    switch (n) {
      case 1:
        //on/off lamp
        mySwitch.send(2768297236, 32);
        break;
      case 2:
        //on/off fan
        mySwitch.send(3959479572, 32);
        break;
      case 3:
        //LOW
        mySwitch.send(1610669332, 32);
        break;
      case 4:
        // MID
        mySwitch.send(100719892, 32);
        break;
      case 5:
        // HIGH
        mySwitch.send(218160404, 32);
        break;
      case 6:
        // LAMP MIN
        mySwitch.send(4110474516, 32);
        break;
      case 7:
        // LAMP MAX
        mySwitch.send(1593892116, 32);
        break;
      case 8:
        //1
        mySwitch.send(4211137812, 32);
        break;
      case 9:
        //2
        mySwitch.send(4261469460, 32);
        break;
      case 10:
        //3
        mySwitch.send(1510006036, 32);
        break;
      case 11:
        //4
        mySwitch.send(4009811220, 32);
        break;
      case 12:
        //5
        mySwitch.send(3204504852, 32);
        break;
      case 13:
        //REV
        mySwitch.send(4244692244, 32);
        break;
      default:
        Serial.print("DEF: ");
        Serial.println(n);
        break;
    }
    read_serial = "";
  }

}

void data () {
  lcd.setCursor(0, 0);
  lcd.print(rtc.getDateStr());
  lcd.print(" ");
  lcd.print(rtc.getTimeStr());
}
void temp() {
  float h = 0.0;
  float t = 0.0;
  h = dht.readHumidity();
  t = dht.readTemperature();
  lcd.setCursor(0, 1);
  lcd.print("Oggi ");
  lcd.print((int)t);
  lcd.print((char)223);
  lcd.print(" con ");
  lcd.print((int)h);
  lcd.print("%");

}
void inizializzalcd() {
  lcd.setCursor(0, 0);
  lcd.print("Inizializzo....");
  //delay(250);
}

Il secondo progetto è un WIP nella mia testa:
Consisterà in una scatoletta elettrica con coperchio ricoperto di pannelli solari che alimenterà un gruppo di batterie per tenere in vita un raspberry w 0 ed alcuni sensori. Tutto che girerà su server linux e salvataggio dei dati ( devo ancora pensare quali xD ) su database o mysql o sqlite e reperibili da remoto + vari allert via email ( avevo in mente di far vedere lo stato della batteria, quanto è efficiente il pannello solare, quanti Watt ha accumulato, vari dati relativi al "server", e stavo pensando di monitorare l'inquinamento acustico )
Naturalmente tutto ancora nella mia testa, ma pian piano prende forma su carta xD
 

NT.Wardenclyffe

Utente Attivo
624
909
CPU
ryzen 5 2600
Dissipatore
be quiet! pure rock slim
Scheda Madre
b450 aorus m
HDD
ssd kingston 240 gb - hdd seagate barracuda 1tb + 500gb wd (bkps)
RAM
vengeance lcx xmp (8x2) 3000mhz
GPU
rx 580 nitro (4gb)
Monitor
Acer 24"
PSU
cx650m
Case
matrexx 55
Periferiche
rival 310, ap2, se-m521
OS
Manjaro KDE Plasma 5.19 - Win 10 Pro
Ma insomma dove sono tutti quegli utenti che compravano il raspberry :P
Dunque, ne segno altri due, uno effettivo e l'altro è in wip.
Il primo è una cosa molto easy, viene fatta con un raspberry pi 3 model b, raspbian ( pen'ultima versione, quella prima di buster per intenderci ), php, apache e arduino.
In camera mia ho un ventilatore da soffitto che funziona SOLO ed esclusivamente con un telecomando 433MHz, quidni se spengo la luce con l'interruttore della camera, gli tolgo totalmente l'alimentazione e ce l'ho in quel posto.
Così, a sbaffo dell'elettricista che diceva che era impossibile clonare il telecomando, mi sono clonato con arduino l'intero set di istruzioni del telecomando:
-5 velocità delle pale
-luce calda, fredda, mista
-intensità della luce
-luce accesa/spenta
-pale in funzione o no
Su arduino poi ho predisposto due cavi ( un - ed un + ) per la trasmissione dei dati con il raspberry ( usando il modulo 433MHz con raspberry, non fornendo i 5V, non dava i segnali giusti... ho tirato giù tutti i santi ).
Sul raspberry mi sono fatto una specie di web app in cui posso controllare questo ventilatore, e i comandi vengono fatti tramite php che esegue delle chiamate sul "cmd" per interagire con la serial port dell'arduino.
In soldoni ho usato apache per il server web, php per le chiamate tra raspberry/gpio/arduino, onsenui come interfaccia grafica.
Includo il codice di arduino ( che attenzione, è un progetto multiplo, infatti c'è collegato display lcd che mi segna temperatura ed ora, e tramite dei bottoni fisici posso accendere e spegnere la retroilluminazione del display. Il tutto per usare una specie di thread e quindi far fare più cose senza bloccare arduino )
C#:
#include "DHT.h"
#include <RCSwitch.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DS1302.h>

#define DHTPIN 11
#define DHTTYPE DHT11
#define INTERVAL_MESSAGE1 1000
#define INTERVAL_MESSAGE2 2000
#define INTERVAL_MESSAGE3 11000
#define INTERVAL_MESSAGE4 13000

unsigned long time_1 = 0;
unsigned long time_2 = 0;
unsigned long time_3 = 0;
unsigned long time_4 = 0;

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
RCSwitch mySwitch = RCSwitch();
DS1302 rtc(2, 3, 4);

String read_serial;
int SWITCH_BCK = 7;
int SWITCH_ONOFF = 6;

int  val = 0;
int cmd = 0;
int val_tmp = 1;

void setup() {
  rtc.halt(false);
  rtc.writeProtect(false);
  dht.begin();
  lcd.init();
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.backlight();
  inizializzalcd();
  mySwitch.enableTransmit(10);
  mySwitch.setProtocol(6);
  mySwitch.setPulseLength(389);
  mySwitch.setRepeatTransmit(15);
  pinMode(SWITCH_BCK, INPUT);
  pinMode(SWITCH_ONOFF, INPUT);


}

void loop() {

  if (millis() > time_1 + INTERVAL_MESSAGE1) {
    time_1 = millis();
    data ();
  }

  if (millis() > time_2 + INTERVAL_MESSAGE2) {
    time_2 = millis();
    temp();
  }


  val = digitalRead(SWITCH_BCK);
  cmd = digitalRead(SWITCH_ONOFF);
  delay(100);
  if (cmd == HIGH) {
    read_serial = "1";
    delay(250);
  }
  if (val == HIGH && val_tmp == 0) {
    val_tmp = 1;
    lcd.setBacklight(HIGH);
    delay(100);
  } else if (val == HIGH && val_tmp == 1) {
    val_tmp = 0;
    lcd.setBacklight(LOW);
    delay(100);
  }

  while (Serial.available()) {
    char c = Serial.read();
    read_serial += c;
    delay(2);

  }

  if (read_serial.length() > 0) {
    int n = read_serial.toInt();
    Serial.print("--> ");
    Serial.println(n);
    switch (n) {
      case 1:
        //on/off lamp
        mySwitch.send(2768297236, 32);
        break;
      case 2:
        //on/off fan
        mySwitch.send(3959479572, 32);
        break;
      case 3:
        //LOW
        mySwitch.send(1610669332, 32);
        break;
      case 4:
        // MID
        mySwitch.send(100719892, 32);
        break;
      case 5:
        // HIGH
        mySwitch.send(218160404, 32);
        break;
      case 6:
        // LAMP MIN
        mySwitch.send(4110474516, 32);
        break;
      case 7:
        // LAMP MAX
        mySwitch.send(1593892116, 32);
        break;
      case 8:
        //1
        mySwitch.send(4211137812, 32);
        break;
      case 9:
        //2
        mySwitch.send(4261469460, 32);
        break;
      case 10:
        //3
        mySwitch.send(1510006036, 32);
        break;
      case 11:
        //4
        mySwitch.send(4009811220, 32);
        break;
      case 12:
        //5
        mySwitch.send(3204504852, 32);
        break;
      case 13:
        //REV
        mySwitch.send(4244692244, 32);
        break;
      default:
        Serial.print("DEF: ");
        Serial.println(n);
        break;
    }
    read_serial = "";
  }

}

void data () {
  lcd.setCursor(0, 0);
  lcd.print(rtc.getDateStr());
  lcd.print(" ");
  lcd.print(rtc.getTimeStr());
}
void temp() {
  float h = 0.0;
  float t = 0.0;
  h = dht.readHumidity();
  t = dht.readTemperature();
  lcd.setCursor(0, 1);
  lcd.print("Oggi ");
  lcd.print((int)t);
  lcd.print((char)223);
  lcd.print(" con ");
  lcd.print((int)h);
  lcd.print("%");

}
void inizializzalcd() {
  lcd.setCursor(0, 0);
  lcd.print("Inizializzo....");
  //delay(250);
}

Il secondo progetto è un WIP nella mia testa:
Consisterà in una scatoletta elettrica con coperchio ricoperto di pannelli solari che alimenterà un gruppo di batterie per tenere in vita un raspberry w 0 ed alcuni sensori. Tutto che girerà su server linux e salvataggio dei dati ( devo ancora pensare quali xD ) su database o mysql o sqlite e reperibili da remoto + vari allert via email ( avevo in mente di far vedere lo stato della batteria, quanto è efficiente il pannello solare, quanti Watt ha accumulato, vari dati relativi al "server", e stavo pensando di monitorare l'inquinamento acustico )
Naturalmente tutto ancora nella mia testa, ma pian piano prende forma su carta xD
Bei progetti complimenti.

In camera mia ho un ventilatore da soffitto che funziona SOLO ed esclusivamente con un telecomando 433MHz, quidni se spengo la luce con l'interruttore della camera, gli tolgo totalmente l'alimentazione e ce l'ho in quel posto.
Così, a sbaffo dell'elettricista che diceva che era impossibile clonare il telecomando, mi sono clonato con arduino l'intero set di istruzioni del telecomando:
-5 velocità delle pale
-luce calda, fredda, mista
-intensità della luce
-luce accesa/spenta
-pale in funzione o no
Non era informato quanto te..! Sei un grande! :brindiamo: :+1:

Ho visto fare una cosa simile a morro guarda qua >
 

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,540
12,922
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
Il problema che bisogna trovare dei moduli 443MHz da 3V, perchè le gpio del raspberry sono da 3V, sto infame, e quindi i moduli che ho io mi buttavano fuori codici diversi ( se no non passavo da arduino ).
ah con FTTT :) Mio fratello con quello aveva un account twitter di una piantina che ogni volta che aveva sete mandava un tweet, oppure quando veniva annaffiata.
Con quel sito si possono fare un macello di cose, molto fighe!
 

Hacker91

Utente Attivo
1,287
213
CPU
Apple M2
OS
macOS
Ma insomma dove sono tutti quegli utenti che compravano il raspberry :P
Dunque, ne segno altri due, uno effettivo e l'altro è in wip.
Il primo è una cosa molto easy, viene fatta con un raspberry pi 3 model b, raspbian ( pen'ultima versione, quella prima di buster per intenderci ), php, apache e arduino.
In camera mia ho un ventilatore da soffitto che funziona SOLO ed esclusivamente con un telecomando 433MHz, quidni se spengo la luce con l'interruttore della camera, gli tolgo totalmente l'alimentazione e ce l'ho in quel posto.
Così, a sbaffo dell'elettricista che diceva che era impossibile clonare il telecomando, mi sono clonato con arduino l'intero set di istruzioni del telecomando:
-5 velocità delle pale
-luce calda, fredda, mista
-intensità della luce
-luce accesa/spenta
-pale in funzione o no
Su arduino poi ho predisposto due cavi ( un - ed un + ) per la trasmissione dei dati con il raspberry ( usando il modulo 433MHz con raspberry, non fornendo i 5V, non dava i segnali giusti... ho tirato giù tutti i santi ).
Sul raspberry mi sono fatto una specie di web app in cui posso controllare questo ventilatore, e i comandi vengono fatti tramite php che esegue delle chiamate sul "cmd" per interagire con la serial port dell'arduino.
In soldoni ho usato apache per il server web, php per le chiamate tra raspberry/gpio/arduino, onsenui come interfaccia grafica.
Includo il codice di arduino ( che attenzione, è un progetto multiplo, infatti c'è collegato display lcd che mi segna temperatura ed ora, e tramite dei bottoni fisici posso accendere e spegnere la retroilluminazione del display. Il tutto per usare una specie di thread e quindi far fare più cose senza bloccare arduino )
C#:
#include "DHT.h"
#include <RCSwitch.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DS1302.h>

#define DHTPIN 11
#define DHTTYPE DHT11
#define INTERVAL_MESSAGE1 1000
#define INTERVAL_MESSAGE2 2000
#define INTERVAL_MESSAGE3 11000
#define INTERVAL_MESSAGE4 13000

unsigned long time_1 = 0;
unsigned long time_2 = 0;
unsigned long time_3 = 0;
unsigned long time_4 = 0;

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
RCSwitch mySwitch = RCSwitch();
DS1302 rtc(2, 3, 4);

String read_serial;
int SWITCH_BCK = 7;
int SWITCH_ONOFF = 6;

int  val = 0;
int cmd = 0;
int val_tmp = 1;

void setup() {
  rtc.halt(false);
  rtc.writeProtect(false);
  dht.begin();
  lcd.init();
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.backlight();
  inizializzalcd();
  mySwitch.enableTransmit(10);
  mySwitch.setProtocol(6);
  mySwitch.setPulseLength(389);
  mySwitch.setRepeatTransmit(15);
  pinMode(SWITCH_BCK, INPUT);
  pinMode(SWITCH_ONOFF, INPUT);


}

void loop() {

  if (millis() > time_1 + INTERVAL_MESSAGE1) {
    time_1 = millis();
    data ();
  }

  if (millis() > time_2 + INTERVAL_MESSAGE2) {
    time_2 = millis();
    temp();
  }


  val = digitalRead(SWITCH_BCK);
  cmd = digitalRead(SWITCH_ONOFF);
  delay(100);
  if (cmd == HIGH) {
    read_serial = "1";
    delay(250);
  }
  if (val == HIGH && val_tmp == 0) {
    val_tmp = 1;
    lcd.setBacklight(HIGH);
    delay(100);
  } else if (val == HIGH && val_tmp == 1) {
    val_tmp = 0;
    lcd.setBacklight(LOW);
    delay(100);
  }

  while (Serial.available()) {
    char c = Serial.read();
    read_serial += c;
    delay(2);

  }

  if (read_serial.length() > 0) {
    int n = read_serial.toInt();
    Serial.print("--> ");
    Serial.println(n);
    switch (n) {
      case 1:
        //on/off lamp
        mySwitch.send(2768297236, 32);
        break;
      case 2:
        //on/off fan
        mySwitch.send(3959479572, 32);
        break;
      case 3:
        //LOW
        mySwitch.send(1610669332, 32);
        break;
      case 4:
        // MID
        mySwitch.send(100719892, 32);
        break;
      case 5:
        // HIGH
        mySwitch.send(218160404, 32);
        break;
      case 6:
        // LAMP MIN
        mySwitch.send(4110474516, 32);
        break;
      case 7:
        // LAMP MAX
        mySwitch.send(1593892116, 32);
        break;
      case 8:
        //1
        mySwitch.send(4211137812, 32);
        break;
      case 9:
        //2
        mySwitch.send(4261469460, 32);
        break;
      case 10:
        //3
        mySwitch.send(1510006036, 32);
        break;
      case 11:
        //4
        mySwitch.send(4009811220, 32);
        break;
      case 12:
        //5
        mySwitch.send(3204504852, 32);
        break;
      case 13:
        //REV
        mySwitch.send(4244692244, 32);
        break;
      default:
        Serial.print("DEF: ");
        Serial.println(n);
        break;
    }
    read_serial = "";
  }

}

void data () {
  lcd.setCursor(0, 0);
  lcd.print(rtc.getDateStr());
  lcd.print(" ");
  lcd.print(rtc.getTimeStr());
}
void temp() {
  float h = 0.0;
  float t = 0.0;
  h = dht.readHumidity();
  t = dht.readTemperature();
  lcd.setCursor(0, 1);
  lcd.print("Oggi ");
  lcd.print((int)t);
  lcd.print((char)223);
  lcd.print(" con ");
  lcd.print((int)h);
  lcd.print("%");

}
void inizializzalcd() {
  lcd.setCursor(0, 0);
  lcd.print("Inizializzo....");
  //delay(250);
}

Il secondo progetto è un WIP nella mia testa:
Consisterà in una scatoletta elettrica con coperchio ricoperto di pannelli solari che alimenterà un gruppo di batterie per tenere in vita un raspberry w 0 ed alcuni sensori. Tutto che girerà su server linux e salvataggio dei dati ( devo ancora pensare quali xD ) su database o mysql o sqlite e reperibili da remoto + vari allert via email ( avevo in mente di far vedere lo stato della batteria, quanto è efficiente il pannello solare, quanti Watt ha accumulato, vari dati relativi al "server", e stavo pensando di monitorare l'inquinamento acustico )
Naturalmente tutto ancora nella mia testa, ma pian piano prende forma su carta xD
Complimenti bei progetti!!! :rock:


Ma insomma dove sono tutti quegli utenti che compravano il raspberry :P

Ho un raspberry pi 2b in qualche scatolo quasi mai utilizzato e un arduino anche da qualche altra parte che l'ho comprato per imparare con qualche progetto, appena trovo qualcosa di semplice e carina da fare mi ci metto...

Il problema che di programmazione non ci capisco quasi nulla, mentre di elettronica me la cavo...
 
  • Mi piace
Reazioni: Moffetta88

MrColo

Utente Èlite
1,840
628
CPU
Ryzen 7 2700X
Scheda Madre
Asus X470 Prime Pro
HDD
2 x HDD 1TB + SSD Samsung 860EVO 250GB + 2xSSD Samsung 500GB/1TB nvme 970 EVO PLUS
RAM
2 x Kingston HyperXFury 16GB 3200MHz
GPU
Nvidia Tesla M40 12GB + Nvidia GTX 1050 2GB
Monitor
LG 29WK600 29" Ultrawide HDR
PSU
Riotoro 650W
Case
Sharkoon TG5 White Edition
Periferiche
MX Master + Mastekeys lite L + AKG K92
Net
FTTH OF + Sophos XG + Fritz!Box 7490
OS
Windows 10 Pro
Ma insomma dove sono tutti quegli utenti che compravano il raspberry
Dunque, ne segno altri due, uno effettivo e l'altro è in wip.
Il primo è una cosa molto easy, viene fatta con un raspberry pi 3 model b, raspbian ( pen'ultima versione, quella prima di buster per intenderci ), php, apache e arduino.
In camera mia ho un ventilatore da soffitto che funziona SOLO ed esclusivamente con un telecomando 433MHz, quidni se spengo la luce con l'interruttore della camera, gli tolgo totalmente l'alimentazione e ce l'ho in quel posto.
Così, a sbaffo dell'elettricista che diceva che era impossibile clonare il telecomando, mi sono clonato con arduino l'intero set di istruzioni del telecomando:
-5 velocità delle pale
-luce calda, fredda, mista
-intensità della luce
-luce accesa/spenta
-pale in funzione o no
Su arduino poi ho predisposto due cavi ( un - ed un + ) per la trasmissione dei dati con il raspberry ( usando il modulo 433MHz con raspberry, non fornendo i 5V, non dava i segnali giusti... ho tirato giù tutti i santi ).
Sul raspberry mi sono fatto una specie di web app in cui posso controllare questo ventilatore, e i comandi vengono fatti tramite php che esegue delle chiamate sul "cmd" per interagire con la serial port dell'arduino.
In soldoni ho usato apache per il server web, php per le chiamate tra raspberry/gpio/arduino, onsenui come interfaccia grafica.
Includo il codice di arduino ( che attenzione, è un progetto multiplo, infatti c'è collegato display lcd che mi segna temperatura ed ora, e tramite dei bottoni fisici posso accendere e spegnere la retroilluminazione del display. Il tutto per usare una specie di thread e quindi far fare più cose senza bloccare arduino )
C#:
#include "DHT.h"
#include 
#include 
#include 
#include 

#define DHTPIN 11
#define DHTTYPE DHT11
#define INTERVAL_MESSAGE1 1000
#define INTERVAL_MESSAGE2 2000
#define INTERVAL_MESSAGE3 11000
#define INTERVAL_MESSAGE4 13000

unsigned long time_1 = 0;
unsigned long time_2 = 0;
unsigned long time_3 = 0;
unsigned long time_4 = 0;

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
RCSwitch mySwitch = RCSwitch();
DS1302 rtc(2, 3, 4);

String read_serial;
int SWITCH_BCK = 7;
int SWITCH_ONOFF = 6;

int val = 0;
int cmd = 0;
int val_tmp = 1;

void setup() {
rtc.halt(false);
rtc.writeProtect(false);
dht.begin();
lcd.init();
Serial.begin(9600);
lcd.begin(16, 2);
lcd.backlight();
inizializzalcd();
mySwitch.enableTransmit(10);
mySwitch.setProtocol(6);
mySwitch.setPulseLength(389);
mySwitch.setRepeatTransmit(15);
pinMode(SWITCH_BCK, INPUT);
pinMode(SWITCH_ONOFF, INPUT);


}

void loop() {

if (millis() > time_1 + INTERVAL_MESSAGE1) {
time_1 = millis();
data ();
}

if (millis() > time_2 + INTERVAL_MESSAGE2) {
time_2 = millis();
temp();
}


val = digitalRead(SWITCH_BCK);
cmd = digitalRead(SWITCH_ONOFF);
delay(100);
if (cmd == HIGH) {
read_serial = "1";
delay(250);
}
if (val == HIGH && val_tmp == 0) {
val_tmp = 1;
lcd.setBacklight(HIGH);
delay(100);
} else if (val == HIGH && val_tmp == 1) {
val_tmp = 0;
lcd.setBacklight(LOW);
delay(100);
}

while (Serial.available()) {
char c = Serial.read(); 
read_serial += c;
delay(2);

}

if (read_serial.length() > 0) {
int n = read_serial.toInt(); 
Serial.print("--> ");
Serial.println(n);
switch (n) {
case 1:
//on/off lamp
mySwitch.send(2768297236, 32);
break;
case 2:
//on/off fan
mySwitch.send(3959479572, 32);
break;
case 3:
//LOW
mySwitch.send(1610669332, 32);
break;
case 4:
// MID
mySwitch.send(100719892, 32);
break;
case 5:
// HIGH
mySwitch.send(218160404, 32);
break;
case 6:
// LAMP MIN
mySwitch.send(4110474516, 32);
break;
case 7:
// LAMP MAX
mySwitch.send(1593892116, 32);
break;
case 8:
//1
mySwitch.send(4211137812, 32);
break;
case 9:
//2
mySwitch.send(4261469460, 32);
break;
case 10:
//3
mySwitch.send(1510006036, 32);
break;
case 11:
//4
mySwitch.send(4009811220, 32);
break;
case 12:
//5
mySwitch.send(3204504852, 32);
break;
case 13:
//REV
mySwitch.send(4244692244, 32);
break;
default:
Serial.print("DEF: ");
Serial.println(n);
break;
}
read_serial = "";
}

}

void data () {
lcd.setCursor(0, 0);
lcd.print(rtc.getDateStr());
lcd.print(" ");
lcd.print(rtc.getTimeStr());
}
void temp() {
float h = 0.0;
float t = 0.0;
h = dht.readHumidity();
t = dht.readTemperature();
lcd.setCursor(0, 1);
lcd.print("Oggi ");
lcd.print((int)t);
lcd.print((char)223);
lcd.print(" con ");
lcd.print((int)h);
lcd.print("%");

}
void inizializzalcd() {
lcd.setCursor(0, 0);
lcd.print("Inizializzo....");
//delay(250);
}

Il secondo progetto è un WIP nella mia testa:
Consisterà in una scatoletta elettrica con coperchio ricoperto di pannelli solari che alimenterà un gruppo di batterie per tenere in vita un raspberry w 0 ed alcuni sensori. Tutto che girerà su server linux e salvataggio dei dati ( devo ancora pensare quali xD ) su database o mysql o sqlite e reperibili da remoto + vari allert via email ( avevo in mente di far vedere lo stato della batteria, quanto è efficiente il pannello solare, quanti Watt ha accumulato, vari dati relativi al "server", e stavo pensando di monitorare l'inquinamento acustico )
Naturalmente tutto ancora nella mia testa, ma pian piano prende forma su carta xD
Grande moffetta! :+1: :brindiamo:
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!