I nostri progetti con il Raspberry Pi

MrColo

Utente Attivo
979
318
Hardware Utente
CPU
Intel I5 8400
Dissipatore
Stock Intel
Scheda Madre
Asus Rog Strix B360-F
Hard Disk
2 x WD Blue 1TB + 1 x SSD Samsung 860EVO 250GB + 1 x KingDian 120GB
RAM
2 x Kingston HyperXFury 4GB 2666MHz
Scheda Video
Asus Rog Strix GTX 1050 2GB
Scheda Audio
Integrata
Monitor
LG 29WK600 29" Ultrawide HDR
Alimentatore
Sharkoon Silentstorm Icewind 550W Black Edition
Case
Sharkoon TG5 Bianco
Periferiche
Tastiera CoolerMaster Mastekeys lite L + Mouse Trust GXT 120 + Cuffie AKG K92
Internet
FTTC 100Mb + Modem Fritz!Box 7490
Sistema Operativo
Windows 10 Pro + MacOS High Sierra
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
645
185
Hardware Utente
CPU
CPU Intel Core 2 Duo E8500
Scheda Madre
Scheda Madre Asus P5KPL intel® Core™2 Extreme sk775
Hard Disk
500gb
RAM
2pz MEMORIA RAM KINGSTON 1 GB DDR II
Scheda Video
S. Video 9600 GT Point Of View GeForce 9600GT 512mb
Case
CABINET CASE AT-8 MODDING 500W TIPO BMW
Sistema Operativo
Windows
Seguo con interesse
 

Gio22

Utente Attivo
359
146
Hardware Utente
CPU
Intel i5 9400F
Dissipatore
Raijinteck Leto Pro RGB
Scheda Madre
ASRock Z390 Pro4
Hard Disk
WD BLUE 1TB
RAM
16gb 3000mhz corsair lpx (2x8)
Scheda Video
Nvidia GTX 1660ti
Scheda Audio
Integrata
Monitor
Acer kg241qb
Alimentatore
Corsair TX650M
Case
Ctesports Draco (+6 ventole)
Periferiche
Royale Kludge rk61 rgb/ Logitech G502
Sistema Operativo
Windows 10

Hacker91

Utente Attivo
1,188
187
Hardware Utente
CPU
Intel i3-4330
Scheda Madre
AsRock B85M
Hard Disk
SSD Crucial M500 120GB
RAM
Crucial Ballistix Sport XT 8GB
Scheda Video
HD Graphics 4600
Monitor
TV Samsung 32"
Alimentatore
XFX ProSeries 450W
Case
Enermax Ostrog
Sistema Operativo
Windows 10 pro
Penso che sia la sezione sbagliata per parlare di questo argomento.

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

Robertob89

Moderatore
Staff Forum
4,139
2,290
Hardware Utente
CPU
Ryzen 5 3600 @ 4.2ghz 1.35v
Dissipatore
Custom Loop: wb cpu e gpu EK+HL gts 360/240
Scheda Madre
Asus Prime X470 Pro
Hard Disk
Samsung 960 Evo + Samsung 850 Evo
RAM
16 gb G skill Trident 3200mhz CL16
Scheda Video
Evga 1080TI Sc Black Gaming OC
Monitor
Acer Predator 27" 144hz 1440p IPS
Alimentatore
Evga 650W SuperNova G2
Case
Cooler Master H500M
Sistema Operativo
Win 10 Pro 64 bit
La sezione è giusta in quanto ci sono anche le guide officiali al raspberry.

Sbizzarritevi!
 

Moffetta88

Utente Èlite
3,984
1,724
Hardware Utente
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 Attivo
979
318
Hardware Utente
CPU
Intel I5 8400
Dissipatore
Stock Intel
Scheda Madre
Asus Rog Strix B360-F
Hard Disk
2 x WD Blue 1TB + 1 x SSD Samsung 860EVO 250GB + 1 x KingDian 120GB
RAM
2 x Kingston HyperXFury 4GB 2666MHz
Scheda Video
Asus Rog Strix GTX 1050 2GB
Scheda Audio
Integrata
Monitor
LG 29WK600 29" Ultrawide HDR
Alimentatore
Sharkoon Silentstorm Icewind 550W Black Edition
Case
Sharkoon TG5 Bianco
Periferiche
Tastiera CoolerMaster Mastekeys lite L + Mouse Trust GXT 120 + Cuffie AKG K92
Internet
FTTC 100Mb + Modem Fritz!Box 7490
Sistema Operativo
Windows 10 Pro + MacOS High Sierra
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
Reactions: Moffetta88

