1.2.27. fejezet, Távoli konzol hálózat nélküli géphez

A projekt célja

A szerelésen kívül ne legyen szükség személyes jelenlétre egy szerver beüzemeléséhez, hiba elhárításhoz még akkor sem, ha a gépnek nincs adminisztrációs felülete pl. a hálózat beállításához, vagy az operációs rendszer telepítéséhez. Jelen kor trendje, hogy a virtuális gépek kiváltják a fizikai gépek egy részét. A szerverpark átalakítása azonban az előnyei ellenére a költségek miatt nem mindenkit érint meg. A projekt célja a nem virtualizált és RMM nélküli szerverek felszerelése egy virtuális gép előnyeivel. A megoldás képes legyen egy másik, hálózati kapcsolattal rendelkező számítógéppel (tablettel) vezérelni az alany billentyűzetét és egerét, fizikai eszközök nélkül (vagyis nem robotkar mozgatással), és képernyőképet közvetíteni a távoli elérés számára.

Homework4I2C

Továbbfejlesztési lehetőségek

  • CD/DVD cserélő automatika, CD tároló kiegészítéssel
  • USB pendrive kezelő automatika
  • Reset gomb és főkapcsoló gomb kezelő automatika
  • Több számítógép vezérlése egy számítógépről - képernyők közötti automatikus egérmutató továbbítás, billentyűzet átirányítás

Ezek már robot automatikák, ill. a főkapcsoló és reset gomb kiváltható relés vezérléssel is.

Kapcsolódó hivatkozások

Bootloader

Master mintakód

// Include the required Wire library for I2C
#include "Wire.h"
int x = 0;
void setup() {
  // Start the I2C Bus as Master
  Wire.begin(); 
}
void loop() {
  Wire.beginTransmission(9); // transmit to device #9
  Wire.write(x);              // sends x 
  Wire.endTransmission();    // stop transmitting
  x++; // Increment x
  if (x > 5) x = 0; // `reset x once it gets 6
  delay(500);
}

Slave mintakód

// Include the required Wire library for I2C
#include <Wire.h>
int LED = 13;
int x = 0;
void setup() {
  // Define the LED pin as Output
  pinMode (LED, OUTPUT);
  // Start the I2C Bus as Slave on address 9
  Wire.begin(9); 
  // Attach a function to trigger when something is received.
  Wire.onReceive(receiveEvent);
  Serial.begin(9600);
  while(!Serial) { }
  Serial.println("Start listening I2C");
}
void receiveEvent(int bytes) {
  x = Wire.read();    // read one character from the I2C
  //Serial.print("Received:");
  //Serial.print(x);
}
void loop() {
  //If value received is 0 blink LED for 200 ms
  if (x == 0) {
    //Serial.println("Received is 0 blink LED for 200 ms");
    digitalWrite(LED, HIGH);
    delay(200);
    digitalWrite(LED, LOW);
    delay(200);
  }
  //If value received is 3 blink LED for 400 ms
  if (x == 3) {
    //Serial.println("Received is 3 blink LED for 400 ms");
    digitalWrite(LED, HIGH);
    delay(400);
    digitalWrite(LED, LOW);
    delay(400);
  }
}
CsatolmányMéret
Csomag ikon i2c.zip2.99 KB