博客 页面 6

微前端解决方案

去年就在进行一些微前端工作,现在重新整理下相关方案以供选择:

乾坤qiankun

https://github.com/umijs/qiankun

介绍: https://zhuanlan.zhihu.com/p/78362028

single-spa

https://single-spa.js.org/

飞冰 icestark

https://github.com/ice-lab/icestark

mooa

https://github.com/phodal/mooa

介绍:

ngx-planet

https://github.com/worktile/ngx-planet

介绍: https://zhuanlan.zhihu.com/p/93813936

angular8应用在IOS10中白屏

解决办法:

将polyfills.ts中的

import ‘zone.js/dist/zone’;

放到

main.ts中

xcode编译成功但无法安装到手机

Unable to install “”
Domain: com.apple.dtdevicekit

Code: -402620395

App installation failed
Domain: com.apple.dtdevicekit
Code: -402620395
Failure Reason: A valid provisioning profile for this executable was not found.
User Info: {
DVTRadarComponentKey = 487927;
“com.apple.dtdevicekit.stacktrace” = (
0 DTDeviceKitBase 0x00000001202e36e7 DTDKCreateNSError + 109
1 DTDeviceKitBase 0x00000001202e3de9 DTDK_AMDErrorToNSError + 792
2 DTDeviceKitBase 0x000000012032356a 90-[DTDKMobileDeviceToken installApplicationBundleAtPath:withOptions:andError:withCallback:]_block_invoke + 164 3 DVTFoundation 0x0000000107d40c12 DVTInvokeWithStrongOwnership + 73 4 DTDeviceKitBase 0x0000000120323301 -[DTDKMobileDeviceToken installApplicationBundleAtPath:withOptions:andError:withCallback:] + 1589 5 IDEiOSSupportCore 0x00000001201aba25 __118-[DVTiOSDevice(DVTiPhoneApplicationInstallation) processAppInstallSet:appUninstallSet:installOptions:completionBlock:]_block_invoke.352 + 4523 6 DVTFoundation 0x0000000107e71e7a __DVT_CALLING_CLIENT_BLOCK + 7
7 DVTFoundation 0x0000000107e73552 __DVTDispatchAsync_block_invoke + 809
8 libdispatch.dylib 0x00007fff6f960583 _dispatch_call_block_and_release + 12
9 libdispatch.dylib 0x00007fff6f96150e _dispatch_client_callout + 8
10 libdispatch.dylib 0x00007fff6f966ace _dispatch_lane_serial_drain + 597
11 libdispatch.dylib 0x00007fff6f967452 _dispatch_lane_invoke + 363
12 libdispatch.dylib 0x00007fff6f970a9e _dispatch_workloop_worker_thread + 598
13 libsystem_pthread.dylib 0x00007fff6fbc06fc _pthread_wqthread + 290
14 libsystem_pthread.dylib 0x00007fff6fbbf827 start_wqthread + 15
);

}

解决办法:

https://stackoverflow.com/questions/52424462/xcode-10-a-valid-provisioning-profile-for-this-executable-was-not-found

nrf52传输距离测试

https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/nrf52840-dk-range-testing-with-ble-zigbee-and-thread-protocols-at-0-4-and-8dbm-transmit-power-settings
Protocol / TX power output0dBm4dBm8dBm
BLE @ 1Mbps248m276m345m
BLE @ 2Mbps238m273m333m
BLE @ 125kbps (long-range)N/AN/A756m
ZigBee196m231m280m
Thread209m270m328m

P-NUCLEO-LRWAN3开发学习

P-NUCLEO-LRWAN3套件分两部分:

1.节点部分:STM32L073RZ+SX1278扩展板

比较浪费的是这个扩展板上还有一个STM32L071…

2.网关部分:STM32F746ZG+SX1301扩展板

SX1301是semtech出的室外网关芯片,但很坑的地方是,网关部分不提供源码,只有二进制固件提供…

该开发板官方地址: https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/stm32-nucleo-expansion-boards/p-nucleo-lrwan3.html

ST官方还有个 P-NUCLEO-LRWAN2套件,功能一样,但频段是868 915,主要是用于欧美市场。

说到频段不得不提:

http://m.elecfans.com/article/1125804.html

《中华人民共和国工业和信息化部公告2019年第52号》 将470-510Mhz限制在“建筑楼宇、住宅小区及村庄等小范围内”。

解读方式众多,但管局怎么执行就难说了,貌似大家普遍认为因为该公告严重限制了lora应用场景,且阻断了很多企业将lora应用到城域网的想法。

Semtech官方的解读(49:00开始): http://ke.renrenjiang.cn/#/video?activityId=1928108

官方解读肯定是维护自己利益的,看看就行,执行起来也不是semtech说了算。其中还提到一点:loraWan在新规下,RF11模式下, 只能每次发30byte,这个长度,也基本让LoraWan只能用来抄抄表了。

但来都来了,还是简单了解下Lora相关知识吧。

LoraWan目前支持3种通信模式:

angular微前端实现

目前看到两套angular微前端项目:

https://github.com/worktile/ngx-planet

https://github.com/phodal/mooa

一个通用微前端方案:

https://github.com/CanopyTax/single-spa

Arduino物联网开发入门

物联网开发入门

物联网与Arduino