NT.Wardenclyffe

Utente Attivo
622
912
Hardware Utente
CPU
ryzen 5 2600
Dissipatore
be quiet! pure rock slim
Scheda Madre
b450 aorus m
Hard Disk
ssd kingston 240 gb / hdd seagate barracuda 1tb + 500gb wd (bkps) / 500gb wd esterno
RAM
vengeance lcx xmp (8x2) 3000mhz
Scheda Video
rx 580 nitro (4gb)
Monitor
Acer 24"
Alimentatore
cx650m (cavi fissi)
Case
matrexx 55
Periferiche
rival 310, ap2, se-m521
Sistema Operativo
Linux Mint 19.2 xfce - archlinux_x64 DE xfce 4.12 / kde plasma 5.16

MrColo

Utente Attivo
979
318
Hardware Utente
CPU
Intel I5 8400
Dissipatore
Stock Intel
Scheda Madre
Asus Rog Strix B360-F
Hard Disk
2 x WD Blue 1TB + 1 x SSD Samsung 860EVO 250GB + 1 x KingDian 120GB
RAM
2 x Kingston HyperXFury 4GB 2666MHz
Scheda Video
Asus Rog Strix GTX 1050 2GB
Scheda Audio
Integrata
Monitor
LG 29WK600 29" Ultrawide HDR
Alimentatore
Sharkoon Silentstorm Icewind 550W Black Edition
Case
Sharkoon TG5 Bianco
Periferiche
Tastiera CoolerMaster Mastekeys lite L + Mouse Trust GXT 120 + Cuffie AKG K92
Internet
FTTC 100Mb + Modem Fritz!Box 7490
Sistema Operativo
Windows 10 Pro + MacOS High Sierra

Moffetta88

Utente Èlite
3,984
1,724
Hardware Utente
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
622
912
Hardware Utente
CPU
ryzen 5 2600
Dissipatore
be quiet! pure rock slim
Scheda Madre
b450 aorus m
Hard Disk
ssd kingston 240 gb / hdd seagate barracuda 1tb + 500gb wd (bkps) / 500gb wd esterno
RAM
vengeance lcx xmp (8x2) 3000mhz
Scheda Video
rx 580 nitro (4gb)
Monitor
Acer 24"
Alimentatore
cx650m (cavi fissi)
Case
matrexx 55
Periferiche
rival 310, ap2, se-m521
Sistema Operativo
Linux Mint 19.2 xfce - archlinux_x64 DE xfce 4.12 / kde plasma 5.16
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 >
 
  • Mi piace
Reactions: Robertob89

Moffetta88

Utente Èlite
3,984
1,724
Hardware Utente
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,188
187
Hardware Utente
CPU
Intel i3-4330
Scheda Madre
AsRock B85M
Hard Disk
SSD Crucial M500 120GB
RAM
Crucial Ballistix Sport XT 8GB
Scheda Video
HD Graphics 4600
Monitor
TV Samsung 32"
Alimentatore
XFX ProSeries 450W
Case
Enermax Ostrog
Sistema Operativo
Windows 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
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
Reactions: Moffetta88

MrColo

Utente Attivo
979
318
Hardware Utente
CPU
Intel I5 8400
Dissipatore
Stock Intel
Scheda Madre
Asus Rog Strix B360-F
Hard Disk
2 x WD Blue 1TB + 1 x SSD Samsung 860EVO 250GB + 1 x KingDian 120GB
RAM
2 x Kingston HyperXFury 4GB 2666MHz
Scheda Video
Asus Rog Strix GTX 1050 2GB
Scheda Audio
Integrata
Monitor
LG 29WK600 29" Ultrawide HDR
Alimentatore
Sharkoon Silentstorm Icewind 550W Black Edition
Case
Sharkoon TG5 Bianco
Periferiche
Tastiera CoolerMaster Mastekeys lite L + Mouse Trust GXT 120 + Cuffie AKG K92
Internet
FTTC 100Mb + Modem Fritz!Box 7490
Sistema Operativo
Windows 10 Pro + MacOS High Sierra
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