Os voy a contar como veo yo el tema Raspberry Pi vs Arduino.
Un Raspberry Pi es un PC completo. Tiene algunas salidas GPIO que nos permiten usarlo para controlar ciertos dispositivos pero está bastante limitado. Un PC como Raspberry Pi es muy versatil pero está especialmente diseñado para interactuar con humanos.
El Arduino es un microprocesador especialmente diseñado para interactuar con una amplia variedad de dispositivos electrónicos. En realidad, sería muy incómodo usar un Arduino sin tener un PC para programarlo. El Arduino puede funcionar solo una vez programado, pero también puede considerarse el complemento ideal para permitir a un PC que interactue no solo con personas sino con el mundo físico.
Aparte del tipo de entradas y salidas digitales o analógicas que trae el Arduino, su punto más fuerte es la amplísima librería de software que existe para él y la enorme comunidad de usuarios que aportan todo tipo de soluciones para satisfacer las necesidades más exóticas que a uno se le puedan ocurrir.
La combinacion ideal desde mi punto de vista es un Raspberry Pi con SO basado de Debian y un Arduino acorde a nuestras necesidades.
Me compré hace poco en AliExpress 10 Arduinos Pro Mini. Cada uno me salió por 2 euros y tienen la potencia de un Arduino UNO, salvo que venía sin los pines soldados y porque no traen conexion USB, ni regulador de voltaje para alimentación. Con una fuente de alimentacion a 5V y con un convertidor serie USB puedo manejar cualquiera de esos diez Arduinos para montarme un dimmer, un termostato, un medidor de pH, y cosas más complicadas. Gracias a la enorme cantidad de librerías existente, Arduino puede comunicar con una amplísima variedad de dispositivos que usan protocolos diferentes y la cantidad de información en Internet es enorme.
Estamos hablando de Raspberry Pi y de Arduino, que son dispositivos que se complementan muy bien, pero si necesitas implementar un cacharrito muy sencillo, en mi opinión, Arduino será tu mejor opción. El inconveniente es que el lenguaje de programación de Arduino, por motivos de eficiencia, es C++, y no es un lenguaje sencillo de programar salvo que se tenga experiencia en ello.
Una de las cosas que un Raspberry Pi no puede hacer son lecturas analógicas. Necesita para ello usar un dispositivo como Arduino que convierta la información analógica en información digital.
Con Arduino incluso puedes ponerle un modulo Wifi y montar un servidor para manejar cosas en remoto. Se puede hacer aunque probablemente lo más práctico sería montar un servidor en un Raspberry Pi y conectar por puerto serie con un Arduino para mandarle ordenes y recibir información. Todo depende de las necesidades concretas.
Es muy bueno tener opciones y poder hacer las cosas según a cada cual le convenga.