关于Arduino的WiFi扩展板的UDP数据发送问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13798|回复: 5

关于Arduino的WiFi扩展板的UDP数据发送问题

[复制链接]
发表于 2014-2-14 03:41 | 显示全部楼层 |阅读模式
本帖最后由 卤蛋在英国 于 2014-2-14 03:43 编辑

小弟人在英国,课题要做一个使用WiFi发送歌曲的Arduino。我现在只能让我的wifi扩展板连接到路由器上,但是没有办法发送数据(最简单的都发送不了),求大神帮帮忙!小弟条件有限,用的是手机做的路由器。让手机跟wifi扩展板同时连到我的手机上,然后写个一个程序发送一句话给我的电脑。但不成功,我用的是Wireshark来监控我的网络环境的。没有看见192.168.43.8(wifi扩展板的IP)传送数据到192.168.43.5(电脑主机的IP)下面是我的程序:
#include <SPI.h>
#include <WiFi.h>
#include <WiFiUdp.h>


char ssid[] = "AndroidAP7577"; //  your network SSID (name)
int status = WL_IDLE_STATUS;
byte remoteIP[4] = {192, 168, 43, 5}; //我主机的IP

unsigned int localPort = 2390;      // local port to send
unsigned int remotePort = 1963;      // receive port to send

char packetBuffer[255]; //buffer to hold incoming packet
char  ReplyBuffer[] = "acknowledged";       // a string to send back

WiFiUDP Udp;

void setup() {
  //Initialize serial and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

  // check for the presence of the shield:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
    // don't continue:
    while (true);
  }

// attempt to connect to Wifi network:
  while ( status != WL_CONNECTED) {
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
    // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
    status = WiFi.begin(ssid);

    // wait 10 seconds for connection:
    delay(10000);
  }
  Serial.println("Connected to wifi");
  printWifiStatus();

  Serial.println("\nStarting connection to server...");
  // if you get a connection, report back via serial:
  Udp.begin(localPort);
}

void loop() {

  // if there's data available, read a packet

    Udp.beginPacket( remoteIP, remotePort);
   Udp.write(ReplyBuffer);
   Udp.endPacket();

}


void printWifiStatus() {
  // print the SSID of the network you're attached to:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // print your WiFi shield's IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
}
下面是一些运行的情况!
捕获1.PNG


还需要提供什么资料尽管提哇!小弟第一次发帖,不知道还需要准备一些啥材料。


发表于 2014-2-14 10:39 | 显示全部楼层
楼主用的也是HLK_RM04吧,我也在用这货。你已经不错了,printWifiStatus能运行起来,我连这个函数都运行不起来。
我也在发送数据,不过我走的是HTTP,目前还没有成功,苦呀,你要是成功了交流一下呀。。。。
 楼主| 发表于 2014-2-14 19:21 | 显示全部楼层
commissar 发表于 2014-2-14 10:39
楼主用的也是HLK_RM04吧,我也在用这货。你已经不错了,printWifiStatus能运行起来,我连这个函数都运行不 ...

我用的是arduino专用wifi扩展板。你的板子应该不能直接运行arduino的程序。而是间接使用AT command通过serial monitor来控制的吧。所以程序当然运行不起来啊。存在兼容问题。
发表于 2014-2-15 11:15 | 显示全部楼层
本帖最后由 commissar 于 2014-2-15 11:37 编辑
卤蛋在英国 发表于 2014-2-14 19:21
我用的是arduino专用wifi扩展板。你的板子应该不能直接运行arduino的程序。而是间接使用AT command通过se ...

原来如此......你说的没错 ,我用的是这东西  http://item.taobao.com/item.htm? ... &id=36815717425
发表于 2014-7-11 21:20 | 显示全部楼层
本帖最后由 NCUT2013 于 2014-7-11 21:21 编辑

楼主的问题解决了没有?我也遇到了和你类似的问题,我的代码也是通过那个官方 的例程该的 WiFi-->wifiudpsendreceivestring 那个改的,也是电脑收不到发的数据。 我用的是http://item.taobao.com/item.htm?spm=a230r.1.14.295.8OxdhW&id=36642710459&ns=1#detail
发表于 2017-4-9 22:42 | 显示全部楼层
本人菜鸟,多点注释就好了,看不懂呀
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 10:38 , Processed in 0.147655 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表