Raspberry Pi + Talk to Speech + HC2

Post Reply
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

Har du en Raspberry Pi kan du skicka text från din HC2 och få RPi att prata :D
Så här gör man
Få igång nodejs på RPi
https://www.jeremymorgan.com/tutorials/ ... pberry-pi/

Få Google text till röst
http://elinux.org/RPi_Text_to_Speech_(Speech_Synthesis)

Här är skriptet jag kör på min RPi

Code: Select all

var net = require('net'); 
var cp = require('child_process'); 
/* 
* Callback method executed when a new TCP socket is opened. 
*/ 
function newSocket(socket) { 
        socket.write('Welcome to the Telnet server!'); 
        socket.on('data', function(data) { 
                receiveData(socket, data); 
        }) 
} 
/* 
* Cleans the input of carriage return, newline 
*/ 
function cleanInput(data) { 
        return data.toString().replace(/(\r\n|\n|\r)/gm,""); 
} 

/* 
* Method executed when data is received from a socket 
*/ 
function receiveData(socket, data) 
{ 
        var cleanData = cleanInput(data); 
        var speakCmd = '/usr/local/nodejs/speech.sh '; 
        var speakData = ""; 
        switch(cleanData) 
        { 

                case "@frontdoor": 
                        speakData = 'There is movement detected at the front door.'; 
                break; 
                case "@sidehouse": 
                       speakData = 'There is movement detected at the side of the house.'; 
                break; 

          
                default: 
                        speakData = cleanData; 

        } 
        cp.exec('/usr/local/nodejs/speech.sh + " " + speakData); 

        var currentTime = new Date() 
    var hours = currentTime.getHours() 
    var minutes = currentTime.getMinutes() 
        console.log(hours + ":" + minutes + " " + cleanData); 
} 

// Create a new server and provide a callback for when a connection occurs 
var server = net.createServer(newSocket); 

// Listen on port 5150 
server.listen(5150); 

cp.exec('/usr/local/nodejs/speech.sh Welcome.'); 
Starta kommandot på RPi med node node.js

LUA kod på din HC2 som behövs

Code: Select all

tcpSocket = Net.FTcpSocket("192.168.0.237", 5150); 
tcpSocket:setReadTimeout(1000); 

tcpSocket:write("@frontdoor\r"); 
Byt IP till vad din RPi har för IP

Att lägga till mer önskad text som du vill att din RPi ska säga så leta på raderna

Code: Select all

               case "@frontdoor":    
                        speakData = 'There is movement detected at the front door.'; 
                break; 
och byt ut @frontdoor och texten efter speakData

Lycka till :D
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

Kommer ett tillägg snart som innebär att man kan säga till RPi vad som ska utföras på Fibaron, tex tända/släcka, starta scen mm.


Sent from my iPhone using Tapatalk - now Free
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

http://youtu.be/WFovqWEi2EE
Min RPi säger till om någon försöker smyga in utan att vi hör det :P
jens
Medlem
Posts: 329
Joined: 22 Apr 2013, 17:09
11

Detta verkar intressant, köpte du bara en Rasperry Pi och du kör med vilket opertivsystem i den?

//Jens
suwarto
Medlem
Posts: 31
Joined: 14 Oct 2012, 17:36
12
Location: Östhammar

riktigt häftigt, vad har du för setup, en rörelsevakt utanför dörren ? RPI i köket med externa högtalare ?
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

Har pir-sensorer lite överallt och dörr sensorer, men går ju att utnyttja massa saker och få HC2 att skicka text till RPi som säger vad som skickats.
Riktigt häftigt.
Har nu även möjlighet att prata med RPi som sedan utför saker mot HC2 genom web api't.
suwarto
Medlem
Posts: 31
Joined: 14 Oct 2012, 17:36
12
Location: Östhammar

Jag läste just om på http://blog.oscarliang.net/raspberry-pi ... like-siri/
har ingen RPI än men kanske dags att skaffa en så man har något att leka med i vinter ..
suwarto
Medlem
Posts: 31
Joined: 14 Oct 2012, 17:36
12
Location: Östhammar

hur gör du när du skickar kommandon till din raspberry pi ?! hur kan man skriva kommandon som skicks vidare ?! ny på de här
suwarto
Medlem
Posts: 31
Joined: 14 Oct 2012, 17:36
12
Location: Östhammar

sorry läste inte vilket ämne jag svarade på ;) står jö
jens
Medlem
Posts: 329
Joined: 22 Apr 2013, 17:09
11

