[英]Can't connect to local Machine IP through TCP From Arduino Uno using SIM900 Shield
因此,您对im正在使用的部分有基本的了解,我有:
Arduino Uno
Seeed Studio GPRS Shield v2.0( http://www.seeedstudio.com/wiki/GPRS_Shield_V2.0 )
适用于Adafruit V3.3的终极GPS( https://www.adafruit.com/products/746?gclid=Cj0KEQjw3-W5BRCymr_7r7SFt8cBEiQAsLtM8qn4SCfVWIvAwW-x9Mu-FLeB6hLmVd0PAPVU8IAXXPgaAtaC8P
这是我的问题:我已经测试了带GPRS屏蔽罩的Arduino,它在通过TCP访问互联网,发送SMS等方面可以正常工作。但是,我的应用程序要求我从adafruit GPS发送GPS数据到我已经用Django和postgresql编码的Web服务器。 后端已设置。
我需要将数据从Uno(客户端)发送到我的笔记本电脑(服务器),该笔记本电脑是我用python编码的(这只是为了检查它是否正在创建连接):
#!/usr/bin/env python
import socket
# import postgres database functions
TCP_IP = '192.168.1.112'
TCP_PORT = 10000
BUFFER_SIZE = 40
server_address = (TCP_IP,TCP_PORT)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print 'Socket created.'
# Bind socket to TCP server and port
try:
s.bind(server_address)
except socket.error as msg:
print 'Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
sys.exit()
print 'Socket Bind Complete.'
# Start Listening on socket
s.listen(1) # Puts socket into server mode
print 'Listening on port: ', TCP_PORT
# Now Keep Talking with the client
while (1):
# Wait to accept a connection
conn, addr = s.accept() # Wait for incoming connection with accept()
print 'Connection address:', addr
data = conn.recv(BUFFER_SIZE)
if not data: break
print "recieved data: data", data
conn.send(data) #echo
conn.close()
我不认为这有问题。 由此,我将数据发布到我的postgreSQL数据库中。 但是,当我尝试使用SIM900模块上的AT命令通过端口10000连接到服务器时,无法连接:
AT+CIPSHUT
SHUT OK
AT+CGATT?
+CGATT: 1
OK
AT+CIPMUX=0
OK
AT+CSTT="fast.t-mobile.com","",""
OK
AT+CIICR
OK
AT+CIFSR
6.60.94.49
AT+CIPSTART="TCP","192.168.1.112,"10000"
OK
STATE: TCP CLOSED
CONNECT FAIL
我已经尝试通过TCP连接,并使用以下语句替换了AT + CIPSTART行,并且它起作用了,所以我知道TCP可以工作:
AT+CIPSTART="TCP","www.vishnusharma.com", "80"
我使用的IP错误吗? 我对此并不陌生,但如果有所作为,我将在Mac OSX上使用Ubuntu 16.04分区。 我还检查了T-mobile的APN,看起来还不错。
任何帮助将不胜感激。 谢谢!
首先,建议您使用SIM908组合两个屏蔽(除非您在GPS屏蔽上获得了更高的精度)。 由于您的TCP连接正常,我敢打赌ubuntu上的端口10000被防火墙阻止了。 您可以首先尝试关闭防火墙,看看它是否有效。 如果没有奏效,那就别的了。 如果可行,请打开防火墙,然后使用以下命令取消阻止tcp端口:
sudo ufw allow 10000/tcp
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.