Blockchain for internet-of-things or is there any mining algorithm that can be utilized in low-computational power devices preserving security? Recently IBM and Microsoft showed their interest (IBM post, Microsoft post) in utilization of blockchain for internet of things development.
Let's assume that in close future the blockchain technique to be implemented in smart cars overlaying road conditions or traffic data to each other.

Since the majority of honest nodes will be low-computational power devices (maybe like raspberry pi) it will be easy for adversary to perform a double-spending attack if implemented mining algorithm will not be able to bottleneck mining capabilities of devices. 


Is there any mining algorithm that can resist nodes with high-computational power to a certain extent, so the blockchain can be utilized in a network of low-computational power devices?
From security perspective is it possible to allow only certain devices connect the network (let's say if they will somehow proove that they are limited in computational power within acceptable range defined by network)?
No, not in a fully decentralized way.  Hash-based methods (like what Bitcoin uses) will always be more efficient on more efficient hardware.  Proof-of-stake methods can't be fully decentralized.
No, hardware can't prove its capabilities in a fully decentralized way.  It is possible for a device to prove its maximum distance from you using the speed of light---if you send it a ping and it replies in n seconds, you know it's within n times 300,000 kilometers of you.  You can use similar hacks to prove other things---but you can't trustlessly export that proof to other users on the network you don't directly observe the phenomena, making it useless for block chains.


I read the two articles you linked to, and I suspect they're using "block chain" as a buzz word.  There's no way to do fully decentralized mining without giving control of the block chain to the people with the most efficient hashing hardware.

Their plan is probably to install a key pair on each device, sign each device's public key with the IBM master key, and then tell each device to accept messages from other devices as long as those messages have been signed with a key that was also signed by the IBM master key.

For example, my IBM car GPS will send traffic updates to other nearby IBM car GPSes.  Those GPSes will count my update as one authenticated vote.  If other nearby IBM car GPSes send the same message, eventually the message will have enough votes to cause all nearby IBM GPSes to choose alternative routes.  This is nominally "decentralized" and it may work until some IBM sysadmin signs 10,000 public keys for himself in order to get everyone off the highway so he can get somewhere quicker.