you can do it by writing a chaincode that gets data from PC or sensors and store it in the blockchain..
look at this example which implements something similar to it..
type temperatureSmartContract struct {
}
func (contract *temperatureSmartContract) Init(stub shim.ChaincodeStubInterface) peer.Response {
fmt.Println("Initialize chaincode if needed")
return shim.Success(nil)
}
func (contract *temperatureSmartContract) Invoke(stub shim.ChaincodeStubInterface) peer.Response {
funcName, params := stub.GetFunctionAndParameters()
if funcName == "addTemperature" {
// Store observation into ledger
stub.PutState("temperature", []byte(params[0]))
} else if funcName == "getTemperatures" {
iter, err := stub.GetHistoryForKey("temperature")
if err != nil {
shim.Error(fmt.Sprintf("%s", err))
}
var result []string
for iter.HasNext() {
mod, err := iter.Next()
if err != nil {
shim.Error(fmt.Sprintf("%s", err))
}
result = append(result, string(mod.Value))
}
return shim.Success([]byte(result))
}
return shim.Success(nil)
}