物联网(Internet of things,简称IoT),是通过网络将设备相互连接,从而实现设备与设备间通信的技术。数据传输、信息采集、行为控制是物联网的常见能力。

而信息采集、行为控制也是Arduino的优势所在,只要给Arduino扩展上联网能力,使其能通过网络进行数据传输,Arduino就是物联网设备开发的绝佳平台。

物联网的网络连接形式多样,相关的协议和方案更是繁多,因此Arduino扩展联网能力的方案也很多,如:Arduino加上485转换芯片,可以将多个设备连接到同一总线上,进行RS485、ModBus通信;Arduino加上蓝牙模块,实现和手机、电脑等设备的连接和互动。

本章的物联网开发内容都是基于WiFi,WiFi是生活中常见的物联网连接方式之一,在家庭和办公场景,普及度极高,因此其也是众多物联网设备的首选连接方式。大部分物联网连接方式都有空间限制,但使用WiFi的设备,通常可连接到互联网,可和全球各地的设备进行连接和通信,同时获取到网络中庞大的资源。

通过给Arduino UNO添加WiFi模块的方式,可以让Arduino接入到WiFi网络,但这样不仅会增加硬件成本,还要编写和处理Arduino和WiFi模块间的通信逻辑。笔者更为推荐直接使用支持WiFi通信的新型Arduino兼容开发板——WiFiduino。

WiFi开发板

WiFiduino-8266是使用esp8266作为核心的开发板,相对于传统Arduino控制器,WiFiduino-8266不仅有更强劲的性能,还提供了原生WiFi支持,可以更轻松地构建物联网项目。可以在附录中找到WiFiduino-8266的详细介绍。

esp8266和esp32是乐鑫(espressif)公司提供的WiFi 芯片,使用这两种芯片作为核心的开发板,都可以使用乐鑫提供的Arduino SDK进行开发。 相较于传统的AVR内核的Arduino开发板,esp8266/esp32开发板自带WiFi联网能力,且拥有更丰富的外设、更大存储空间(通常外扩了Flash芯片)、更快的处理速度和更低廉的价格,已经被广泛用于各种物联网项目。

图-ESP8266开发板和ESP32开发板

点灯物联网解决方案

本章还将用到一套完整的物联网解决方案——点灯(英文名 blinker)。这是由笔者领导开发的,一套跨硬件、跨平台的物联网解决方案,提供APP端、设备端、服务器端支持,使用公有云服务进行数据传输。可用于智能家居、远程控制、数据监测等领域,可以帮助用户更好更快地搭建和部署物联网项目。

blinker具备哪些优势

1. 支持多种连接方式 blinker提供当前最流行的连接方式支持,如蓝牙、WiFi、NBiot/GPRS,可以应对大多数物联网场景需求。

2. 支持多种开发平台 对于MCU,blinker提供Arduino、freeRTOS支持库,可以使用AVR / ARM / ESP8266 / ESP32等芯片进行开发。 对于Linux设备,可以使用python、javascript接入支持。

3. 提供丰富的附加功能 通信是blinker方案的核心,此外blinker也提供了多种附加功能,如: 定时控制、自动化控制、场景控制、云存储、固件更新、设备分享、微信通知、消息推送、短信报警、语音控制、智能音响接入等。这些功能都是物联网设备常见功能,使用blinker方案,不需要复杂的开发 ,只需调用blinker提供了功能函数即可。

blinker DIY

blinker DIY是针对diy爱好者、个人开发者推出的项目原型快速开发方案。

通常物联网项目开发,需要进行 设备端、客户端、服务器端开发,每一部分开发,都需要投入人力财力。对个人开发者,通常不可能一人完成这三部分的开发。blinker提供了手机APP到设备端的控制方案,有多种设备端SDK支持,让开发者更好的聚焦于设备端。配合由blinker团队运维的客户端(blinker APP)、服务器端,可以快速打造出自己的物联网设备。

本章将使用blinker DIY结合ESP8266开发板,实现手机对Arduino的控制。

0.开发准备
1.基本控制
2.数据反馈
3.语音控制与定时
4.智能音响控制
5.云端历史数据存储与查看  

google play提交应用被拒,提示违反了设备和网络滥用政策

提示如下:

裝置與網路濫用行為

我們禁止應用程式干擾、中斷、損害或以未經授權的方式存取使用者的裝置、其他裝置或電腦、伺服器、網路、應用程式設計介面 (API) 或服務,包括但不限於裝置上的其他應用程式、任何 Google 服務或授權電信業者的網路。

在 Google Play 發布的應用程式必須符合預設的 Android 系統最佳化需求,詳細內容請參閱《Google Play 核心應用程式品質指南》。

以下列舉一些常見的違規情況:

  • 應用程式封鎖或干擾其他顯示廣告的應用程式。
  • 應用程式提供遊戲作弊功能,影響其他應用程式遊戲過程。
  • 應用程式協助使用者入侵服務、軟體/硬體或規避安全保護措施,或是提供相關操作說明。
  • 應用程式以違反服務條款的方式存取或使用特定服務或 API。
  • 應用程式試圖略過不在許可清單範圍內的系統電源管理設定
  • 應用程式協助第三方採用 Proxy 服務;不過如果這是應用程式的使用者端主要核心用途,則不構成違規。

暂时未找到原因。。。