jompa68 wrote:Har du en Raspberry Pi kan du skicka text från din HC2 och få RPi att prata :D
Så här gör man
Få igång nodejs på RPi
http://www.jeremymorgan.c...s-raspberry-pi/

Få Google text till röst
http://elinux.org/RPi_Tex...eech_Synthesis)

Här är skriptet jag kör på min RPi

Code: Select all

var net = require('net'); 
var cp = require('child_process'); 
/* 
* Callback method executed when a new TCP socket is opened. 
*/ 
function newSocket(socket) { 
        socket.write('Welcome to the Telnet server!'); 
        socket.on('data', function(data) { 
                receiveData(socket, data); 
        }) 
} 
/* 
* Cleans the input of carriage return, newline 
*/ 
function cleanInput(data) { 
        return data.toString().replace(/(\r\n|\n|\r)/gm,""); 
} 

/* 
* Method executed when data is received from a socket 
*/ 
function receiveData(socket, data) 
{ 
        var cleanData = cleanInput(data); 
        var speakCmd = '/usr/local/nodejs/speech.sh '; 
        var speakData = ""; 
        switch(cleanData) 
        { 

                case "@frontdoor": 
                        speakData = 'There is movement detected at the front door.'; 
                break; 
                case "@sidehouse": 
                       speakData = 'There is movement detected at the side of the house.'; 
                break; 

          
                default: 
                        speakData = cleanData; 

        } 
        cp.exec('/usr/local/nodejs/speech.sh + " " + speakData); 

        var currentTime = new Date() 
    var hours = currentTime.getHours() 
    var minutes = currentTime.getMinutes() 
        console.log(hours + ":" + minutes + " " + cleanData); 
} 

// Create a new server and provide a callback for when a connection occurs 
var server = net.createServer(newSocket); 

// Listen on port 5150 
server.listen(5150); 

cp.exec('/usr/local/nodejs/speech.sh Welcome.'); 
Starta kommandot på RPi med node node.js

LUA kod på din HC2 som behövs

Code: Select all

tcpSocket = Net.FTcpSocket("192.168.0.237", 5150); 
tcpSocket:setReadTimeout(1000); 

tcpSocket:write("@frontdoor\r"); 
Byt IP till vad din RPi har för IP

Att lägga till mer önskad text som du vill att din RPi ska säga så leta på raderna

Code: Select all

               case "@frontdoor":    
                        speakData = 'There is movement detected at the front door.'; 
                break; 
och byt ut @frontdoor och texten efter speakData

Lycka till :D

Var lägger man in koden i RPI´n Jompa??

Håller på att göra samma som du så att HC2 pratar genom den tycker inte Sonos funkar så bra till detta...

//Jens
jens
Medlem
Posts: 329
Joined: 22 Apr 2013, 17:09
11

Får inte till detta...
mitze
Ny medlem
Posts: 7
Joined: 27 Aug 2014, 10:16
10

Jompa kan du inte snälla uppdatera länkarna fungerar inte.
Vad skall man ha installerar på raspberrypi o vart hittar di micen o högtalarna?
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

Nu är länkarna uppdaterade.
suwarto
Medlem
Posts: 31
Joined: 14 Oct 2012, 17:36
12
Location: Östhammar

Hej jompa68..

Fick något fel på min sd disk något super block error som ej går att fixa så det blev till o köpa en nytt sd kort...

Problem ett är att nu när jag ska köra så får jag inte i gång node.js

får error ./deps/v8/src/arm/macro-assembler-arm.cc:65:3: error: #error "For thumb inter-working we require an architecture which supports blx"
make[1]: *** [/platsen/node-v0.10.2/out/Release/obj.target/v8_base/deps/v8/src/arm/macro-assembler-arm.o] Fel 1
make[1]: Leaving directory `/platsen/node-v0.10.2/out'
make: *** [node] Fel 2


jag har letat runt men hittar inte på lösningen .. förra gången gick det rätt enkelt att installera node.js har du någon idé ...

Min setup
RPI model B
OS : Kali linux 1.0.9a
suwarto
Medlem
Posts: 31
Joined: 14 Oct 2012, 17:36
12
Location: Östhammar

Jag lyckades få nodejs v0.10.29 att fungera på kali linux.
sudo su
echo deb ftp://ftp.dk.debian.org/debian/ sid main > /etc/apt/sources.list.d/sid.list
apt-get update
apt-get install nodejs
rm /etc/apt/sources.list.d/sid.list
apt-get update
exit

Vill du kontrollera vilken version av nodejs du har skriv "nodejs --version" i konsolen .
Post Reply